Доска объявлений 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);
Таким образом, вы можете установить разрешения только в списке.
Если у пользователя нет прав, либо ничего не отображается, либо сообщение "у вас нет прав"