예제 #1
0
        /// <summary>
        /// Изменение прав у роли
        /// </summary>
        /// <param name="roleClaim"></param>
        /// <returns></returns>
        public bool UpdateRoleClaim(RoleClaimModel roleClaim)
        {
            using (var db = new CMSdb(_context))
            {
                using (var tran = db.BeginTransaction())
                {
                    var dbRoleclaim = db.core_AspNetRoleClaims
                                      .Where(s => s.RoleId == roleClaim.RoleId.ToString())
                                      .Where(s => s.ClaimType == roleClaim.Type)
                                      .Where(s => s.ClaimValue == roleClaim.Value);

                    if (roleClaim.Checked)
                    {
                        if (!dbRoleclaim.Any())
                        {
                            //insert
                            var newRoleClaim = new core_AspNetRoleClaims()
                            {
                                RoleId     = roleClaim.RoleId.ToString(),
                                ClaimType  = roleClaim.Type,
                                ClaimValue = roleClaim.Value
                            };

                            db.Insert(newRoleClaim);

                            //log
                            //var log = new LogModel
                            //{
                            //    PageId = Guid.NewGuid,
                            //    PageName = "",
                            //    Section = LogModule.Users,
                            //    Action = LogAction.update,
                            //    Comment = "Изменена связь пользователя с сайтами"
                            //};
                            //InsertLog(log);


                            tran.Commit();
                            return(true);
                        }
                    }
                    else
                    {
                        if (dbRoleclaim.Any())
                        {
                            //delete
                            var roleClaimData = dbRoleclaim.Single();
                            db.Delete(roleClaimData);

                            //log

                            tran.Commit();
                            return(true);
                        }
                    }

                    return(false);
                }
            }
        }
예제 #2
0
        public ActionResult DeleteRoleFromSite(Guid roleId, Guid siteId)
        {
            var roleClaim = new RoleClaimModel()
            {
                RoleId  = roleId,
                Type    = "_SiteIdentity",
                Value   = siteId.ToString(),
                Checked = false
            };
            var res = _cmsRepository.UpdateRoleClaim(roleClaim);

            if (res)
            {
                return(Json("Success"));
            }

            return(Json("An Error Has Occourred"));
        }
예제 #3
0
        public ActionResult UpdateRoleClaim(RoleClaimModel roleClaim)
        {
            var res = true;

            if (roleClaim.Section == ClaimSection.CMS)
            {
                res = _cmsRepository.UpdateRoleClaim(roleClaim);
            }
            else if (roleClaim.Section == ClaimSection.Module)
            {
                //Ранее предполагалось, что компоненты модуля находятся в одном контроллере
                //Права на дочерние контроллеры (компоненты модуля)
                var module = _cmsRepository.GetModule(roleClaim.Type);
                if (module != null && module.ModuleParts.Count() > 0)
                {
                    foreach (var part in module.ModuleParts.Distinct())
                    {
                        var newClaim = new RoleClaimModel()
                        {
                            RoleId  = roleClaim.RoleId,
                            Type    = part.ControllerName,
                            Value   = roleClaim.Value,
                            Checked = roleClaim.Checked
                        };
                        var updRes = _cmsRepository.UpdateRoleClaim(newClaim);
                        if (updRes)
                        {
                            res = false;
                        }
                    }
                }
            }
            else
            {
                res = false;
            }

            if (res)
            {
                return(Json("Success"));
            }

            return(Json("An Error Has Occourred"));
        }