Доска объявлений Sharepoint, скопируйте настройки и правила в веб-часть

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

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

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

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

Первое изображение

Второе изображение

2 ответа

Решение

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

это слово делает вещь "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 голос за тебя!:)

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

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

SPContext.List.CheckPermissions(SPBasePermissions.EditListItems);

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

Если у пользователя нет прав, либо ничего не отображается, либо сообщение "у вас нет прав"

Другие вопросы по тегам