Скрыть риббон от пользователей и показать админам в SharePoint 2013 Design Manager

В SharePoint 2010 существовал серверный контрол SPSecurityTrimmedControl, который можно было использовать на masterpage для скрытия риббона, например, или других частей страницы. В SharePoint 2013 он никуда не делся, но скрыть риббон, редактируя страницу через Design Manager стало не так просто. Причина в том, что, во-первых, изменилась вёрстка, а во-вторых через сниппеты это делается чуть сложней… :)

Моя идея в том, чтобы скрыть риббон CSS-классом, а показавать его Javascript’ом, который будет выполняться только для админа. К сожалению, добавить CSS для админа через сниппет Design Manager’а у меня не получилось, некоторые символы «съедаются» при конвертации страницы в aspx.

Итак,
1. Скрываем риббон классом

#ms-designer-ribbon { display: none; }

2. Добавляем на Html Master Page код перед закрывающим тегом </body> (показываем риббон для админов):

<div data-name="SecurityTrimmedFullMask">
		    <!--CS: Start Security Trim Snippet-->
		    <!--SPM:<%@Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"%>-->
		    <!--MS:<SharePoint:SPSecurityTrimmedControl runat="server" Permissions="FullMask ">-->
		        <!--PS: Start of READ-ONLY PREVIEW (do not modify)--><span><!--PE: End of READ-ONLY PREVIEW-->
		        
				<script type="text/javascript">//<![CDATA[
				var ribbonDiv = document.getElementById("ms-designer-ribbon");
				ribbonDiv.setAttribute("style", "display: inline; position: static;");
				//]]></script>
		        
		        <!--PS: Start of READ-ONLY PREVIEW (do not modify)--></span><!--PE: End of READ-ONLY PREVIEW-->
		    <!--ME:</SharePoint:SPSecurityTrimmedControl>-->
		    <!--CE: End Security Trim Snippet-->
		</div>

Permissions="FullMask" указывает для пользователей с какими ролями показать участок кода внутри.

Важно прописать строку Register Tagprefix="SharePoint" прямо перед самим использованием тега SharePoint:SPSecurityTrimmedControl, иначе страница будет выдавать ошибку и тогда вы не только не увидите риббон, но озаботитесь поиском ошибки по Correlation Id :)

Поменьше ошибок, побольше стабильных решений, удачи!

Запись опубликована в рубрике SharePoint. Добавьте в закладки постоянную ссылку.

Один комментарий: Скрыть риббон от пользователей и показать админам в SharePoint 2013 Design Manager

  1. Выяснил как добавить CSS-стили прямо на страницу, правда пока не пробовал ограничить выдачу правами. Вот

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>