Esempio n. 1
0
        /// <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);
        }
Esempio n. 2
0
 public bool CanCreate(Entity type)
 {
     if (CurrentUser == null)
     {
         return(false);
     }
     return(IsAdmin(CurrentUser) || RightsController.UserCanCreate(type));
 }