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

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

问题描述

我使用的是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

推荐答案

我为此找到了解决方法。首先,我对除admin之外的所有人隐藏了标题的创建网站。我添加了以下文件。

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 并键入

<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 并添加

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

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

然后我创建了文件共享/类/露天/网络-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天全站免登陆