mirror of
https://github.com/saysky/Hotel
synced 2025-05-06 19:49:25 +08:00
96 lines
1.9 KiB
Java
Executable File
96 lines
1.9 KiB
Java
Executable File
package com.example.hotel.controller.common;
|
|
|
|
import com.example.hotel.entity.User;
|
|
import com.example.hotel.enums.RoleEnum;
|
|
import org.apache.shiro.SecurityUtils;
|
|
import org.apache.shiro.subject.Subject;
|
|
|
|
/**
|
|
* Controller抽象类
|
|
*/
|
|
public abstract class BaseController {
|
|
|
|
/**
|
|
* 渲染404页面
|
|
*
|
|
* @return redirect:/404
|
|
*/
|
|
public String renderNotFound() {
|
|
return "forward:/404";
|
|
}
|
|
|
|
|
|
/**
|
|
* 渲染404页面
|
|
*
|
|
* @return redirect:/404
|
|
*/
|
|
public String renderNotAllowAccess() {
|
|
return "redirect:/403";
|
|
}
|
|
|
|
/**
|
|
* 当前登录用户
|
|
*
|
|
* @return
|
|
*/
|
|
public User getLoginUser() {
|
|
Subject subject = SecurityUtils.getSubject();
|
|
if (subject.isAuthenticated()) {
|
|
return (User) subject.getPrincipal();
|
|
}
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* 当前用户ID
|
|
*
|
|
* @return
|
|
*/
|
|
public Long getLoginUserId() {
|
|
return getLoginUser().getId();
|
|
}
|
|
|
|
/**
|
|
* 当前用户是管理员
|
|
*
|
|
* @return
|
|
*/
|
|
public Boolean loginUserIsAdmin() {
|
|
User loginUser = getLoginUser();
|
|
if (loginUser != null) {
|
|
return RoleEnum.ADMIN.getValue().equalsIgnoreCase(loginUser.getRole());
|
|
}
|
|
return false;
|
|
}
|
|
|
|
/**
|
|
* 当前用户是工作人员
|
|
*
|
|
* @return
|
|
*/
|
|
public Boolean loginUserIsWorker() {
|
|
User loginUser = getLoginUser();
|
|
if (loginUser != null) {
|
|
return RoleEnum.WORKER.getValue().equalsIgnoreCase(loginUser.getRole());
|
|
}
|
|
return false;
|
|
}
|
|
|
|
|
|
/**
|
|
* 当前用户是消费者
|
|
*
|
|
* @return
|
|
*/
|
|
public Boolean loginUserIsCustomer() {
|
|
User loginUser = getLoginUser();
|
|
if (loginUser != null) {
|
|
return RoleEnum.CUSTOMER.getValue().equalsIgnoreCase(loginUser.getRole());
|
|
}
|
|
return false;
|
|
}
|
|
|
|
|
|
}
|