我创建了一个自定义共享页面,其身份验证为用户。现在,如果登录用户是Manager,我想在页面中启用几个按钮。但我不知道如何找出登录用户是经理或合作者。有人可以帮助我吗?
答案 0 :(得分:5)
在共享层上运行的所有WebScript JavaScript控制器中,您都可以访问user.isAdmin
。这将是一个布尔值,指示当前用户是否具有管理员权限。
但是,我不确定这是不是你的意思,因为你说“经理” - 如果你想知道当前用户是否是当前网站的经理,那么就有必要要使用页面上下文中的站点ID向Repository发出请求,Alfresco代码库中有很多这样的示例 - 基本上应该看起来像这样:
var userIsSiteManager = false;
var json = remote.call("/api/sites/" + page.url.templateArgs.site + "/memberships/" + encodeURIComponent(user.name));
if (json.status == 200)
{
obj = JSON.parse(json);
}
if (obj)
{
userIsSiteManager = (obj.role == "SiteManager");
}
答案 1 :(得分:0)
在浏览器javaScript中,您应该使用ajax请求
Alfresco.util.Ajax.jsonPost({
url: Alfresco.constants.PROXY_URI + webScriptUrl,
dataObj: data,
successCallback: {
fn: succesCallback,
scope: this
},
failureCallback: {
fn: faliureCallback,
scope: this
}
});
在dataObj javaScript对象中传递您的请求参数。
在存储库webScript中使用json.get("paramName")
然后使用
var site = siteService.getSite(siteId);
//person - current logged in user
site.getMembersRole(person.properties.userName)