- 浏览: 4183929 次
最新评论
使用权限标签控制View层展示的内容
<iframe align="center" marginwidth="0" marginheight="0" src="http://www.zealware.com/csdnblog336280.html" frameborder="0" width="336" scrolling="no" height="280"></iframe>
在昨晚修改EasyJWeb的时候,在框架处理器中增加了一个全局Util的Map。同时增加了一个跟EasyJF的权限控制系统结合的AuthorizationUtil实现。下面是主要代码:
protected void createUtilContext(Context context) {
Object authorizationUtil = FrameworkEngine.getContainer()
.getBean(com.easyjf.util.AuthorizationUtil.class);
if (authorizationUtil != null) {
globalUtils.put("AUTH", authorizationUtil);
globalUtils.put("ROLE", authorizationUtil);
}
}
#if($AUTH.is("ADMIN")) 删除#end
在昨晚修改EasyJWeb的时候,在框架处理器中增加了一个全局Util的Map。同时增加了一个跟EasyJF的权限控制系统结合的AuthorizationUtil实现。下面是主要代码:
protected void createUtilContext(Context context) {
Object authorizationUtil = FrameworkEngine.getContainer()
.getBean(com.easyjf.util.AuthorizationUtil.class);
if (authorizationUtil != null) {
globalUtils.put("AUTH", authorizationUtil);
globalUtils.put("ROLE", authorizationUtil);
}
}
#if($AUTH.is("ADMIN")) 删除#end
在昨晚修改EasyJWeb的时候,在框架处理器中增加了一个全局Util的Map。同时增加了一个跟EasyJF的权限控制系统结合的AuthorizationUtil实现。下面是主要代码:
protected void createUtilContext(Context context) {
Object authorizationUtil = FrameworkEngine.getContainer()
.getBean(com.easyjf.util.AuthorizationUtil.class);
if (authorizationUtil != null) {
globalUtils.put("AUTH", authorizationUtil);
globalUtils.put("ROLE", authorizationUtil);
}
}
#if($AUTH.is("ADMIN")) 删除#end
在昨晚修改EasyJWeb的时候,在框架处理器中增加了一个全局Util的Map。同时增加了一个跟EasyJF的权限控制系统结合的AuthorizationUtil实现。下面是主要代码:
protected void createUtilContext(Context context) {
Object authorizationUtil = FrameworkEngine.getContainer()
.getBean(com.easyjf.util.AuthorizationUtil.class);
if (authorizationUtil != null) {
globalUtils.put("AUTH", authorizationUtil);
globalUtils.put("ROLE", authorizationUtil);
}
}
#if($AUTH.is("ADMIN")) 删除#end
在昨晚修改EasyJWeb的时候,在框架处理器中增加了一个全局Util的Map。同时增加了一个跟EasyJF的权限控制系统结合的AuthorizationUtil实现。下面是主要代码:
protected void createUtilContext(Context context) {
Object authorizationUtil = FrameworkEngine.getContainer()
.getBean(com.easyjf.util.AuthorizationUtil.class);
if (authorizationUtil != null) {
globalUtils.put("AUTH", authorizationUtil);
globalUtils.put("ROLE", authorizationUtil);
}
}
#if($AUTH.is("ADMIN")) 删除#end
在昨晚修改EasyJWeb的时候,在框架处理器中增加了一个全局Util的Map。同时增加了一个跟EasyJF的权限控制系统结合的AuthorizationUtil实现。下面是主要代码:
protected void createUtilContext(Context context) {
Object authorizationUtil = FrameworkEngine.getContainer()
.getBean(com.easyjf.util.AuthorizationUtil.class);
if (authorizationUtil != null) {
globalUtils.put("AUTH", authorizationUtil);
globalUtils.put("ROLE", authorizationUtil);
}
}
#if($AUTH.is("ADMIN")) 删除#end
在昨晚修改EasyJWeb的时候,在框架处理器中增加了一个全局Util的Map。同时增加了一个跟EasyJF的权限控制系统结合的AuthorizationUtil实现。下面是主要代码:
protected void createUtilContext(Context context) {
Object authorizationUtil = FrameworkEngine.getContainer()
.getBean(com.easyjf.util.AuthorizationUtil.class);
if (authorizationUtil != null) {
globalUtils.put("AUTH", authorizationUtil);
globalUtils.put("ROLE", authorizationUtil);
}
}
#if($AUTH.is("ADMIN")) 删除#end
在实际应用中,我们经常需要根据当前用户的操作权限来判断是否显示一新功能。如在论坛系统中,只有版主及管理才能删除贴子,因此在一般用户打开一个贴子的时候,就不需要出现“删除”这个连接。
权限系统标签接口的设计,在大多数应用中,以下接口中两个方法基本能满足大多数需求。
public interface AuthorizationUtil {
/**
* 根据名称判断用户角色,从而判断用户是否刻有该权限.roleName可以是单独的名称,大小写可以任意.可以包含空格等.
* 若要使用多个角色,可以使用+、|、~、,等符号来表示组合关系
* 使用方法:#if($ROLE.is("ADMIN"))删除#end
* 或:#if($ROLE.is("AMDIN,Manager"))删除所有#end
* @param roleName
* @return
*/
public boolean is(String roleName);
/**
* 判断一个用户是否对指定的对象有指定的操作权限
* @param operation 操作,"del","create","update","read"等
* 使用方法:#if($ROLE.is("del",$obj))删除该记录#end
* @param obj 操作的对象
* @return 如果具有操作权限
*/
public boolean is(String operation,Object obj);
}
权限系统标签接口的设计,在大多数应用中,以下接口中两个方法基本能满足大多数需求。
public interface AuthorizationUtil {
/**
* 根据名称判断用户角色,从而判断用户是否刻有该权限.roleName可以是单独的名称,大小写可以任意.可以包含空格等.
* 若要使用多个角色,可以使用+、|、~、,等符号来表示组合关系
* 使用方法:#if($ROLE.is("ADMIN"))删除#end
* 或:#if($ROLE.is("AMDIN,Manager"))删除所有#end
* @param roleName
* @return
*/
public boolean is(String roleName);
/**
* 判断一个用户是否对指定的对象有指定的操作权限
* @param operation 操作,"del","create","update","read"等
* 使用方法:#if($ROLE.is("del",$obj))删除该记录#end
* @param obj 操作的对象
* @return 如果具有操作权限
*/
public boolean is(String operation,Object obj);
}
在昨晚修改EasyJWeb的时候,在框架处理器中增加了一个全局Util的Map。同时增加了一个跟EasyJF的权限控制系统结合的AuthorizationUtil实现。下面是主要代码:
protected void createUtilContext(Context context) {
Object authorizationUtil = FrameworkEngine.getContainer()
.getBean(com.easyjf.util.AuthorizationUtil.class);
if (authorizationUtil != null) {
globalUtils.put("AUTH", authorizationUtil);
globalUtils.put("ROLE", authorizationUtil);
}
}
这样,在基于Spring2+JPA+EasyJWeb的应用中,可以在模板页面中使用下面的Velocity角本来进行权限控制。如:
#if($AUTH.is("ADMIN")) 删除#end
权限/角色的名称可以在系统运行的过程中自由设定。这样问题变得简单多了,不再需要访问底层的权限系统,也不在需要复杂的标签系统,就是调用这两个方法,而具这是在每一个展示的View中都开放的全局功能。
当然,也可以扩展一下模板标签系统,使用<role><a href="doDel();">删除</a>。当然我不喜欢后一种用法,因为总是会让页面人员把这个标签跟其它的标签搞混淆,而且也容易误删除,还是第一种方法看起直接,对于接受过我们半小时Velocity标签培训的页面制作及美工人员也应该会有同感。</role>
当然,如何让权限控制变得更加灵活,View层的使用更加方便直接、简易,想听听大家的看法。
在实际应用中,我们经常需要根据当前用户的操作权限来判断是否显示一新功能。如在论坛系统中,只有版主及管理才能删除贴子,因此在一般用户打开一个贴子的时候,就不需要出现“删除”这个连接。
权限系统标签接口的设计,在大多数应用中,以下接口中两个方法基本能满足大多数需求。
public interface AuthorizationUtil {
/**
* 根据名称判断用户角色,从而判断用户是否刻有该权限.roleName可以是单独的名称,大小写可以任意.可以包含空格等.
* 若要使用多个角色,可以使用+、|、~、,等符号来表示组合关系
* 使用方法:#if($ROLE.is("ADMIN"))删除#end
* 或:#if($ROLE.is("AMDIN,Manager"))删除所有#end
* @param roleName
* @return
*/
public boolean is(String roleName);
/**
* 判断一个用户是否对指定的对象有指定的操作权限
* @param operation 操作,"del","create","update","read"等
* 使用方法:#if($ROLE.is("del",$obj))删除该记录#end
* @param obj 操作的对象
* @return 如果具有操作权限
*/
public boolean is(String operation,Object obj);
}
权限系统标签接口的设计,在大多数应用中,以下接口中两个方法基本能满足大多数需求。
public interface AuthorizationUtil {
/**
* 根据名称判断用户角色,从而判断用户是否刻有该权限.roleName可以是单独的名称,大小写可以任意.可以包含空格等.
* 若要使用多个角色,可以使用+、|、~、,等符号来表示组合关系
* 使用方法:#if($ROLE.is("ADMIN"))删除#end
* 或:#if($ROLE.is("AMDIN,Manager"))删除所有#end
* @param roleName
* @return
*/
public boolean is(String roleName);
/**
* 判断一个用户是否对指定的对象有指定的操作权限
* @param operation 操作,"del","create","update","read"等
* 使用方法:#if($ROLE.is("del",$obj))删除该记录#end
* @param obj 操作的对象
* @return 如果具有操作权限
*/
public boolean is(String operation,Object obj);
}
在昨晚修改EasyJWeb的时候,在框架处理器中增加了一个全局Util的Map。同时增加了一个跟EasyJF的权限控制系统结合的AuthorizationUtil实现。下面是主要代码:
protected void createUtilContext(Context context) {
Object authorizationUtil = FrameworkEngine.getContainer()
.getBean(com.easyjf.util.AuthorizationUtil.class);
if (authorizationUtil != null) {
globalUtils.put("AUTH", authorizationUtil);
globalUtils.put("ROLE", authorizationUtil);
}
}
这样,在基于Spring2+JPA+EasyJWeb的应用中,可以在模板页面中使用下面的Velocity角本来进行权限控制。如:
#if($AUTH.is("ADMIN")) 删除#end
权限/角色的名称可以在系统运行的过程中自由设定。这样问题变得简单多了,不再需要访问底层的权限系统,也不在需要复杂的标签系统,就是调用这两个方法,而具这是在每一个展示的View中都开放的全局功能。
当然,也可以扩展一下模板标签系统,使用<role><a href="doDel();">删除</a>。当然我不喜欢后一种用法,因为总是会让页面人员把这个标签跟其它的标签搞混淆,而且也容易误删除,还是第一种方法看起直接,对于接受过我们半小时Velocity标签培训的页面制作及美工人员也应该会有同感。</role>
当然,如何让权限控制变得更加灵活,View层的使用更加方便直接、简易,想听听大家的看法。
在实际应用中,我们经常需要根据当前用户的操作权限来判断是否显示一新功能。如在论坛系统中,只有版主及管理才能删除贴子,因此在一般用户打开一个贴子的时候,就不需要出现“删除”这个连接。
权限系统标签接口的设计,在大多数应用中,以下接口中两个方法基本能满足大多数需求。
public interface AuthorizationUtil {
/**
* 根据名称判断用户角色,从而判断用户是否刻有该权限.roleName可以是单独的名称,大小写可以任意.可以包含空格等.
* 若要使用多个角色,可以使用+、|、~、,等符号来表示组合关系
* 使用方法:#if($ROLE.is("ADMIN"))删除#end
* 或:#if($ROLE.is("AMDIN,Manager"))删除所有#end
* @param roleName
* @return
*/
public boolean is(String roleName);
/**
* 判断一个用户是否对指定的对象有指定的操作权限
* @param operation 操作,"del","create","update","read"等
* 使用方法:#if($ROLE.is("del",$obj))删除该记录#end
* @param obj 操作的对象
* @return 如果具有操作权限
*/
public boolean is(String operation,Object obj);
}
权限系统标签接口的设计,在大多数应用中,以下接口中两个方法基本能满足大多数需求。
public interface AuthorizationUtil {
/**
* 根据名称判断用户角色,从而判断用户是否刻有该权限.roleName可以是单独的名称,大小写可以任意.可以包含空格等.
* 若要使用多个角色,可以使用+、|、~、,等符号来表示组合关系
* 使用方法:#if($ROLE.is("ADMIN"))删除#end
* 或:#if($ROLE.is("AMDIN,Manager"))删除所有#end
* @param roleName
* @return
*/
public boolean is(String roleName);
/**
* 判断一个用户是否对指定的对象有指定的操作权限
* @param operation 操作,"del","create","update","read"等
* 使用方法:#if($ROLE.is("del",$obj))删除该记录#end
* @param obj 操作的对象
* @return 如果具有操作权限
*/
public boolean is(String operation,Object obj);
}
在昨晚修改EasyJWeb的时候,在框架处理器中增加了一个全局Util的Map。同时增加了一个跟EasyJF的权限控制系统结合的AuthorizationUtil实现。下面是主要代码:
protected void createUtilContext(Context context) {
Object authorizationUtil = FrameworkEngine.getContainer()
.getBean(com.easyjf.util.AuthorizationUtil.class);
if (authorizationUtil != null) {
globalUtils.put("AUTH", authorizationUtil);
globalUtils.put("ROLE", authorizationUtil);
}
}
这样,在基于Spring2+JPA+EasyJWeb的应用中,可以在模板页面中使用下面的Velocity角本来进行权限控制。如:
#if($AUTH.is("ADMIN")) 删除#end
权限/角色的名称可以在系统运行的过程中自由设定。这样问题变得简单多了,不再需要访问底层的权限系统,也不在需要复杂的标签系统,就是调用这两个方法,而具这是在每一个展示的View中都开放的全局功能。
当然,也可以扩展一下模板标签系统,使用<role><a href="doDel();">删除</a>。当然我不喜欢后一种用法,因为总是会让页面人员把这个标签跟其它的标签搞混淆,而且也容易误删除,还是第一种方法看起直接,对于接受过我们半小时Velocity标签培训的页面制作及美工人员也应该会有同感。</role>
当然,如何让权限控制变得更加灵活,View层的使用更加方便直接、简易,想听听大家的看法。
在实际应用中,我们经常需要根据当前用户的操作权限来判断是否显示一新功能。如在论坛系统中,只有版主及管理才能删除贴子,因此在一般用户打开一个贴子的时候,就不需要出现“删除”这个连接。
权限系统标签接口的设计,在大多数应用中,以下接口中两个方法基本能满足大多数需求。
public interface AuthorizationUtil {
/**
* 根据名称判断用户角色,从而判断用户是否刻有该权限.roleName可以是单独的名称,大小写可以任意.可以包含空格等.
* 若要使用多个角色,可以使用+、|、~、,等符号来表示组合关系
* 使用方法:#if($ROLE.is("ADMIN"))删除#end
* 或:#if($ROLE.is("AMDIN,Manager"))删除所有#end
* @param roleName
* @return
*/
public boolean is(String roleName);
/**
* 判断一个用户是否对指定的对象有指定的操作权限
* @param operation 操作,"del","create","update","read"等
* 使用方法:#if($ROLE.is("del",$obj))删除该记录#end
* @param obj 操作的对象
* @return 如果具有操作权限
*/
public boolean is(String operation,Object obj);
}
权限系统标签接口的设计,在大多数应用中,以下接口中两个方法基本能满足大多数需求。
public interface AuthorizationUtil {
/**
* 根据名称判断用户角色,从而判断用户是否刻有该权限.roleName可以是单独的名称,大小写可以任意.可以包含空格等.
* 若要使用多个角色,可以使用+、|、~、,等符号来表示组合关系
* 使用方法:#if($ROLE.is("ADMIN"))删除#end
* 或:#if($ROLE.is("AMDIN,Manager"))删除所有#end
* @param roleName
* @return
*/
public boolean is(String roleName);
/**
* 判断一个用户是否对指定的对象有指定的操作权限
* @param operation 操作,"del","create","update","read"等
* 使用方法:#if($ROLE.is("del",$obj))删除该记录#end
* @param obj 操作的对象
* @return 如果具有操作权限
*/
public boolean is(String operation,Object obj);
}
在昨晚修改EasyJWeb的时候,在框架处理器中增加了一个全局Util的Map。同时增加了一个跟EasyJF的权限控制系统结合的AuthorizationUtil实现。下面是主要代码:
protected void createUtilContext(Context context) {
Object authorizationUtil = FrameworkEngine.getContainer()
.getBean(com.easyjf.util.AuthorizationUtil.class);
if (authorizationUtil != null) {
globalUtils.put("AUTH", authorizationUtil);
globalUtils.put("ROLE", authorizationUtil);
}
}
这样,在基于Spring2+JPA+EasyJWeb的应用中,可以在模板页面中使用下面的Velocity角本来进行权限控制。如:
#if($AUTH.is("ADMIN")) 删除#end
权限/角色的名称可以在系统运行的过程中自由设定。这样问题变得简单多了,不再需要访问底层的权限系统,也不在需要复杂的标签系统,就是调用这两个方法,而具这是在每一个展示的View中都开放的全局功能。
当然,也可以扩展一下模板标签系统,使用<role><a href="doDel();">删除</a>。当然我不喜欢后一种用法,因为总是会让页面人员把这个标签跟其它的标签搞混淆,而且也容易误删除,还是第一种方法看起直接,对于接受过我们半小时Velocity标签培训的页面制作及美工人员也应该会有同感。</role>
当然,如何让权限控制变得更加灵活,View层的使用更加方便直接、简易,想听听大家的看法。
在实际应用中,我们经常需要根据当前用户的操作权限来判断是否显示一新功能。如在论坛系统中,只有版主及管理才能删除贴子,因此在一般用户打开一个贴子的时候,就不需要出现“删除”这个连接。
权限系统标签接口的设计,在大多数应用中,以下接口中两个方法基本能满足大多数需求。
public interface AuthorizationUtil {
/**
* 根据名称判断用户角色,从而判断用户是否刻有该权限.roleName可以是单独的名称,大小写可以任意.可以包含空格等.
* 若要使用多个角色,可以使用+、|、~、,等符号来表示组合关系
* 使用方法:#if($ROLE.is("ADMIN"))删除#end
* 或:#if($ROLE.is("AMDIN,Manager"))删除所有#end
* @param roleName
* @return
*/
public boolean is(String roleName);
/**
* 判断一个用户是否对指定的对象有指定的操作权限
* @param operation 操作,"del","create","update","read"等
* 使用方法:#if($ROLE.is("del",$obj))删除该记录#end
* @param obj 操作的对象
* @return 如果具有操作权限
*/
public boolean is(String operation,Object obj);
}
权限系统标签接口的设计,在大多数应用中,以下接口中两个方法基本能满足大多数需求。
public interface AuthorizationUtil {
/**
* 根据名称判断用户角色,从而判断用户是否刻有该权限.roleName可以是单独的名称,大小写可以任意.可以包含空格等.
* 若要使用多个角色,可以使用+、|、~、,等符号来表示组合关系
* 使用方法:#if($ROLE.is("ADMIN"))删除#end
* 或:#if($ROLE.is("AMDIN,Manager"))删除所有#end
* @param roleName
* @return
*/
public boolean is(String roleName);
/**
* 判断一个用户是否对指定的对象有指定的操作权限
* @param operation 操作,"del","create","update","read"等
* 使用方法:#if($ROLE.is("del",$obj))删除该记录#end
* @param obj 操作的对象
* @return 如果具有操作权限
*/
public boolean is(String operation,Object obj);
}
在昨晚修改EasyJWeb的时候,在框架处理器中增加了一个全局Util的Map。同时增加了一个跟EasyJF的权限控制系统结合的AuthorizationUtil实现。下面是主要代码:
protected void createUtilContext(Context context) {
Object authorizationUtil = FrameworkEngine.getContainer()
.getBean(com.easyjf.util.AuthorizationUtil.class);
if (authorizationUtil != null) {
globalUtils.put("AUTH", authorizationUtil);
globalUtils.put("ROLE", authorizationUtil);
}
}
这样,在基于Spring2+JPA+EasyJWeb的应用中,可以在模板页面中使用下面的Velocity角本来进行权限控制。如:
#if($AUTH.is("ADMIN")) 删除#end
权限/角色的名称可以在系统运行的过程中自由设定。这样问题变得简单多了,不再需要访问底层的权限系统,也不在需要复杂的标签系统,就是调用这两个方法,而具这是在每一个展示的View中都开放的全局功能。
当然,也可以扩展一下模板标签系统,使用<role><a href="doDel();">删除</a>。当然我不喜欢后一种用法,因为总是会让页面人员把这个标签跟其它的标签搞混淆,而且也容易误删除,还是第一种方法看起直接,对于接受过我们半小时Velocity标签培训的页面制作及美工人员也应该会有同感。</role>
当然,如何让权限控制变得更加灵活,View层的使用更加方便直接、简易,想听听大家的看法。
在实际应用中,我们经常需要根据当前用户的操作权限来判断是否显示一新功能。如在论坛系统中,只有版主及管理才能删除贴子,因此在一般用户打开一个贴子的时候,就不需要出现“删除”这个连接。
权限系统标签接口的设计,在大多数应用中,以下接口中两个方法基本能满足大多数需求。
public interface AuthorizationUtil {
/**
* 根据名称判断用户角色,从而判断用户是否刻有该权限.roleName可以是单独的名称,大小写可以任意.可以包含空格等.
* 若要使用多个角色,可以使用+、|、~、,等符号来表示组合关系
* 使用方法:#if($ROLE.is("ADMIN"))删除#end
* 或:#if($ROLE.is("AMDIN,Manager"))删除所有#end
* @param roleName
* @return
*/
public boolean is(String roleName);
/**
* 判断一个用户是否对指定的对象有指定的操作权限
* @param operation 操作,"del","create","update","read"等
* 使用方法:#if($ROLE.is("del",$obj))删除该记录#end
* @param obj 操作的对象
* @return 如果具有操作权限
*/
public boolean is(String operation,Object obj);
}
权限系统标签接口的设计,在大多数应用中,以下接口中两个方法基本能满足大多数需求。
public interface AuthorizationUtil {
/**
* 根据名称判断用户角色,从而判断用户是否刻有该权限.roleName可以是单独的名称,大小写可以任意.可以包含空格等.
* 若要使用多个角色,可以使用+、|、~、,等符号来表示组合关系
* 使用方法:#if($ROLE.is("ADMIN"))删除#end
* 或:#if($ROLE.is("AMDIN,Manager"))删除所有#end
* @param roleName
* @return
*/
public boolean is(String roleName);
/**
* 判断一个用户是否对指定的对象有指定的操作权限
* @param operation 操作,"del","create","update","read"等
* 使用方法:#if($ROLE.is("del",$obj))删除该记录#end
* @param obj 操作的对象
* @return 如果具有操作权限
*/
public boolean is(String operation,Object obj);
}
在昨晚修改EasyJWeb的时候,在框架处理器中增加了一个全局Util的Map。同时增加了一个跟EasyJF的权限控制系统结合的AuthorizationUtil实现。下面是主要代码:
protected void createUtilContext(Context context) {
Object authorizationUtil = FrameworkEngine.getContainer()
.getBean(com.easyjf.util.AuthorizationUtil.class);
if (authorizationUtil != null) {
globalUtils.put("AUTH", authorizationUtil);
globalUtils.put("ROLE", authorizationUtil);
}
}
这样,在基于Spring2+JPA+EasyJWeb的应用中,可以在模板页面中使用下面的Velocity角本来进行权限控制。如:
#if($AUTH.is("ADMIN")) 删除#end
权限/角色的名称可以在系统运行的过程中自由设定。这样问题变得简单多了,不再需要访问底层的权限系统,也不在需要复杂的标签系统,就是调用这两个方法,而具这是在每一个展示的View中都开放的全局功能。
当然,也可以扩展一下模板标签系统,使用<role><a href="doDel();">删除</a>。当然我不喜欢后一种用法,因为总是会让页面人员把这个标签跟其它的标签搞混淆,而且也容易误删除,还是第一种方法看起直接,对于接受过我们半小时Velocity标签培训的页面制作及美工人员也应该会有同感。</role>
当然,如何让权限控制变得更加灵活,View层的使用更加方便直接、简易,想听听大家的看法。
在实际应用中,我们经常需要根据当前用户的操作权限来判断是否显示一新功能。如在论坛系统中,只有版主及管理才能删除贴子,因此在一般用户打开一个贴子的时候,就不需要出现“删除”这个连接。
权限系统标签接口的设计,在大多数应用中,以下接口中两个方法基本能满足大多数需求。
public interface AuthorizationUtil {
/**
* 根据名称判断用户角色,从而判断用户是否刻有该权限.roleName可以是单独的名称,大小写可以任意.可以包含空格等.
* 若要使用多个角色,可以使用+、|、~、,等符号来表示组合关系
* 使用方法:#if($ROLE.is("ADMIN"))删除#end
* 或:#if($ROLE.is("AMDIN,Manager"))删除所有#end
* @param roleName
* @return
*/
public boolean is(String roleName);
/**
* 判断一个用户是否对指定的对象有指定的操作权限
* @param operation 操作,"del","create","update","read"等
* 使用方法:#if($ROLE.is("del",$obj))删除该记录#end
* @param obj 操作的对象
* @return 如果具有操作权限
*/
public boolean is(String operation,Object obj);
}
权限系统标签接口的设计,在大多数应用中,以下接口中两个方法基本能满足大多数需求。
public interface AuthorizationUtil {
/**
* 根据名称判断用户角色,从而判断用户是否刻有该权限.roleName可以是单独的名称,大小写可以任意.可以包含空格等.
* 若要使用多个角色,可以使用+、|、~、,等符号来表示组合关系
* 使用方法:#if($ROLE.is("ADMIN"))删除#end
* 或:#if($ROLE.is("AMDIN,Manager"))删除所有#end
* @param roleName
* @return
*/
public boolean is(String roleName);
/**
* 判断一个用户是否对指定的对象有指定的操作权限
* @param operation 操作,"del","create","update","read"等
* 使用方法:#if($ROLE.is("del",$obj))删除该记录#end
* @param obj 操作的对象
* @return 如果具有操作权限
*/
public boolean is(String operation,Object obj);
}
在昨晚修改EasyJWeb的时候,在框架处理器中增加了一个全局Util的Map。同时增加了一个跟EasyJF的权限控制系统结合的AuthorizationUtil实现。下面是主要代码:
protected void createUtilContext(Context context) {
Object authorizationUtil = FrameworkEngine.getContainer()
.getBean(com.easyjf.util.AuthorizationUtil.class);
if (authorizationUtil != null) {
globalUtils.put("AUTH", authorizationUtil);
globalUtils.put("ROLE", authorizationUtil);
}
}
这样,在基于Spring2+JPA+EasyJWeb的应用中,可以在模板页面中使用下面的Velocity角本来进行权限控制。如:
#if($AUTH.is("ADMIN")) 删除#end
权限/角色的名称可以在系统运行的过程中自由设定。这样问题变得简单多了,不再需要访问底层的权限系统,也不在需要复杂的标签系统,就是调用这两个方法,而具这是在每一个展示的View中都开放的全局功能。
当然,也可以扩展一下模板标签系统,使用<role><a href="doDel();">删除</a>。当然我不喜欢后一种用法,因为总是会让页面人员把这个标签跟其它的标签搞混淆,而且也容易误删除,还是第一种方法看起直接,对于接受过我们半小时Velocity标签培训的页面制作及美工人员也应该会有同感。</role>
当然,如何让权限控制变得更加灵活,View层的使用更加方便直接、简易,想听听大家的看法。
相关推荐
资源名称:教你使用view controllers以及创建展示图片内容简介:通过教你制作一个上架应用 PicDecor来教你使用 view controllers以及创建展示图片本章教大家开发一个应用 PicDecor,这个应用可以允许用户从相册上传...
本文实例讲述了微信小程序实现动态改变view标签宽度和高度的方法。分享给大家供大家参考,具体如下: 1、效果展示 2、关键代码 index.wxml文件 <view class=view xss=removed>我是view标签,我现在的宽度是{{view....
View层方案Web框架整合
方向控制自定义View Android方向控制自定义View Android方向控制自定义View Android
自动左右循环轮播图,打折标签view,数量选择view。供初学者学习参考,不喜勿喷。
带标签的自定义View带标签
DAO层_Service层_Controller层、View层的一些了解知识,帮助填充对这部分比较空白的开发者们。
PLIN-View基本使用方法
uni-app 富文本内容利用html2json转换成对应类似控件 rich-text 对应的数组资源格式后进行展示的自定义组件、可以进行富文本html内容中 图片展示、视频播放、音频播放。
View层、Controller层、Service层、Dao层的区别以及对应的功能
systemview上的差错控制编码仿真
点击后可以展示到前端的div层jquery效果 展示地址 http://www.whkge.com/jsview/design20110831b/
非常好用的远程桌面控制工具,简单注册就可使用,可以通过互联网轻松控制远程电脑,只要远程电脑开机,就能控制
DebugView帮助文档 DebugView使用说明 DebugView介绍DebugView帮助文档 DebugView使用说明 DebugView介绍DebugView帮助文档 DebugView使用说明 DebugView介绍DebugView帮助文档 DebugView使用说明 DebugView介绍
PDFView4NET使用说明PDFView4NET使用说明
一个关于StackView的例子,很好的展示了图片演示的效果。
VMware View使用说明 vmware view 安装设置
通过透明的View展示透明的界面
详解微信小程序 通过控制CSS实现view隐藏与显示 实现效果图: 视图代码,使用变量控制隐藏类名 <view class=user_freeback> <view class=txt> <text> 为了更好地帮助您解决问题,请准确填写您的邮箱地址和电话...
用于全程监视和控制管理网络内所有用户上外网过程,一个局域网只需安装一套AnyView软件就可以监视和管理整个网络,被监视电脑上不需要安装任何软件;适合企业和政府使用;用于监视、控制所有的上INTERNET的网络内容和...