При изменении свойств документа в библиотеке документов на сайте проекта в Project Server 2010 пользователь с уровнем доступа «Полный доступ» получал сообщение об ошибке (Рис.1).
Ошибка у пользователя воспроизводилась в разных браузерах, потому идею кэша или плагинов отбросил сразу. Потому отправился в логи SharePoint, тем более под рукой есть время и CorrelationID.
В логах по CorrelationID из найденных записей одна содержала информацию об ошибке:
System.Web.Services.Protocols.SoapException: ProjectServerError(s) LastError=GeneralSecurityAccessDenied Instructions: Pass this into PSClientError constructore to access all error information
at Microsoft.Office.Project.Server.WebServiceProxy.Security.CheckUserProjectPermission(Guid projectUid, Guid categoryPermissionUid)
at Microsoft.Office.Project.PWA.CustomFieldWebControls.CustomPWALinkField.OnLoad(EventArgs e)
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
Поскольку это не SharePoint в чистом виде, а Project Server, то решил проверить, какие права у пользователя на управление проектами. Зашел «Параметры» / «Параметры сервера» / «Управление пользователями» и попытался найти пользователя. Результатов не оказалось.
Потом вспомнил, что для пользователей Project Server была отключена синхронизация с Active Directory. Потому пришлось добавить пользователя вручную (https://project.server.url/_layouts/PWA/Admin/AddModifyUser.aspx?returnLocation=0).