Example #1
0
        public void Delete(int id)
        {
            SysRoleRight entity = this.GetEntity(id);

            db.Entry(entity).State = System.Data.Entity.EntityState.Deleted;
            db.SaveChanges();
        }
Example #2
0
        public bool SetRoleRights(string roleID, string SysRightsID, out string msg)
        {
            SqlParameter param = new SqlParameter("@RoleID", roleID);

            roleRightService.ExecuteSql("DELETE FROM dbo.SysRoleRight WHERE RoleID=@RoleID", out msg, param);
            if (!string.IsNullOrEmpty(SysRightsID))
            {
                SysRightsID.Split(',').ToList().ForEach(rightid =>
                {
                    if (!string.IsNullOrEmpty(rightid))
                    {
                        var roleRight = new SysRoleRight()
                        {
                            ID      = IdentityCreator.NextIdentity,
                            RightID = rightid,
                            RoleID  = roleID,
                        };
                        roleRightService.Add(roleRight);
                    }
                });
                return(roleRightService.SaveChanges(out msg) > 0);
            }
            else
            {
                return(true);
            }
        }
Example #3
0
        /// <summary>
        /// 新增角色权限
        /// </summary>
        /// <param name="userId">用户id</param>
        /// <param name="rightIds">权限集合</param>
        /// <param name="createId">创建者id</param>
        /// <returns></returns>
        /// author:duanxianghai 2015-12-2 14:28:37
        public int AddRoleRightForUser(int userId, List <int> rightIds, int createId = 0)
        {
            //已经具有的权限
            var pastRightId = db.SysRoleRights.Where(c => c.UserId == userId).Select(c => (int)c.RightId);

            //新选择的权限
            var addedRightId = rightIds.Where(c => !pastRightId.Contains(c)).ToList();
            //要删除的权限
            var deleteRightId = pastRightId.Where(c => !rightIds.Contains(c)).ToList();

            List <SysRoleRight> list = new List <SysRoleRight>();

            //新增
            for (int i = 0; i < addedRightId.Count; i++)
            {
                SysRoleRight model = new SysRoleRight()
                {
                    UserId = userId, CreateTime = DateTime.Now, RightId = addedRightId[i], CreateId = createId
                };
                list.Add(model);
            }

            db.SysRoleRights.AddRange(list);
            //删除
            var deleteList = db.SysRoleRights.Where(c => deleteRightId.Contains((int)c.RightId) && c.UserId == userId);

            db.SysRoleRights.RemoveRange(deleteList);

            var n = db.SaveChanges();

            //var r = db.SysRoleRights.Where(c => c.RoleId == userId).Select(c => c.RightId);

            //var b = db.SysRightInfos.Where(c => !r.Contains(c.ParentId) && r.Contains(c.Id));
            //if (b.Any())
            //{
            //    list.Clear();
            //    foreach (var bb in b)
            //    {
            //        if (bb.ParentId == 0)
            //        {
            //            continue;
            //        }
            //        SysRoleRight model = new SysRoleRight() { RoleId = userId, CreateTime = DateTime.Now, RightId = bb.ParentId, CreateId = createId };
            //        list.Add(model);

            //    }
            //    db.SysRoleRights.AddRange(list);
            //    n += db.SaveChanges();
            //}

            return(n);
        }
Example #4
0
 public int AddRoleRight(SysRoleRight model)
 {
     using (var conn = new SqlConnection(ConnectionStr.FxDb))
     {
         conn.Open();
         string sql = "INSERT INTO SysRoleRight(RoleId,MenuId) VALUES(@RoleId,@MenuId)";
         return(conn.Execute(sql,
                             new
         {
             RoleId = model.RoleId,
             MenuId = model.MenuId
         }));
     }
 }
Example #5
0
 public int UpdateRoleRight(SysRoleRight model)
 {
     using (var conn = new SqlConnection(ConnectionStr.FxDb))
     {
         conn.Open();
         string sql = "UPDATE SysRoleRight SET RoleId=@RoleId,MenuId=@MenuId WHERE Id=@Id";
         return(conn.Execute(sql,
                             new
         {
             Id = model.ID,
             RoleId = model.RoleId,
             MenuId = model.MenuId
         }));
     }
 }
Example #6
0
        /// <summary>
        /// 验证该登入用户是否有权限设置配置项
        /// </summary>
        /// <param name="nodePath"></param>
        /// <param name="result"></param>
        /// <returns></returns>
        private bool ValidateRight(string nodePath, LoadTreeResponseDTO result, bool isAddNode)
        {
            LoginUserInfo loginUserInfo = this.WorkContext.CurrentUser;

            string[] s     = nodePath.Split(new char[] { '/' }, StringSplitOptions.RemoveEmptyEntries);
            int      appId = 0;

            if (s.Length < 2)
            {
                result.IsSuccess = false;
                result.Message   = string.Format("很抱歉,参数nodePath【{0}】传错,请联系系统管理员处理!", nodePath);
                return(false);
            }
            int.TryParse(s[1], out appId);
            if (appId < 1)
            {
                result.IsSuccess = false;
                result.Message   = string.Format("根节点【ConfigService】下的第一层节点应是应用程序ID号,请联系系统管理员处理!", nodePath);
                if (isAddNode)
                {
                    result.Message = string.Format("根节点【ConfigService】下的第一层节点应是应用程序ID号!", nodePath);
                }
                return(false);
            }

            SysRoleRightLogic logic        = new SysRoleRightLogic();
            SysRoleRight      sysRoleRight = logic.GetRoleRight(false, loginUserInfo.RoleId, loginUserInfo.UserId, 0, AppSettingsHelper.ConfigCenterMenuName, appId);

            if (sysRoleRight == null)
            {
                result.IsSuccess = false;
                result.Message   = string.Format("很抱歉,您没有权限操作该应用【{0}】下的各配置项;请先为该应用开通下设置权限!", appId);
                return(false);
            }

            return(true);
        }
