Esempio n. 1
0
        public RoleMenuInfo GetModel(Guid roleId, Guid menuId)
        {
            RoleMenuInfo model = null;

            StringBuilder sb = new StringBuilder(300);

            sb.Append(@"select top 1 RoleId,MenuId,OperationAccess 
			            from RoleMenu
						where RoleId = @RoleId and MenuId = @MenuId "                        );
            SqlParameter[] parms =
            {
                new SqlParameter("@RoleId", SqlDbType.UniqueIdentifier),
                new SqlParameter("@MenuId", SqlDbType.UniqueIdentifier)
            };
            parms[0].Value = roleId;
            parms[1].Value = menuId;

            using (SqlDataReader reader = SqlHelper.ExecuteReader(SqlHelper.AssetConnString, CommandType.Text, sb.ToString(), parms))
            {
                if (reader != null)
                {
                    if (reader.Read())
                    {
                        model                 = new RoleMenuInfo();
                        model.RoleId          = reader.GetGuid(0);
                        model.MenuId          = reader.GetGuid(1);
                        model.OperationAccess = reader.GetString(2);
                    }
                }
            }

            return(model);
        }
Esempio n. 2
0
        public IList <RoleMenuInfo> GetList(string sqlWhere, params SqlParameter[] cmdParms)
        {
            StringBuilder sb = new StringBuilder(500);

            sb.Append(@"select RoleId,MenuId,OperationAccess
                        from RoleMenu ");
            if (!string.IsNullOrEmpty(sqlWhere))
            {
                sb.AppendFormat(" where 1=1 {0} ", sqlWhere);
            }

            IList <RoleMenuInfo> list = new List <RoleMenuInfo>();

            using (SqlDataReader reader = SqlHelper.ExecuteReader(SqlHelper.AssetConnString, CommandType.Text, sb.ToString(), cmdParms))
            {
                if (reader != null && reader.HasRows)
                {
                    while (reader.Read())
                    {
                        RoleMenuInfo model = new RoleMenuInfo();
                        model.RoleId          = reader.GetGuid(0);
                        model.MenuId          = reader.GetGuid(1);
                        model.OperationAccess = reader.GetString(2);

                        list.Add(model);
                    }
                }
            }

            return(list);
        }
Esempio n. 3
0
        public ActionResult GetRoleMenus(int roleid)
        {
            var service = Container.GetService <IRoleMenuService>();
            var list    = service.GetVModels(rm => rm.RoleId == roleid).ToList();

            return(Json(RoleMenuInfo.ConvertToRoleMenuInfos(list)));
        }
Esempio n. 4
0
        public IList <RoleMenuInfo> GetList(int pageIndex, int pageSize, string sqlWhere, params SqlParameter[] cmdParms)
        {
            StringBuilder sb         = new StringBuilder(500);
            int           startIndex = (pageIndex - 1) * pageSize + 1;
            int           endIndex   = pageIndex * pageSize;

            sb.Append(@"select * from(select row_number() over(order by LastUpdatedDate desc) as RowNumber,
			           RoleId,MenuId,OperationAccess
					   from RoleMenu "                    );
            if (!string.IsNullOrEmpty(sqlWhere))
            {
                sb.AppendFormat(" where 1=1 {0} ", sqlWhere);
            }
            sb.AppendFormat(@")as objTable where RowNumber between {0} and {1} ", startIndex, endIndex);

            IList <RoleMenuInfo> list = new List <RoleMenuInfo>();

            using (SqlDataReader reader = SqlHelper.ExecuteReader(SqlHelper.AssetConnString, CommandType.Text, sb.ToString(), cmdParms))
            {
                if (reader != null && reader.HasRows)
                {
                    while (reader.Read())
                    {
                        RoleMenuInfo model = new RoleMenuInfo();
                        model.RoleId          = reader.GetGuid(1);
                        model.MenuId          = reader.GetGuid(2);
                        model.OperationAccess = reader.GetString(3);

                        list.Add(model);
                    }
                }
            }

            return(list);
        }
Esempio n. 5
0
        public IList <RoleMenuInfo> GetList()
        {
            StringBuilder sb = new StringBuilder(300);

            sb.Append(@"select RoleId,MenuId,OperationAccess 
			            from RoleMenu
					    order by LastUpdatedDate desc "                    );

            IList <RoleMenuInfo> list = new List <RoleMenuInfo>();

            using (SqlDataReader reader = SqlHelper.ExecuteReader(SqlHelper.AssetConnString, CommandType.Text, sb.ToString()))
            {
                if (reader != null && reader.HasRows)
                {
                    while (reader.Read())
                    {
                        RoleMenuInfo model = new RoleMenuInfo();
                        model.RoleId          = reader.GetGuid(0);
                        model.MenuId          = reader.GetGuid(1);
                        model.OperationAccess = reader.GetString(2);

                        list.Add(model);
                    }
                }
            }

            return(list);
        }
Esempio n. 6
0
        protected void menuGroup_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
            {
                Repeater     rp    = e.Item.FindControl("menuButton") as Repeater; //子菜单数据空间。
                RoleMenuInfo pMenu = (RoleMenuInfo)(e.Item.DataItem);              //插入的菜单对象


                rp.DataSource = pMenu.childMenus;
                rp.DataBind();
            }
        }
Esempio n. 7
0
        public void AddRoleMenu(RoleMenuInfo roleMenuInfo)
        {
            string sql = "insert into S_RoleMenu(RoleId,MenuId)values(@RoleId,@MenuId)";

            List<SqlParameter> lstParamter = new List<SqlParameter>();

            SqlParameter paramter = new SqlParameter("@RoleId", roleMenuInfo.RoleId);
            lstParamter.Add(paramter);

            paramter = new SqlParameter("@MenuId", roleMenuInfo.MenuId);
            lstParamter.Add(paramter);

            SQLHelp.ExecuteNonQuery(sql, lstParamter);
        }
        public async Task <MessageModel <string> > SetRoleMenuList(RoleMenuInfo roleMenuInfo)
        {
            var data = new MessageModel <string>();

            if (roleMenuInfo.rID == 0 || string.IsNullOrEmpty(roleMenuInfo.mIDs))
            {
                data.success = false;
                data.msg     = "分配权限失败!";
                return(data);
            }
            try
            {
                unitOfWork.BeginTran();
                var rmids = (await roleMenuInfoService.Query(n => n.rID == roleMenuInfo.rID)).Select(n => n.rmID.ToString()).ToArray();
                //删除该角色下所有权限
                var res = await roleMenuInfoService.DeleteByIds(rmids);

                //添加该角色下所有的权限
                List <int> mRoot = new List <int>();
                //去掉父节点
                foreach (var item in roleMenuInfo.mIDs.Split(','))
                {
                    if ((await menuinfoService.QueryById(item)).mPid != 0)
                    {
                        mRoot.Add(int.Parse(item));
                    }
                }
                data.success = true;
                mRoot.ForEach(async rm =>
                {
                    data.success = data.success && await roleMenuInfoService.Add(new RoleMenuInfo(roleMenuInfo.rID, rm)) > 0;
                });
                if (data.success)
                {
                    data.msg = "分配权限成功!";
                }
                unitOfWork.CommitTran();
            }
            catch (Exception ex)
            {
                unitOfWork.RollbackTran();
            }
            return(data);
        }
Esempio n. 9
0
        public int Update(RoleMenuInfo model)
        {
            StringBuilder sb = new StringBuilder(250);

            sb.Append(@"update RoleMenu set OperationAccess = @OperationAccess 
			            where RoleId = @RoleId and MenuId = @MenuId
					    "                    );

            SqlParameter[] parms =
            {
                new SqlParameter("@RoleId",          SqlDbType.UniqueIdentifier),
                new SqlParameter("@MenuId",          SqlDbType.UniqueIdentifier),
                new SqlParameter("@OperationAccess", SqlDbType.VarChar, 300)
            };
            parms[0].Value = model.RoleId;
            parms[1].Value = model.MenuId;
            parms[2].Value = model.OperationAccess;

            return(SqlHelper.ExecuteNonQuery(SqlHelper.AssetConnString, CommandType.Text, sb.ToString(), parms));
        }
Esempio n. 10
0
        public int Insert(RoleMenuInfo model)
        {
            StringBuilder sb = new StringBuilder(250);

            sb.Append(@"insert into RoleMenu (RoleId,MenuId,OperationAccess)
			            values
						(@RoleId,@MenuId,@OperationAccess)
			            "            );

            SqlParameter[] parms =
            {
                new SqlParameter("@RoleId",          SqlDbType.UniqueIdentifier),
                new SqlParameter("@MenuId",          SqlDbType.UniqueIdentifier),
                new SqlParameter("@OperationAccess", SqlDbType.VarChar, 300)
            };
            parms[0].Value = model.RoleId;
            parms[1].Value = model.MenuId;
            parms[2].Value = model.OperationAccess;

            return(SqlHelper.ExecuteNonQuery(SqlHelper.AssetConnString, CommandType.Text, sb.ToString(), parms));
        }
Esempio n. 11
0
        private RoleMenuInfo ConvertToModel(DataRow dr)
        {
            RoleMenuInfo roleMenuInfo = new RoleMenuInfo();

            if(dr!=null)
            {
                if(dr["RoleId"] is DBNull ==false)
                {
                    int roleId = 0;
                    int.TryParse(dr["RoleId"].ToString(), out roleId);
                    roleMenuInfo.RoleId = roleId;
                }

                if (dr["MenuId"] is DBNull == false)
                {
                    int menuId = 0;
                    int.TryParse(dr["MenuId"].ToString(), out menuId);
                    roleMenuInfo.MenuId = menuId;
                }
            }
            return roleMenuInfo;
        }
Esempio n. 12
0
        public void InsertMenu(LoggingSessionInfo loggingSession, MenuInfo menu)
        {
            menu.ID           = this.NewGUID();
            menu.Creater.ID   = loggingSession.UserID;
            menu.Creater.Name = loggingSession.UserName;
            try
            {
                MSSqlMapper.Instance().BeginTransaction();

                //添加菜单
                if (string.IsNullOrEmpty(menu.ParentMenuID))
                {
                    MSSqlMapper.Instance().Insert("Right.Menu.InsertRootMenu", menu);
                }
                else
                {
                    MSSqlMapper.Instance().Insert("Right.Menu.InsertSubMenu", menu);
                }
                //插入操作
                this.InsertBillActionLogWithoutFlow(loggingSession, Model.Bill.BillKindInfo.CODE_MENU,
                                                    menu.ID, Model.Bill.BillActionFlagType.Create, 1, null);
                //如果菜单所属的应用系统是管理平台,则自动插入管理平台下的系统管理员角色对应的菜单
                RoleMenuInfo role_menu = new RoleMenuInfo();
                role_menu.ID        = NewGUID();
                role_menu.Menu      = menu;
                role_menu.Role.Code = RoleInfo.CODE_ADMIN;
                MSSqlMapper.Instance().Insert("Right.RoleMenu.InsertForAdminRoleOfAdminPlatform", role_menu);

                MSSqlMapper.Instance().CommitTransaction();
            }
            catch (Exception ex)
            {
                MSSqlMapper.Instance().RollBackTransaction();
                throw ex;
            }
        }
Esempio n. 13
0
 public int Update(RoleMenuInfo model)
 {
     return(dal.Update(model));
 }
Esempio n. 14
0
        /// <summary>
        /// 获取角色和菜单关联关系
        /// </summary>
        /// <returns>角色和菜单关联关系列表</returns>
        private List<RoleMenuInfo> GetRoleMenuModel()
        {
            List<RoleMenuInfo> roleMenuInfoList = new List<RoleMenuInfo>();

            MenuBll menuBll = new MenuBll();

            List<MenuInfo> menuList = menuBll.GetMenuListByParentId(0);

            if (menuList != null)
            {
                foreach (MenuInfo menu in menuList)
                {
                    CheckBoxList cbList = (CheckBoxList)trMenuList.FindControl("menuInfo_" + menu.MenuId);

                    if (cbList != null)
                    {
                        foreach (ListItem li in cbList.Items)
                        {
                            if (li.Selected == true)
                            {
                                RoleMenuInfo roleMenuInfo = new RoleMenuInfo();

                                roleMenuInfo.MenuId = Convert.ToInt32(li.Value);

                                roleMenuInfo.RoleId = RoleId;

                                roleMenuInfoList.Add(roleMenuInfo);
                            }
                        }
                    }
                }
            }
            return roleMenuInfoList;
        }
Esempio n. 15
0
 public void AddRoleMenu(RoleMenuInfo roleMenu)
 {
     RoleMenuDal dal = new RoleMenuDal();
     dal.AddRoleMenu(roleMenu);
 }
Esempio n. 16
0
        public ResResultModel SaveRoleMenu(RoleMenuFmModel model)
        {
            try
            {
                if (model == null)
                {
                    return(ResResult.Response(false, MC.Request_Params_InvalidError, ""));
                }
                if (string.IsNullOrWhiteSpace(model.MenuItemJson))
                {
                    return(ResResult.Response(false, MC.Request_Params_InvalidError, ""));
                }
                model.MenuItemJson = HttpUtility.UrlDecode(model.MenuItemJson);
                if (string.IsNullOrWhiteSpace(model.RoleName) && string.IsNullOrWhiteSpace(model.UserName))
                {
                    return(ResResult.Response(false, MC.Request_Params_InvalidError, ""));
                }
                List <RoleMenuFmInfo> list = JsonConvert.DeserializeObject <List <RoleMenuFmInfo> >(model.MenuItemJson);
                string   roleId            = "";
                string   userId            = "";
                var      isRole            = !string.IsNullOrWhiteSpace(model.RoleName);
                RoleMenu roleMenuBll       = null;
                UserMenu userMenuBll       = null;
                if (isRole)
                {
                    roleMenuBll = new RoleMenu();
                    var roleBll   = new Role();
                    var roleModel = roleBll.GetModel(model.RoleName);
                    if (roleModel == null)
                    {
                        return(ResResult.Response(false, MC.GetString(MC.Request_NotExist, "角色'" + model.RoleName + "'对应数据"), ""));
                    }
                    roleId = roleModel.RoleId.ToString();
                }
                else
                {
                    userMenuBll = new UserMenu();
                    userId      = Membership.GetUser(model.UserName).ProviderUserKey.ToString();
                }
                var menuBll = new Menus();
                foreach (var item in list)
                {
                    var menuModel = menuBll.GetModel(Guid.Parse(item.MenuId.ToString()));
                    menuModel.AllowRoles = menuModel.AllowRoles.Replace("*", "");
                    var isChanged       = false;
                    var isAccessChanged = false;
                    var isInsert        = false;
                    var apaItems        = new List <string>();

                    if (isRole)
                    {
                        var roleMenuModel = roleMenuBll.GetModel(Guid.Parse(roleId), Guid.Parse(item.MenuId.ToString()));
                        if (roleMenuModel == null)
                        {
                            isInsert             = true;
                            roleMenuModel        = new RoleMenuInfo();
                            roleMenuModel.RoleId = Guid.Parse(roleId);
                            roleMenuModel.MenuId = Guid.Parse(item.MenuId.ToString());
                        }
                        if (!string.IsNullOrEmpty(roleMenuModel.OperationAccess))
                        {
                            apaItems = roleMenuModel.OperationAccess.Split(',').ToList();
                        }

                        #region 允许角色

                        if (item.IsView)
                        {
                            if (!menuModel.AllowRoles.Contains(roleId))
                            {
                                var allowRoles = menuModel.AllowRoles.Split(',').ToList();
                                allowRoles.Add(roleId);
                                menuModel.AllowRoles = string.Join(",", allowRoles.ToArray()).Trim(',');
                                isChanged            = true;
                            }
                        }
                        else
                        {
                            if (menuModel.AllowRoles.Contains(roleId))
                            {
                                var allowRoles = menuModel.AllowRoles.Split(',').ToList();
                                allowRoles.Remove(roleId);
                                if (allowRoles.Count > 0)
                                {
                                    menuModel.AllowRoles = string.Join(",", allowRoles.ToArray()).Trim(',');
                                }
                                else
                                {
                                    menuModel.AllowRoles = "";
                                }
                                isChanged = true;
                            }
                        }

                        #endregion

                        #region 角色其它权限

                        if (item.IsAdd)
                        {
                            if (!apaItems.Contains(((int)EnumData.EnumOperationAccess.新增).ToString()))
                            {
                                apaItems.Add(((int)EnumData.EnumOperationAccess.新增).ToString());
                                roleMenuModel.OperationAccess = string.Join(",", apaItems.ToArray()).Trim(',');
                                isAccessChanged = true;
                            }
                        }
                        else
                        {
                            if (apaItems.Contains(((int)EnumData.EnumOperationAccess.新增).ToString()))
                            {
                                apaItems.Remove(((int)EnumData.EnumOperationAccess.新增).ToString());
                                isAccessChanged = true;
                                if (apaItems.Count > 0)
                                {
                                    roleMenuModel.OperationAccess = string.Join(",", apaItems.ToArray()).Trim(',');
                                }
                                else
                                {
                                    roleMenuModel.OperationAccess = "";
                                }
                            }
                        }
                        if (item.IsDelete)
                        {
                            if (!apaItems.Contains(((int)EnumData.EnumOperationAccess.除).ToString()))
                            {
                                apaItems.Add(((int)EnumData.EnumOperationAccess.除).ToString());
                                roleMenuModel.OperationAccess = string.Join(",", apaItems.ToArray()).Trim(',');
                                isAccessChanged = true;
                            }
                        }
                        else
                        {
                            if (apaItems.Contains(((int)EnumData.EnumOperationAccess.除).ToString()))
                            {
                                apaItems.Remove(((int)EnumData.EnumOperationAccess.除).ToString());
                                isAccessChanged = true;
                                if (apaItems.Count > 0)
                                {
                                    roleMenuModel.OperationAccess = string.Join(",", apaItems.ToArray()).Trim(',');
                                }
                                else
                                {
                                    roleMenuModel.OperationAccess = "";
                                }
                            }
                        }
                        if (item.IsEdit)
                        {
                            if (!apaItems.Contains(((int)EnumData.EnumOperationAccess.编辑).ToString()))
                            {
                                apaItems.Add(((int)EnumData.EnumOperationAccess.编辑).ToString());
                                roleMenuModel.OperationAccess = string.Join(",", apaItems.ToArray()).Trim(',');
                                isAccessChanged = true;
                            }
                        }
                        else
                        {
                            if (apaItems.Contains(((int)EnumData.EnumOperationAccess.编辑).ToString()))
                            {
                                apaItems.Remove(((int)EnumData.EnumOperationAccess.编辑).ToString());
                                isAccessChanged = true;
                                if (apaItems.Count > 0)
                                {
                                    roleMenuModel.OperationAccess = string.Join(",", apaItems.ToArray()).Trim(',');
                                }
                                else
                                {
                                    roleMenuModel.OperationAccess = "";
                                }
                            }
                        }

                        #endregion

                        if (isAccessChanged)
                        {
                            if (isInsert)
                            {
                                roleMenuBll.Insert(roleMenuModel);
                            }
                            else
                            {
                                roleMenuBll.Update(roleMenuModel);
                            }
                        }
                    }
                    else
                    {
                        var userMenuInfo = userMenuBll.GetModel(Guid.Parse(userId), Guid.Parse(item.MenuId.ToString()));
                        if (userMenuInfo == null)
                        {
                            isInsert            = true;
                            userMenuInfo        = new UserMenuInfo();
                            userMenuInfo.UserId = Guid.Parse(userId);
                            userMenuInfo.MenuId = Guid.Parse(item.MenuId.ToString());
                        }
                        if (!string.IsNullOrEmpty(userMenuInfo.OperationAccess))
                        {
                            apaItems = userMenuInfo.OperationAccess.Split(',').ToList();
                        }

                        #region 拒绝用户

                        if (item.IsView)
                        {
                            if (!menuModel.DenyUsers.Contains(userId))
                            {
                                var denyUsers = menuModel.DenyUsers.Split(',').ToList();
                                denyUsers.Add(userId);
                                menuModel.DenyUsers = string.Join(",", denyUsers.ToArray()).Trim(',');
                                isChanged           = true;
                            }
                        }
                        else
                        {
                            if (menuModel.DenyUsers.Contains(userId))
                            {
                                var denyUsers = menuModel.DenyUsers.Split(',').ToList();
                                denyUsers.Remove(userId);
                                if (denyUsers.Count > 0)
                                {
                                    menuModel.DenyUsers = string.Join(",", denyUsers.ToArray()).Trim(',');
                                }
                                else
                                {
                                    menuModel.DenyUsers = "";
                                }
                                isChanged = true;
                            }
                        }

                        #endregion

                        #region 拒绝用户其它权限

                        if (item.IsAdd)
                        {
                            if (!apaItems.Contains(((int)EnumData.EnumOperationAccess.新增).ToString()))
                            {
                                apaItems.Add(((int)EnumData.EnumOperationAccess.新增).ToString());
                                userMenuInfo.OperationAccess = string.Join(",", apaItems.ToArray()).Trim(',');
                                isAccessChanged = true;
                            }
                        }
                        else
                        {
                            if (apaItems.Contains(((int)EnumData.EnumOperationAccess.新增).ToString()))
                            {
                                apaItems.Remove(((int)EnumData.EnumOperationAccess.新增).ToString());
                                isAccessChanged = true;
                                if (apaItems.Count > 0)
                                {
                                    userMenuInfo.OperationAccess = string.Join(",", apaItems.ToArray()).Trim(',');
                                }
                                else
                                {
                                    userMenuInfo.OperationAccess = "";
                                }
                            }
                        }
                        if (item.IsDelete)
                        {
                            if (!apaItems.Contains(((int)EnumData.EnumOperationAccess.除).ToString()))
                            {
                                apaItems.Add(((int)EnumData.EnumOperationAccess.除).ToString());
                                userMenuInfo.OperationAccess = string.Join(",", apaItems.ToArray()).Trim(',');
                                isAccessChanged = true;
                            }
                        }
                        else
                        {
                            if (apaItems.Contains(((int)EnumData.EnumOperationAccess.除).ToString()))
                            {
                                apaItems.Remove(((int)EnumData.EnumOperationAccess.除).ToString());
                                isAccessChanged = true;
                                if (apaItems.Count > 0)
                                {
                                    userMenuInfo.OperationAccess = string.Join(",", apaItems.ToArray()).Trim(',');
                                }
                                else
                                {
                                    userMenuInfo.OperationAccess = "";
                                }
                            }
                        }
                        if (item.IsEdit)
                        {
                            if (!apaItems.Contains(((int)EnumData.EnumOperationAccess.编辑).ToString()))
                            {
                                apaItems.Add(((int)EnumData.EnumOperationAccess.编辑).ToString());
                                userMenuInfo.OperationAccess = string.Join(",", apaItems.ToArray()).Trim(',');
                                isAccessChanged = true;
                            }
                        }
                        else
                        {
                            if (apaItems.Contains(((int)EnumData.EnumOperationAccess.编辑).ToString()))
                            {
                                apaItems.Remove(((int)EnumData.EnumOperationAccess.编辑).ToString());
                                isAccessChanged = true;
                                if (apaItems.Count > 0)
                                {
                                    userMenuInfo.OperationAccess = string.Join(",", apaItems.ToArray()).Trim(',');
                                }
                                else
                                {
                                    userMenuInfo.OperationAccess = "";
                                }
                            }
                        }

                        #endregion

                        if (isAccessChanged)
                        {
                            if (isInsert)
                            {
                                userMenuBll.Insert(userMenuInfo);
                            }
                            else
                            {
                                userMenuBll.Update(userMenuInfo);
                            }
                        }
                    }

                    if (isChanged)
                    {
                        menuBll.Update(menuModel);
                    }
                }

                return(ResResult.Response(true, "", ""));
            }
            catch (Exception ex)
            {
                return(ResResult.Response(false, "异常:" + ex.Message + "", ""));
            }
        }
Esempio n. 17
0
 /// <summary>
 /// 创建角色菜单
 /// </summary>
 /// <param name="roleMenuInfo"></param>
 /// <returns></returns>
 public static int CreateRoleMenu(RoleMenuInfo roleMenuInfo)
 {
     return(BonSite.Core.BSData.RDBS.CreateRoleMenu(roleMenuInfo));
 }
Esempio n. 18
0
 /// <summary>
 /// 创建角色菜单
 /// </summary>
 /// <param name="adminMenuInfo"></param>
 /// <returns></returns>
 public static int CreateRoleMenu(RoleMenuInfo roleMenuInfo)
 {
     return(BonSite.Data.UserRole.CreateRoleMenu(roleMenuInfo));
 }
Esempio n. 19
0
 public int Insert(RoleMenuInfo model)
 {
     return(dal.Insert(model));
 }