/// <summary> /// 设置用户的权限 /// </summary> /// <param name="user"></param> /// <param name="sysId"></param> private void SetUserRights(UserContext user, int sysId) { UserTypeOptions userType = user.LoginUser.AccountType; bool isSuperAdmin = userType == UserTypeOptions.SuperAdmin; bool isWhiteUser = user.LoginUser.IsWhiteUser; if (user.AvailableRights == null) { List <Right> availableRights = DABasicInfoHelper.GetRights(sysId, -1, CacheTimeOption.Short); List <int> rights = DARightsHelper.GetUserRights(sysId, user.LoginUser.ID, user.LoginUser.AccountType).Select(a => a.RightID).ToList(); user.AvailableRights = availableRights.Where(a => (isSuperAdmin || internalRequest || !a.OnlyInternal || isWhiteUser) && rights.Contains(a.ID)).ToList(); } //只有report才有这些权限 if (sysId == DACommonHelper.REPORT_SYS_ID) { if (user.AvailableSofts == null) { //从Report平台获得的产品权限 List <Soft> availableSofts = GetAvailableSofts(); List <int> rights = DARightsHelper.GetUserSoftRights(user.LoginUser.ID).Select(a => a.RightID).ToList(); user.AvailableSofts = availableSofts.Where(a => a.Status == StatusOptions.Valid && (isSuperAdmin || internalRequest || !a.OnlyInternal || isWhiteUser) && rights.Contains(a.ID)).ToList(); } if (user.AvailableProjectSources == null) { List <ProjectSource> availableProjectSources = GetAvailableProjectSources(); List <int> rights = DARightsHelper.GetUserProjectSourceRights(user.LoginUser.ID).Select(a => a.RightID).ToList(); user.AvailableProjectSources = availableProjectSources.Where(a => (isSuperAdmin || internalRequest || !a.OnlyInternal || isWhiteUser) && rights.Contains(a.ProjectSourceID)).ToList(); } if (internalRequest && user.AvailableResIds == null) { user.AvailableResIds = DARightsHelper.GetUserResRights(user.LoginUser.ID).Select(a => a.RightID).ToList(); } } else { if (user.AvailableSofts == null) { user.AvailableSofts = new List <Soft>(); } if (user.AvailableProjectSources == null) { user.AvailableProjectSources = new List <ProjectSource>(); } if (internalRequest && user.AvailableResIds == null) { user.AvailableResIds = new List <int>(); } } if (user.AdminSystems == null) { List <SystemInfo> systems = DABasicInfoHelper.GetSystems(CacheTimeOption.Short); List <int> sysIds = DARightsHelper.GetAdminSystemIds(user.LoginUser.ID); user.AdminSystems = systems.Where(a => sysIds.Contains(a.ID)).ToList(); } }
/// <summary> /// 根据账号或姓名模糊查找,并分页返回用户信息列表 /// </summary> /// <param name="sysId"></param> /// <param name="status"></param> /// <param name="accountType"></param> /// <param name="keyword"></param> /// <param name="onlyWhiteUser"></param> /// <param name="pageIndex"></param> /// <param name="pageSize"></param> /// <param name="recordCount"></param> /// <returns></returns> public List <User> GetUsers(int sysId, StatusOptions status, UserTypeOptions accountType, string keyword, bool onlyWhiteUser, int pageIndex, int pageSize, ref int recordCount) { //权限判断 loginService.HaveAdminRight(sysId, true); //if (loginService.LoginUser.AccountType == UserTypeOptions.ProductAdmin) //{ // return DABasicInfoHelper.GetUsers(sysId, status, accountType, keyword, onlyWhiteUser, pageIndex, pageSize, ref recordCount); //} return(DABasicInfoHelper.GetUsers(sysId, status, accountType, keyword, onlyWhiteUser, pageIndex, pageSize, ref recordCount)); }
/// <summary> /// 获取用户权限(仅用于权限分配) /// </summary> /// <param name="sysId"></param> /// <param name="userId"></param> /// <param name="accountType"></param> /// <returns></returns> public static List <RightItem> GetUserRights(int sysId, int userId, UserTypeOptions accountType) { string cmdText; //渠道相关的用户只能限于角色(系统定义的)关联的权限 if (accountType == UserTypeOptions.Channel || accountType == UserTypeOptions.ChannelPartner) { cmdText = string.Format(@"select distinct C.RightID,1 FromRole from R_UserRoles A inner join R_Roles B on A.RoleID=B.ID and B.RoleType={0} and A.`UserID`=?UserID and B.SysID=?SysID inner join R_RoleRights C on B.ID=C.RoleID", accountType == UserTypeOptions.Channel ? (int)RoleTypeOptions.Channel : (int)RoleTypeOptions.ChannelPartner); } else { cmdText = @"select RightID,if(sum(FromRole)>0,1,0) FromRole from ( select RightID,0 FromRole from R_UserRights A inner join R_Rights B on A.RightID=B.ID and B.SysID=?SysID and A.`UserID`=?UserID union all select RightID,1 FromRole from R_UserRoles A inner join R_Roles B on A.RoleID=B.ID and B.SysID=?SysID and A.`UserID`=?UserID inner join R_RoleRights C on A.RoleID=C.RoleID) A group by RightID"; } MySqlParameter[] parms = new MySqlParameter[] { new MySqlParameter("?SysID", sysId), new MySqlParameter("?UserID", userId) }; List <RightItem> items = new List <RightItem>(); using (MySqlDataReader reader = MySqlHelper.ExecuteReader(DACommonHelper.ConnectionString, cmdText, parms)) { while (reader.Read()) { RightItem r = new RightItem { RightID = Convert.ToInt32(reader["RightID"]), FromRole = Convert.ToInt32(reader["FromRole"]) == 1 }; items.Add(r); } } return(items); }
/// <summary> /// 获取账号类型说明 /// </summary> /// <param name="userType"></param> /// <returns></returns> public static string GetUserTypeDescipt(UserTypeOptions userType) { string accType; switch (userType) { case UserTypeOptions.Admin: accType = "管理员"; break; case UserTypeOptions.Channel: accType = "渠道内部用户"; break; case UserTypeOptions.ChannelPartner: accType = "渠道合作方"; break; case UserTypeOptions.General: accType = "普通用户"; break; case UserTypeOptions.ProductAdmin: accType = "产品管理员"; break; case UserTypeOptions.SuperAdmin: accType = "超级管理员"; break; default: accType = string.Empty; break; } return(accType); }
protected void Page_Load(object sender, EventArgs e) { curUser = loginService.LoginUser; label1.Text = "欢迎您:" + (string.IsNullOrEmpty(curUser.TrueName) ? curUser.Account : curUser.TrueName); //渠道内部用户及渠道合作方不能查看"关于我们"这个页面 if (curUser.AccountType == UserTypeOptions.Channel || curUser.AccountType == UserTypeOptions.ChannelPartner) { btnaboatus.Visible = false; aboatusurl = ""; } if (!X.IsAjaxRequest) { List <Soft> softs; try { softs = loginService.AvailableSofts; } catch (NotRightException) { softs = new List <Soft>(); } var topRights = loginService.AvailableRights.Where(a => a.RightLevel == 0); for (int i = 0; i < topRights.Count(); i++) { Right topRight = topRights.ElementAt(i); MenuPanel mp = new MenuPanel(); mp.ID = "mp" + topRight.ID.ToString(); mp.Title = topRight.Name; mp.Icon = Icon.BulletRight; mp.Width = 200; mp.AutoScroll = true; var subRights = loginService.AvailableRights.Where(a => a.ParentID == topRight.ID); for (int j = 0; j < subRights.Count(); j++) { Right subRight = subRights.ElementAt(j); //如果是装机商带来量的报表,则必须要求有助手的权限 if (subRight.PageUrl.ToLower() == "reports/newuserbymac.aspx") { int[] array = { 68, 69, -9, 58, 9, 57, 60, 61, 71 }; if (!softs.Exists(a => array.Contains(a.ID))) { continue; } } Ext.Net.MenuItem mi = new Ext.Net.MenuItem(); mi.ID = subRight.ID.ToString(); mi.Text = subRight.Name; mi.Icon = Icon.BulletStart; if (string.IsNullOrEmpty(url)) { url = subRight.PageUrl; title = subRight.Name; id = subRight.ID.ToString(); menupanleid = mp.ID; } //唯一标识、访问链接地址、显示名称 mi.Listeners.Click.Handler += string.Format("addTab(#{{TabPanel1}},'idClt{0}','{1}','{2}',this,{3});", subRight.ID, subRight.PageUrl, subRight.Name, mp.ID); mp.Menu.Items.Add(mi); } Panel1.Items.Add(mp); } #region 系统管理 UserTypeOptions accountType = loginService.LoginUser.AccountType; List <SystemInfo> adminSystems = loginService.AdminSystems; if ((accountType == UserTypeOptions.SuperAdmin || accountType == UserTypeOptions.Admin || accountType == UserTypeOptions.ProductAdmin) && adminSystems.Count > 0) { MenuPanel mp = new MenuPanel(); mp.ID = "SysManage"; mp.Title = "系统管理"; mp.Icon = Icon.BulletRight; mp.Width = 200; mp.AutoScroll = true; //用户管理 Ext.Net.MenuItem mi = new Ext.Net.MenuItem(); mi.ID = "UserManage"; mi.Text = "用户管理"; mi.Icon = Icon.BulletStart; mi.Listeners.Click.Handler += string.Format("addTab(#{{TabPanel1}},'idClt{0}','UserRights/UserManage.aspx','{1}',this,{2});", mi.ID, mi.Text, mp.ID); mp.Menu.Items.Add(mi); if (accountType == UserTypeOptions.SuperAdmin) { //系统管理 mi = new Ext.Net.MenuItem(); mi.ID = "SystemManage"; mi.Text = "系统管理"; mi.Icon = Icon.BulletStart; mi.Listeners.Click.Handler += string.Format("addTab(#{{TabPanel1}},'idClt{0}','UserRights/SystemManage.aspx','{1}',this,{2});", mi.ID, mi.Text, mp.ID); mp.Menu.Items.Add(mi); } if (accountType != UserTypeOptions.ProductAdmin) { //角色管理 mi = new Ext.Net.MenuItem(); mi.ID = "RoleManage"; mi.Text = "角色管理"; mi.Icon = Icon.BulletStart; mi.Listeners.Click.Handler += string.Format("addTab(#{{TabPanel1}},'idClt{0}','UserRights/RoleManage.aspx','{1}',this,{2});", mi.ID, mi.Text, mp.ID); mp.Menu.Items.Add(mi); } if (accountType == UserTypeOptions.SuperAdmin || accountType == UserTypeOptions.Admin) { //权限管理 mi = new Ext.Net.MenuItem(); mi.ID = "RightManage"; mi.Text = "权限管理"; mi.Icon = Icon.BulletStart; mi.Listeners.Click.Handler += string.Format("addTab(#{{TabPanel1}},'idClt{0}','UserRights/RightManage.aspx','{1}',this,{2});", mi.ID, mi.Text, mp.ID); mp.Menu.Items.Add(mi); //产品管理 mi = new Ext.Net.MenuItem(); mi.ID = "SoftList"; mi.Text = "产品管理"; mi.Icon = Icon.BulletStart; mi.Listeners.Click.Handler += string.Format("addTab(#{{TabPanel1}},'idClt{0}','UserRights/SoftList.aspx','{1}',this,{2});", mi.ID, mi.Text, mp.ID); mp.Menu.Items.Add(mi); Panel1.Items.Add(mp); //项目来源管理 mi = new Ext.Net.MenuItem(); mi.ID = "ProjectSourceManage"; mi.Text = "项目来源管理"; mi.Icon = Icon.BulletStart; mi.Listeners.Click.Handler += string.Format("addTab(#{{TabPanel1}},'idClt{0}','UserRights/ProjectSourceManage.aspx','{1}',this,{2});", mi.ID, mi.Text, mp.ID); mp.Menu.Items.Add(mi); } //REPORT才有这个权限 if (adminSystems.Exists(a => a.ID == 1)) { //渠道权限管理 mi = new Ext.Net.MenuItem(); mi.ID = "ChannelRightManager"; mi.Text = "渠道权限管理"; mi.Icon = Icon.BulletStart; mi.Listeners.Click.Handler += string.Format("addTab(#{{TabPanel1}},'idClt{0}','UserRights/ChannelRightManager.aspx','{1}',this,{2});", mi.ID, mi.Text, mp.ID); mp.Menu.Items.Add(mi); } if (accountType != UserTypeOptions.ProductAdmin) { //操作日志 mi = new Ext.Net.MenuItem(); mi.ID = "Log"; mi.Text = "操作日志"; mi.Icon = Icon.BulletStart; mi.Listeners.Click.Handler += string.Format("addTab(#{{TabPanel1}},'idClt{0}','UserRights/Log.aspx','{1}',this,{2});", mi.ID, mi.Text, mp.ID); mp.Menu.Items.Add(mi); } //操作日志 mi = new Ext.Net.MenuItem(); mi.ID = "RightSysDescript"; mi.Text = "权限说明"; mi.Icon = Icon.BulletStart; mi.Listeners.Click.Handler += string.Format("addTab(#{{TabPanel1}},'idClt{0}','UserRights/RightSysDescript.aspx','{1}',this,{2});", mi.ID, mi.Text, mp.ID); mp.Menu.Items.Add(mi); Panel1.Items.Add(mp); } #endregion } }
/// <summary> /// 分页获取用户信息列表 /// </summary> /// <param name="sysId"></param> /// <param name="status"></param> /// <param name="accountType"></param> /// <param name="onlyWhiteUser"></param> /// <param name="pageIndex"></param> /// <param name="pageSize"></param> /// <param name="recordCount"></param> /// <returns></returns> public List <User> GetUsers(int sysId, StatusOptions status, UserTypeOptions accountType, bool onlyWhiteUser, int pageIndex, int pageSize, ref int recordCount) { return(GetUsers(sysId, status, accountType, string.Empty, onlyWhiteUser, pageIndex, pageSize, ref recordCount)); }
public IMembershipRepository CreateMembershipRepository(UserTypeOptions userType) { throw new NotImplementedException(); }