如何从javascript登录用户详细信息 - Alfresco

时间:2016-04-12 06:31:12

标签: alfresco alfresco-share

我创建了一个自定义共享页面,其身份验证为用户。现在,如果登录用户是Manager,我想在页面中启用几个按钮。但我不知道如何找出登录用户是经理或合作者。有人可以帮助我吗?

2 个答案:

答案 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)