Доска объявлений Sharepoint, скопируйте настройки и правила в веб-часть - PullRequest
1 голос
/ 19 января 2011

В настоящее время я разрабатываю веб-часть sharepoint для отображения приватной доски обсуждений. Обсуждение могут просматривать только пользователи с ограниченными правами. На данный момент могут быть разрешены следующие пользователи: Владелец семейства сайтов, Члены дискуссионного форума, Владелец дискуссионного форума.

Способ настройки безопасности веб-части заключается в том, чтобы получить всех пользователей и проверить, принадлежат ли они указанным разрешенным лицам на доске обсуждений.

Кажется, моя логика работает прямо сейчас, но проблема моего клиента в следующем: Что, если в будущем они изменят настройки или безопасность дискуссионной доски, и я больше не смогу исправить код веб-части так, чтобы настройки и безопасность веб-части синхронизировались с доской обсуждений? Моя идея на данный момент состоит в том, чтобы вместо разработки кода, который будет копировать настройки и безопасность доски обсуждений и применять ее к веб-части, я укажу настройки и безопасность веб-части прямо на доске обсуждений. Мой вопрос прямо сейчас: возможно ли это?

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

First Image

Second Image

Ответы [ 2 ]

2 голосов
/ 19 января 2011

Веб-часть должна использовать метод CheckPermissions

http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.splist.checkpermissions.aspx

SPContext.List.CheckPermissions(SPBasePermissions.EditListItems);

Таким образом, вы можете устанавливать разрешения только в списке.

Если пользовательне имеет разрешений, либо ничего не отображается, либо сообщение «у вас нет прав»

0 голосов
/ 19 января 2011

Привет, я исправил проблему!

это слово делает вещь "DoesUserHavePermissions" ... вот мой фрагмент кода

try
{
    string strListUrl = "http://MySite.com/List/MyDiscussion/AllItems.aspx";
    SPUser objCurrentUser = SPContext.Current.Web.CurrentUser;
    SPSite objSite = new SPSite(SPContext.Current.Web.Url);
    SPWeb objWeb = objSite.OpenWeb();
    SPList objList = objWeb.Lists[strListUrl];

    if(!objList.DoesUserHavePermissions(objCurrentUser,SPBasePermissions.EditListItems)){
        throw new UnauthorizedAccessException("You are not authorized to view this discussion!");
    }
}
catch(UnauthorizedAccessException uae){
    /// some exception handling codes here
}

@ djeeg: спасибо за помощь! 1 голос за тебя! :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...