如何隐藏为特定用户创建站点链接 [英] 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
推荐答案
我找到了解决此问题的方法.首先,我为除管理员之外的所有人隐藏了创建站点"的标题.我添加了以下文件.
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屋!