Beispiel #1
0
        /// <summary>
        /// 给用户分配分组
        /// </summary>
        /// <param name="grouplistIds">分组id</param>
        /// <param name="keyValue">用户id</param>
        public void groupAuthority(string grouplistIds, int keyValue)
        {
            user          u                   = this.getEntityById(keyValue);
            IuserGroupEx  userGroupEx         = new userGroupEx();
            userGroupEx   uge                 = new dal.userGroupEx();
            List <group>  currentUserGroup    = uge.getGroup(u.username);
            List <string> currentUserGroupIds = new List <string>();

            foreach (var item in currentUserGroup)
            {
                currentUserGroupIds.Add(item.id.ToString());
            }
            if (!string.IsNullOrEmpty(grouplistIds))
            {
                string[]      ids             = grouplistIds.Split(',');
                List <string> groupIds        = ids.ToList();
                var           interselectList = groupIds.Intersect(currentUserGroupIds).ToList(); //对数据库中分组id和当前用户的分组id做交集
                var           exceptList      = currentUserGroupIds.Except(groupIds).ToList();    ////做差集,选出当前用户数据库中有但没有传入的分组id。
                if (exceptList != null)
                {
                    foreach (var item in exceptList)
                    {
                        userGroupEx.deleteUserGroup(keyValue, Convert.ToInt32(item));
                    }
                }
                var exceptList1 = groupIds.Except(currentUserGroupIds).ToList();//做差集,选出传入的分组id中有但数据库中该用户没有的分组id
                if (exceptList1 != null)
                {
                    foreach (var item in exceptList1)
                    {
                        userGroupEx.insertUserGroup(keyValue, Convert.ToInt32(item));
                    }
                }
            }
        }
Beispiel #2
0
        /// <summary>
        /// 获取用户及角色和所属分组
        /// </summary>
        /// <returns></returns>
        public DataTable getUserRoleGroup(string keyValue)
        {
            var       r  = db.Queryable <user>().ToList();
            DataTable dt = db.Queryable <user>().ToDataTable();

            for (int i = 0; i < dt.Rows.Count; i++)
            {
                userRoleEx  ure = new userRoleEx();
                userGroupEx uge = new userGroupEx();
                dt.Rows[i]["rolelist"]  = ure.getRoleName(Convert.ToInt32(dt.Rows[i]["id"]));
                dt.Rows[i]["grouplist"] = uge.getGroupName(Convert.ToInt32(dt.Rows[i]["id"]));
            }
            return(dt);
        }
Beispiel #3
0
        /// <summary>
        /// 获取用户表的分页并显示用户角色及分组
        /// </summary>
        /// <param name="pageIndex"></param>
        /// <param name="pageSize">页面的数据总数</param>
        /// <param name="searchStr">搜索的字段</param>
        /// <returns></returns>
        public List <user> getPaginationUserList(int pageIndex, int pageSize, Dictionary <string, object> searchStr)
        {
            userRoleEx  ure        = new userRoleEx();
            userGroupEx uge        = new userGroupEx();
            List <user> entitylist = new List <user>();
            var         entitydata = getEntityList(searchStr);
            var         pagerfirst = (pageIndex - 1) * pageSize;

            entitylist = entitydata.Skip(pagerfirst).Take(pageSize).ToList();
            foreach (user us in entitylist)
            {
                us.rolelist  = ure.getRoleName(us.id);
                us.grouplist = uge.getGroupName(us.id);
            }
            return(entitylist);
        }