如何隐藏特定用户的创建网站链接 [英] How to hide create site link for particular user
问题描述
我使用的是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屋!