如何隐藏为特定用户创建站点链接 [英] How to hide create site link for particular user

查看:28
本文介绍了如何隐藏为特定用户创建站点链接的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用的是 Alfresco 4.2e 社区版.我可以通过修改以下文件来限制特定组的站点创建.

I am on Alfresco 4.2e Community Edition.I am able to restrict site creation for a particular group by modifying the following files.

public-services-security-context.xml

org.alfresco.service.cmr.site.SiteService.createSite=ACL_METHOD.ROLE_ADMINISTRATOR,ACL_METHOD.GROUP_SITECREATORS

在sites.get.js 和mysites.get.js 中我添加了这个

In sites.get.js and mysites.get.js I added this

var createSiteVisible = userHasGroup(user.name, 'SITECREATORS');
model.createSiteVisible = createSiteVisible;

function userHasGroup(username, group) {
   var result = remote.call("/api/people/" + stringUtils.urlEncode(username) + "?groups=true");
   if (result.status == 200 && result != "{}")
   {
      var user = eval('(' + result + ')');

      var groups = new Array();
      groups = user.groups;
      var mygroups = "";
      for (i=0; i<groups.length; i++)
      {                   
         if (groups[i].itemName == "GROUP_"+group || groups[i].itemName == "GROUP_ALFRESCO_ADMINISTRATORS"){
        return true; // found group
      }else{
        mygroup = mygroups+groups[i].displayName;
      }
      }

      return false;
   }
   else return false;
}

在 my-sites.get.html.ftl 和 sites.get.html.ftl 中,我将条件修改为

In my-sites.get.html.ftl and sites.get.html.ftl I modified the condition as

<#if createSiteVisible>
           <span class="align-right yui-button-align">
              <#if showCreateSite>
              <span class="first-child">
                 <a href="#" id="${id}-createSite-button" class="theme-color-1">
                    <img src="${url.context}/res/components/images/site-16.png" style="vertical-align: text-bottom" />
                    ${msg("link.createSite")}</a>
              </span>
              </#if>
           </span>   
</#if>

用户现在无法创建站点.但我仍然在标题菜单中创建站点链接.如何为用户隐藏创建站点.

User is not able to create site now.But still I am getting create site link in header menu. How to hide create site for the users.

!user.isAdmin 指的是管理员用户.引用组的 java 脚本是什么?谢谢

!user.isAdmin refers to admin user. What is the java script to refer a group?. Thank you

推荐答案

我找到了解决此问题的方法.首先,我为除管理员之外的所有人隐藏了创建站点"的标题.我添加了以下文件.

I found a work around for this. First I hided the Create Site from header for everyone except admin. I added the following files.

我在 shared/classes/alfresco/web-extension/site-data/extension/remove-create-site-extension.xml 中创建文件并输入

I created file in shared/classes/alfresco/web-extension/site-data/extension/remove-create-site-extension.xml and typed

<extension>
 <modules>
  <module>
   <id>Remove create site menu option for non admin users</id>
   <version>1.0</version>
   <customizations>
    <customization>
     <targetPackageRoot>org.alfresco.share.header</targetPackageRoot>
     <sourcePackageRoot>ingen.header</sourcePackageRoot>
    </customization>
    <customization>
     <targetPackageRoot>org.alfresco.components.dashlets</targetPackageRoot>
     <sourcePackageRoot>ingen.dashlets</sourcePackageRoot>
    </customization>
   </customizations>
  </module>
 </modules>
</extension>

然后我在 shared/classes/alfresco/web-extension/site-webscripts/ingen/header/share-header.get.js 中创建文件并添加

Then I created file in shared/classes/alfresco/web-extension/site-webscripts/ingen/header/share-header.get.js and added

//Find the "Sites" menu...
var sitesMenu = widgetUtils.findObject(model.jsonModel, "id", "HEADER_SITES_MENU");

if (sitesMenu != null) {
 if (!user.isAdmin) {
  sitesMenu.config.showCreateSite = false;
 }
}

然后我创建了文件 shared/classes/alfresco/web-extension/site-webscripts/ingen/dashlets/my-sites.get.js

Then I created file shared/classes/alfresco/web-extension/site-webscripts/ingen/dashlets/my-sites.get.js

if (!user.isAdmin) {
 model.showCreateSite = false;
}

这篇关于如何隐藏为特定用户创建站点链接的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