我想自定义Surf Platform Root-Scoped API具体用户对象。这意味着向用户对象添加新属性或方法,以检查用户是否在header.inc.ftl
[in share]中的特定组中,例如`< #if user.isAdmin>
我不知道自定义冲浪平台根对象。任何人都可以帮助我吗?
答案 0 :(得分:4)
不太确定您要完成的任务,但角色安全模型在spring-surf / spring网页中是硬编码的。有来宾,用户和管理员。如果你想要的是另一个类似的角色,你将需要破解弹簧库,即:
org/springframework/extensions/surf/mvc/PageView.java
org/springframework/extensions/webscripts/ScriptUser.java
org/springframework/extensions/webscripts/Description.java
org/springframework/extensions/webscripts/connector/User.java
这是我实施user.isEmployee
所必须做的。这种方法可以让你像其他人一样对待你的新角色。
你可以使用
<authentication>employee</authentication>
页面描述符中的或
<item type="link" permission="employee" id="people">/people-finder</item>
导航上的。
只是检查用户是否在特定网页中的特定群组中,这是一个完全不同的故事,并不提供相同的功能。
如果你想要的是后者,你应该打电话给
/alfresco/service/api/groups/{shortName}
未命中 并通过回应工作。
更新:项目权限属性需要稍微调整一下。
在header.get.js
中,将新角色传播到该角色,并在header.inc.ftl
中正确处理:
model.permissions =
{
guest: user.isGuest,
admin: user.isAdmin,
employee : user.isEmployee
};
答案 1 :(得分:-1)
你可以尝试(在JavaScript中我管理过类似的东西):
user = Application.getCurrentUser(context);
String userName = user.getUserName();
user.isAdmin() >>> result return true if user logining is admin
或在JSP中:
#{NavigationBean.currentUser.admin == true}
很抱歉,我注意到你现在谈论的是Surf Platform根对象,但你放在那里的链接已经弃用了3.3以上的Alfresco版本。你还在用这么老的东西吗? 如果您设法使用JavaScript API,则可以使用&#34; person&#34; root对象,使用boolean isAdmin()。