📄 userrolecontroller.java
字号:
package com.heyang.service;
import java.lang.reflect.Method;
import org.springframework.aop.MethodBeforeAdvice;
import com.heyang.domain.User;
import com.heyang.exception.NoRoleException;
/**
* 实现角色子系统---用户角色控制
* @author: 何杨(heyang78@gmail.com)
* @date: 2009-1-2-下午04:19:13
*/
public class UserRoleController implements MethodBeforeAdvice{
private String addDocRoleName;
private String deleteDocRoleName;
private String updateDocRoleName;
/**
* 在IDocService的实际方法开始前进行前置处理--用户角色检查
*/
public void before(Method arg0, Object[] arg1, Object arg2) throws Throwable {
// 取得方法名
String mothodName=arg0.getName();
// 取得用户
User user=null;
if(arg1.length>1){
user=(User)arg1[1];
}
// 根据方法名判断用户是否拥有所需要的角色,否则抛出异常
if("add".equals(mothodName)){
if(user.hasRole(addDocRoleName)==false){
throw new NoRoleException("用户"+user+"必须拥有‘添加’角色才能执行添加文档操作");
}
}
else if("delete".equals(mothodName)){
if(user.hasRole(deleteDocRoleName)==false){
throw new NoRoleException("用户"+user+"必须拥有‘删除’角色才能执行删除文档操作");
}
}
else if("update".equals(mothodName)){
if(user.hasRole(updateDocRoleName)==false){
throw new NoRoleException("用户"+user+"必须拥有‘修改’角色才能执行修改文档操作");
}
}
}
public String getAddDocRoleName() {
return addDocRoleName;
}
public void setAddDocRoleName(String addDocRoleName) {
this.addDocRoleName = addDocRoleName;
}
public String getDeleteDocRoleName() {
return deleteDocRoleName;
}
public void setDeleteDocRoleName(String deleteDocRoleName) {
this.deleteDocRoleName = deleteDocRoleName;
}
public String getUpdateDocRoleName() {
return updateDocRoleName;
}
public void setUpdateDocRoleName(String updateDocRoleName) {
this.updateDocRoleName = updateDocRoleName;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -