2014-02-02 2 views
1

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

ответ

1

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

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

1

Вы можете создать новый уровень разрешений путем копирования разрешения «Заплатить» и удаление Редактировать От этого. Настройки сайта -> Разрешения сайта -> Уровни разрешений -> нажмите «Contribute» -> Copy Permission Level на следующей странице снимите флажок «Редактировать» и создайте. Также вы можете сделать то же самое программно с помощью приемника функций.

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); 
0

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

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

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

0

Я тоже боролся с этим. По-видимому, внешние пользователи по умолчанию не имеют доступа к разрешениям UseRemoteAPI. Это продемонстрировано с проб и ошибок. У меня возникли проблемы с поиском каких-либо документов для его резервного копирования.

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

Этот блоггер имеет аналогичный вопрос, и хотя его контекст для сайтов O365 Public SharePoint (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> 

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

Смежные вопросы