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); }
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); }
public ActionResult GetRoleMenus(int roleid) { var service = Container.GetService <IRoleMenuService>(); var list = service.GetVModels(rm => rm.RoleId == roleid).ToList(); return(Json(RoleMenuInfo.ConvertToRoleMenuInfos(list))); }
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); }
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); }
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(); } }
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); }
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)); }
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)); }
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; }
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; } }
public int Update(RoleMenuInfo model) { return(dal.Update(model)); }
/// <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; }
public void AddRoleMenu(RoleMenuInfo roleMenu) { RoleMenuDal dal = new RoleMenuDal(); dal.AddRoleMenu(roleMenu); }
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 + "", "")); } }
/// <summary> /// 创建角色菜单 /// </summary> /// <param name="roleMenuInfo"></param> /// <returns></returns> public static int CreateRoleMenu(RoleMenuInfo roleMenuInfo) { return(BonSite.Core.BSData.RDBS.CreateRoleMenu(roleMenuInfo)); }
/// <summary> /// 创建角色菜单 /// </summary> /// <param name="adminMenuInfo"></param> /// <returns></returns> public static int CreateRoleMenu(RoleMenuInfo roleMenuInfo) { return(BonSite.Data.UserRole.CreateRoleMenu(roleMenuInfo)); }
public int Insert(RoleMenuInfo model) { return(dal.Insert(model)); }