Inheritance: System.Entity
Exemple #1
0
        /// <summary>
        /// Setups the default role permissions.
        /// </summary>
        /// <param name="operations">The operations.</param>
        /// <param name="type">The type.</param>
        /// <param name="entityId">The entity id.</param>
        public void SetupDefaultRolePermissions(IEnumerable <IPermissionOperation> operations, Type type, long?entityId)
        {
            var permissionService = ServiceLocator.Current.GetInstance <IPermissionService>();
            var entityTypeService = ServiceLocator.Current.GetInstance <IEntityTypeService>();

            EntityType entityType = entityTypeService.GetByType(type);

            if (operations != null && entityType != null)
            {
                //setup permissions for Owner
                var ownerPermissions = new Permission
                {
                    EntityId   = entityId,
                    EntityType = entityType,
                    Role       = new Role {
                        Id = (long)SystemRole.Owner
                    },
                    Permissions =
                        operations.Where(
                            permissionOperation => permissionOperation.OwnerDefaultAcess).
                        Aggregate(0,
                                  (current, permissionOperation) =>
                                  current | permissionOperation.Key)
                };
                permissionService.Save(ownerPermissions);

                //setup permissions for User
                var userPermissions = new Permission
                {
                    EntityId   = entityId,
                    EntityType = entityType,
                    Role       = new Role {
                        Id = (long)SystemRole.User
                    },
                    Permissions =
                        operations.Where(
                            permissionOperation => permissionOperation.UserDefaultAccess).
                        Aggregate(0,
                                  (current, permissionOperation) =>
                                  current | permissionOperation.Key)
                };
                permissionService.Save(userPermissions);

                //setup permissions for Guest
                var guestPermissions = new Permission
                {
                    EntityId   = entityId,
                    EntityType = entityType,
                    Role       = new Role {
                        Id = (long)SystemRole.Guest
                    },
                    Permissions =
                        operations.Where(
                            permissionOperation => permissionOperation.GuestDefaultAcess).
                        Aggregate(0,
                                  (current, permissionOperation) =>
                                  current | permissionOperation.Key)
                };

                permissionService.Save(guestPermissions);
            }
        }
        protected static void SetupPermissions()
        {
            var entityTypeService = ServiceLocator.Current.GetInstance<IEntityTypeService>();
            var existingItems = entityTypeService.GetAll().ToList();

            var itemsToRemove = existingItems.Where(item => !MvcApplication.PermissibleObjects.Exists(it => item.Name == PermissionsHelper.GetEntityType(it.GetType()))).ToList();

            var itemsToAdd = MvcApplication.PermissibleObjects.Where(item => !existingItems.Exists(it => it.Name == PermissionsHelper.GetEntityType(item.GetType()))).ToList();

            foreach (IPermissible item in itemsToAdd)
            {
                var entityType = new EntityType
                {
                    Name = PermissionsHelper.GetEntityType(item.GetType()),

                };

                entityTypeService.Save(entityType);
            }

            foreach (var item in itemsToRemove)
            {
                entityTypeService.Delete(item);
            }
        }
 /// <summary>
 /// Gets the resource operations.
 /// </summary>
 /// <param name="resource">The resource.</param>
 /// <param name="area">The area.</param>
 /// <returns></returns>
 public static IEnumerable<IPermissionOperation> GetResourceOperations(EntityType resource, PermissionArea area)
 {
     var permissibleObject = MvcApplication.PermissibleObjects.FirstOrDefault(
         perm =>
         PermissionsHelper.GetEntityType(perm.GetType()) ==
         resource.Name);
     if (permissibleObject != null)
     {
         return permissibleObject.Operations.Where(operation => (area == PermissionArea.Plugin || operation.Area == area) && operation.OperationLevel != PermissionOperationLevel.Object);
     }
     return null;
 }