Example #7
0
 public void Delete(SysRoleRight entity)
 {
     db.Entry(entity).State = System.Data.Entity.EntityState.Deleted;
     db.SaveChanges();
 }
Example #8
0
 public void Update(SysRoleRight entity)
 {
     db.Entry(entity).State = System.Data.Entity.EntityState.Modified;
     db.SaveChanges();
 }
Example #9
0
 public void Add(SysRoleRight entity)
 {
     db.SysRoleRights.Add(entity);
     db.SaveChanges();
 }
Example #10
0
        public string LoadTree(int?id)
        {
            LoadTreeResponseDTO  result    = new LoadTreeResponseDTO();
            JavaScriptSerializer serialize = new JavaScriptSerializer();

            result.ZNodeList = new List <TreeZNode>();

            TreeZNode root = new TreeZNode(1, true, "/", "/", 0);

            result.ZNodeList.Add(root);
            me = new JZooKeeperClient();
            result.IsSuccess = me.GetNodeList(root, result.ZNodeList, ref result.Message);
            if (!result.IsSuccess)
            {
                return(serialize.Serialize(result));
            }

            /*
             * List<TreeZNode> treeNodeList = result.ZNodeList.Where(i => i.NodePath.IndexOf("/ConfigService") > -1 && i.pId == (id ?? 0)).OrderBy(x => x.name).ToList<TreeZNode>();
             */
            ///*
            List <TreeZNode> treeNodeList = result.ZNodeList.Where(i => i.NodePath.IndexOf("/ConfigService") > -1).OrderBy(x => x.name).ToList <TreeZNode>();

            //*/
            if (treeNodeList == null || treeNodeList.Count < 1)
            {
                result.ZNodeList = treeNodeList;
                result.IsSuccess = false;
                result.Message   = "目前没有配置项数据;请联系运维或系统管理员加【ConfigService】配置项。";

                return(serialize.Serialize(result));
            }

            //根据配置中心权限的设置显示节点:
            LoginUserInfo loginUserInfo = this.WorkContext.CurrentUser;
            int           loginRoleId   = loginUserInfo.RoleId;
            int           loginUserId   = loginUserInfo.UserId;

            switch (loginRoleId)
            {
            case 2:    //2表示系统管理员角色
            case 4:    //4表示运维角色
                break;

            case 7:    //7表示国内开发主管角色
            case 8:    //8表示国际开发主管角色
                SysRoleRightLogic logic = new SysRoleRightLogic();

                SysRoleRight sysRoleRight = logic.GetRoleRight(true, loginRoleId, 0, 0, AppSettingsHelper.ConfigCenterMenuName, 0);
                if (sysRoleRight == null)
                {
                    result.IsSuccess = false;
                    result.Message   = "很抱歉,您没有权限进行配置;请联系运维或系统管理员开通下设置页面的访问权限!";
                    break;
                }

                List <SysRoleRight> roleRightList = logic.GetRoleRightList(loginRoleId, true, loginUserId).ToList <SysRoleRight>();
                if (roleRightList == null || roleRightList.Count < 1)
                {
                    treeNodeList = treeNodeList.Where(node => node.NodePath.Equals("/ConfigService")).ToList <TreeZNode>();
                    break;
                }

                List <string>    appIdStringList = roleRightList.Select(r => r.AppIdString).ToList <string>();
                List <TreeZNode> tempList        = treeNodeList.Where(n => n.NodePath.Equals("/ConfigService")).ToList <TreeZNode>();
                foreach (string appId in appIdStringList)
                {
                    List <TreeZNode> list = treeNodeList.Where(n => n.NodePath.IndexOf("/ConfigService/" + appId) > -1).ToList();
                    if (list != null && list.Count > 0)
                    {
                        tempList.InsertRange(tempList.Count - 1, list);
                    }
                }
                treeNodeList = tempList;
                break;

            default:    //只有具有系统管理员、运维、国内/国际开发主管角色的登入用户才有权限进行配置
                result.IsSuccess = false;
                result.Message   = "很抱歉,您没有权限进行配置!";
                break;
            }

            result.ZNodeList = treeNodeList.OrderBy(x => x.name).ToList <TreeZNode>();

            return(serialize.Serialize(result));
        }