Exemplo n.º 1
0
        public virtual ActionResult AddPermissionsPost([FromBody] AddPermisionsPageModel model)
        {
            if (model is null)
            {
                throw new ArgumentNullException(nameof(model));
            }

            IRepository <SecurityGroup> securityGroupRepository = this.ServiceProvider.GetService <IRepository <SecurityGroup> >();

            foreach (Type t in TypeFactory.GetDerivedTypes(typeof(Entity)))
            {
                Type repositoryType = typeof(IEntityRepository <>).MakeGenericType(t);

                IEntityRepository permissionableEntityRepository = (IEntityRepository)this.ServiceProvider.GetService(repositoryType);

                using IWriteContext context = permissionableEntityRepository.WriteContext();

                IEnumerable Targets = permissionableEntityRepository.FindRange(model.Guids.Select(g => Guid.Parse(g)));

                List <SecurityGroup> Groups = securityGroupRepository.FindRange(model.SecurityGroups.Select(g => g.Guid).ToArray()).ToList();

                foreach (Entity?target in Targets)
                {
                    if (target is null)
                    {
                        continue;
                    }

                    foreach (SecurityGroup group in Groups)
                    {
                        this.EntityPermissionsRepository.AddPermission(target, group, model.TypeToAdd);
                    }
                }
            }

            return(this.Content("Permissions successfully added"));
        }
Exemplo n.º 2
0
 public virtual ActionResult AddPermissionsGet(AddPermisionsPageModel model)
 {
     return(this.View(model));
 }