Как установить разрешения списка SharePoint Online только для добавления и просмотра, но не для редактирования?

У меня есть список SharePoint в SharePoint Online (на основе SharePoint Server 2013), и я хочу разрешить пользователям добавлять элементы в список, но не редактировать какие-либо элементы. После того, как они отправили элемент, я хочу, чтобы он был рассмотрен и от него зависели другие вещи, поэтому я не могу позволить пользователю вносить изменения. Я могу видеть только разрешение Contribute, которое я могу назначать пользователям, и это позволяет создавать, просматривать и редактировать. Кто-нибудь знает, как я могу назначать пользователям разрешения только для создания и просмотра. Исключая Edit?


person Paul Andrew    schedule 02.02.2014    source источник


Ответы (4)


Вы можете создать собственный уровень разрешений, а затем назначить его пользователям / группам вашей библиотеки.

Чтобы создать настраиваемый уровень разрешений, перейдите в Настройки сайта -> Разрешения сайта -> Уровни разрешений -> Добавить уровень разрешений.

person Naim Murati    schedule 03.02.2014

Вы можете создать новый настраиваемый уровень разрешений, скопировав разрешения «Contribute» и удалив из него Edit. Настройки сайта -> Разрешения сайта -> Уровни разрешений -> нажмите «Внести вклад» -> Копировать уровень разрешений на следующей странице снимите флажок «Изменить» и создайте. Также вы можете сделать то же самое программно, используя приемник функций.

SPRoleDefinition roleDefinition = new SPRoleDefinition();
                        roleDefinition.Name = "School user custom permission";
                        roleDefinition.Description = "This Permission level has rights to add and view items.";
                        roleDefinition.BasePermissions = SPBasePermissions.AddListItems | SPBasePermissions.ViewListItems |SPBasePermissions.DeleteListItems|
                            SPBasePermissions.ViewPages | SPBasePermissions.ViewFormPages | SPBasePermissions.OpenItems | SPBasePermissions.ViewVersions | SPBasePermissions.DeleteVersions
                            | SPBasePermissions.CreateAlerts | SPBasePermissions.BrowseDirectories | SPBasePermissions.BrowseUserInfo | SPBasePermissions.UseRemoteAPIs | SPBasePermissions.Open
                            | SPBasePermissions.EditMyUserInfo | SPBasePermissions.ManagePersonalViews | SPBasePermissions.UpdatePersonalWebParts;
                        web.RoleDefinitions.Add(roleDefinition);
person Unnie    schedule 28.02.2014

MSFT говорит, что вы можете сделать это через их настройки siet, но я следовал приведенным ниже инструкциям и все еще не смог уточнить уровень разрешения на добавление.

Создание уровня разрешений Чтобы создать уровень разрешений, выполните следующие действия.

На сайте верхнего уровня семейства веб-сайтов щелкните значок «Параметры малых настроек», который занял место «Параметры сайта», а затем щелкните «Параметры сайта». На странице «Параметры сайта» в разделе «Пользователи и разрешения» щелкните «Разрешения сайта». На вкладке «Разрешения» щелкните «Уровни разрешений». На странице «Уровни разрешений» нажмите «Добавить уровень разрешений». На странице «Добавить уровень разрешений» в полях «Имя» и «Описание» введите имя и описание уровня разрешений. В области разрешений установите флажки рядом со списком, сайтом и личными разрешениями, которые вы хотите связать с этим уровнем разрешений. Щелкните "Создать".

person user3570217    schedule 24.04.2014

Я тоже боролся с этим. Очевидно, внешние пользователи по умолчанию не имеют доступа к разрешениям UseRemoteAPIs. Это демонстрируется методом проб и ошибок. У меня были проблемы с поиском какой-либо документации, подтверждающей это.

Тем не менее, как администратор на сайте Office365 SharePoint вы можете отключить требование разрешения UseRemoteAPIs, чтобы разрешить клиентскому JavaScript функционировать должным образом для внешних или анонимных пользователей.

У этого блоггера аналогичная проблема, и хотя его контекст предназначен для общедоступных сайтов SharePoint O365 (https://yieldreturnpost.wordpress.com/2014/08/28/anonymous-api-access-for-office-365-public-sites/) То же самое относится и к обычным сайтам O365 SharePoint:

<script type="text/javascript">
ExecuteOrDelayUntilScriptLoaded(function() {
   var ctx = new SP.ClientContext();
   var site = ctx.get_site();
   site.updateClientObjectModelUseRemoteAPIsPermissionSetting(false);
   ctx.executeQueryAsync(
      function() { alert('success') },
      function() { alert('error') }
   );
}, 'sp.js');
</script>

Обратите внимание, что вам нужно сделать вышеуказанный звонок только один раз на сайте.

person J.A.G    schedule 07.11.2015