/// <summary> /// Определяет права авторизованного пользователя на сущность. /// </summary> /// <param name="table"></param> /// <returns>Права текущего пользователя на сущность</returns> private CrudRights GetRights(object entity) { if (CurrentUser != null && entity != null) { var type = EntityMapper.EntityOf(entity); if (IsAdmin(CurrentUser)) { return(CrudRights.All); } else if (!OnlyAdmin(type) && (!RightsController.AssociatedWithUser(type) || RightsController.IsAutorizedRetrievingAllowed(entity, CurrentUser))) { // можно просматривать все сущности, которые не содержат данных о плательщике CrudRights rights = CrudRights.Retrieve; if (RightsController.IsAutorizedUpdatingAllowed(entity, CurrentUser)) { rights = rights | CrudRights.Update; } if (RightsController.UserCanCreate(type)) { rights = rights | CrudRights.Create; } if (RightsController.IsAutorizedDeletingAllowed(entity, CurrentUser)) { rights = rights | CrudRights.Delete; } return(rights); } } // нет пользователя или сущность может смотреть только администратор return(CrudRights.None); }
public bool CanCreate(Entity type) { if (CurrentUser == null) { return(false); } return(IsAdmin(CurrentUser) || RightsController.UserCanCreate(type)); }