logo

[ELMA3] Права на просмотр/редактирование поля в пользовательском интерфейсе объекта

В статье рассмотрено как реализовать права доступа к полям системных объектов в веб форме.

Для того, чтобы сделать поле объекта доступным только для определенных групп пользователей, необходимо при выведении поля на форму осуществлять проверку принадлежности текущего пользователя нужной группе. В приведенном ниже примере файла разметки поле "Примечания" будет видно только пользователям, входящим в группу "Администраторы":
@using EleWise.ELMA.Security.Managers;
@using EleWise.ELMA.Security.Services;
@using EleWise.ELMA.Security.Models;
<table>
@{
    var admins = UserGroupManager.Instance.Load("Администраторы");
    var inAdmins = UserGroupManager.Instance.GetUsersByGroup(admins.Id).Any(a => a == AuthenticationService.GetCurrentUser<IUser>().Id);
	if(inAdmins)
	{
		@Html.EditableProperty("Primechaniya")
	}
}
</table>
Если необходимо вывести поле в режиме только для чтения для каких-либо групп, вместо метода EditableProperty нужно использовать метод Property.