Удаление Sharepoint QuickLaunch на основе разрешений

63
6

В настоящее время я работаю над некоторым брендом SharePoint. Я использую SharePoint Foundation 2010. Я пытался попытаться удалить раздел быстрого запуска со страницы для всех, кто не находится в группе "Администратор". Теперь я попробовал написать функцию или веб-часть, чтобы сделать это со следующим кодом С#:

SPWeb web = SPContext.GetContext(this.Context).Web.ParentWeb;
web.AllowUnsafeUpdates = true;
web.QuickLaunchEnabled = false;
web.Update();

Это не устранило фактическую панель и переместило основное содержимое влево. Я решил попробовать это по маршруту JQuery. Мой код скопирован ниже. Однако, когда я пробовал это на главной странице, страница полностью загружается, а затем панель удаляется. Я хотел бы, чтобы это произошло до того, как страница загрузится, поэтому пользователь не видит всплывающее окно и затем меняет его. Я не уверен на 100%, что JQuery - это путь, пожалуйста, помогите мне, поскольку я борюсь с этим.

$(document).ready(function(){
$().SPServices({
operation: "GetGroupCollectionFromUser",
userLoginName: $().SPServices.SPGetCurrentUser(),
async: false,
completefunc: function(xData, Status) {
if($(xData.responseXML).find("Group[Name='Administrator']").length == 1)
{}
else{

var quicklaunchpanel = document.getElementById('s4-leftpanel');
quicklaunchpanel.style.display="none";
var maincontent = document.getElementById('MSO_ContentTable');
maincontent.style.cssText = "margin-left:0px;";

}
}

});

Примечание. Я также пробовал $ (document).load() и $ ('# s4-leftpanel'). Load(), но ни одно из них не вызвало никаких действий, которые так когда-либо были.

ТИА!

спросил(а) 2021-01-25T15:43:35+03:00 6 месяцев назад
1
Решение
89

Я смог использовать SPSecurityTrimmedControl для этого:

Первоначально я устанавливал свойство display на s4-leftpanel на "none", а затем после этого блока был этот блок кода:

<Sharepoint:SPSecurityTrimmedControl runat="server" Permissions="FullMask">
<script type="text/javascript">
document.getElementById("s4-leftpanel").style.display = "block";
</script>
</Sharepoint:SPSecurityTrimmedControl>

Я также выполнил то же самое для поля MSO_ContentTable.I установить его на 0px, а затем запустить этот код после этого div:

        <Sharepoint:SPSecurityTrimmedControl runat="server" Permissions="FullMask">
<script type="text/javascript">
document.getElementById("MSO_ContentTable").style.marginLeft = "155px";
</script>
</Sharepoint:SPSecurityTrimmedControl>

ответил(а) 2021-01-25T15:43:35+03:00 6 месяцев назад
45

Shenn,

Рассматривали ли вы создание настраиваемого навигационного элемента управления? Это может показаться радикальным, но, возможно, это то, что вы ищете.

Взгляните на http://blogs.msdn.com/b/modonovan/archive/2008/05/30/custom-navigation-in-sharepoint-the-full-monty.aspx, особенно варианты 5 и 6.

ответил(а) 2021-01-25T15:43:35+03:00 6 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема