Beispiel #1
0
        public static void Seed(ApplicationDbContext context)
        {
            if (context.Features.Count() != SecurityConfiguration.Features.Count())
            {
                context.Features.RemoveRange(context.Features);
                var features = SecurityConfiguration.Features.Select(feat => Feature.Create(feat.Name));
                context.Features.AddRange(features);
                context.SaveChanges();
            }

            if (context.Roles.Count() != SecurityConfiguration.Roles.Count())
            {
                context.Roles.RemoveRange(context.Roles);

                var roles = SecurityConfiguration.Roles
                            .Select(r => Role.Create(r.Name))
                            .ToList();

                context.Roles.AddRange(roles);

                foreach (var roleConfig in SecurityConfiguration.Roles)
                {
                    var featureConfigs = SecurityConfiguration.Features.Where(f => f.Roles.Contains(roleConfig.Name));
                    var role           = roles.Single(r => r.Name == roleConfig.Name);

                    foreach (var feature in featureConfigs)
                    {
                        var roleFeature = RoleFeature.Create(role, context.Features.Single(x => x.Name == feature.Name));

                        role.AddRoleFeature(roleFeature);
                    }
                }
                context.SaveChanges();
            }
        }
        public void RoleFeature_PublicProperties()
        {
            var applicationRole = new ApplicationRole()
            {
                Id = "1"
            };
            var feature = new Feature()
            {
                Id = 1
            };
            var obj = new RoleFeature
            {
                RoleFeatureId      = 1,
                ApplicationRole_Id = "name",
                ApplicationRole    = applicationRole,
                Feature_Id         = 1,
                Feature            = feature
            };

            Assert.AreEqual(1, obj.RoleFeatureId);
            Assert.AreEqual("name", obj.ApplicationRole_Id);
            Assert.AreEqual(applicationRole, obj.ApplicationRole);
            Assert.AreEqual(1, obj.Feature_Id);
            Assert.AreEqual(feature, obj.Feature);
        }
Beispiel #3
0
        public void RoleAddFeature(int roleId, int FeatureId)
        {
            RoleFeature rf = new RoleFeature()
            {
                FeatureId = FeatureId,
                RoleId    = roleId
            };

            rfSrv.Create(rf);
        }
Beispiel #4
0
        public ActionResult Save(RoleFeatureModel model)
        {
            RoleFeature rf = new RoleFeature();

            rf.FeatureId = model.FeatureId;
            rf.RoleId    = model.RoleId;

            roleFeatureService.Add(rf);
            unitOfWork.Commit();

            return(PartialView());
        }
Beispiel #5
0
        protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
        {
            RoleFeature feature = featureService.GetFirstOrDefault(IdentityHelper.UserId);

            if (feature != null)
            {
                //導到別頁
                filterContext.HttpContext.Response.RedirectToRoute(new { controller = feature.ControllerName, action = feature.ActionName });
            }
            else
            {
                //用URL
                filterContext.HttpContext.Response.Redirect("~/Home/Logout");
            }


            //filterContext.Result = new ViewResult { ViewName = AuthorizationFailView };
        }
        public static void AddRoleFeatures(AuthorizeDbContext context)
        {
            var roleFeatures = new RoleFeature[]
            {
                new RoleFeature {
                    FeatureId = 1, RoleId = 1
                },
                new RoleFeature {
                    FeatureId = 2, RoleId = 1
                },
            };

            foreach (var rp in roleFeatures)
            {
                context.RoleFeatures.Add(rp);
            }

            context.SaveChanges();
        }
Beispiel #7
0
        public static void Seed(ApplicationDbContext context)
        {
            if (context.Features.Count() != SecurityConfiguration.Features.Count())
            {
                context.Features.RemoveRange(context.Features);
                var features = SecurityConfiguration.Features.Select(feat => Feature.Create(feat.Name));
                context.Features.AddRange(features);
                context.SaveChanges();
            }

            if (context.Roles.Count() != SecurityConfiguration.Roles.Count())
            {
                context.Roles.RemoveRange(context.Roles);

                var roles = SecurityConfiguration.Roles
                            .Select(r => Role.Create(r.Name))
                            .ToList();

                context.Roles.AddRange(roles);

                foreach (var roleConfig in SecurityConfiguration.Roles)
                {
                    var featureConfigs = SecurityConfiguration.Features.Where(f => f.Roles.Contains(roleConfig.Name));
                    var role           = roles.Single(r => r.Name == roleConfig.Name);

                    foreach (var feature in featureConfigs)
                    {
                        var roleFeature = RoleFeature.Create(role, context.Features.Single(x => x.Name == feature.Name));

                        role.AddRoleFeature(roleFeature);

                        //EF workarround to avoid DbUpdateConcurrencyException.
                        //EF considered (bug?) the entity in modified state (n-n relationship) but it's a new object (Added)
                        //https://docs.microsoft.com/fr-fr/ef/core/saving/concurrency
                        //context.Entry(roleFeature).State = EntityState.Added;
                    }
                }
                context.SaveChanges();
            }
        }
Beispiel #8
0
        public bool AddUserRole(UserRolesDTO role)
        {
            UserRole userRole = new UserRole();

            userRole.UserRoleName          = role.RoleName;
            userRole.UserRoleDescriptionAr = role.RoleDescriptionAr;
            userRole.UserRoleDescriptionEn = role.RoleDescriptionEn;

            userRole = operationalDataContext.UserRoles.Add(userRole);

            foreach (FeaturesDTO feature in role.RoleFeatures)
            {
                var roleFeature = new RoleFeature
                {
                    FeatureId = feature.FeatureId,
                    RoleId    = userRole.UserRoleId
                };

                operationalDataContext.RoleFeatures.Add(roleFeature);
            }

            return(operationalDataContext.SaveChanges() > 0);
        }
 public void Add(RoleFeature entity)
 {
     roleFeatureRepository.Add(entity);
 }
 public void Update(RoleFeature entity)
 {
     roleFeatureRepository.Update(entity);
 }
Beispiel #11
0
 public bool Remove(RoleFeature obj)
 {
     return(database.ExecuteNonQuery("RemoveRoleFeature", obj.RoleId, obj.FeatureId) > 0);
 }
Beispiel #12
0
 public bool Add(RoleFeature obj)
 {
     return(database.ExecuteNonQuery("AddRoleFeature", obj.RoleId, obj.FeatureId) > 0);
 }
Beispiel #13
0
 public ActionResult CreateFeature(RoleFeature feature)
 {
     roleFeatureService.Create(feature);
     return(RedirectToAction("EditFeature", new { id = feature.RoleNum }));
 }