public static Privileges GetPrivileges <TEnum>() { FieldInfo[] fields = typeof(TEnum).GetFields(); if (fields.Length == 1) { return(null); } Privileges privilege = new Privileges(); FieldInfo[] fieldInfoArray = fields; for (int i = 0; i < fieldInfoArray.Length; i++) { object[] customAttributes = fieldInfoArray[i].GetCustomAttributes(typeof(PrivilegeAttribute), true); if (customAttributes.Length != 0) { GroupActionItem groupActionItem = new GroupActionItem(); ActionItem actionItem = new ActionItem(); List <string> strs = new List <string>(); List <PrivilegeAttribute> privilegeAttributes = new List <PrivilegeAttribute>(); List <Controllers> controllers = new List <Controllers>(); object[] objArray = customAttributes; for (int j = 0; j < objArray.Length; j++) { object obj = objArray[j]; Controllers controller = new Controllers(); PrivilegeAttribute privilegeAttribute = obj as PrivilegeAttribute; controller.ControllerName = privilegeAttribute.Controller; List <string> actionNames = controller.ActionNames; string action = privilegeAttribute.Action; char[] chrArray = new char[] { ',' }; actionNames.AddRange(action.Split(chrArray)); controllers.Add(controller); privilegeAttributes.Add(privilegeAttribute); } PrivilegeAttribute privilegeAttribute1 = privilegeAttributes.FirstOrDefault((PrivilegeAttribute a) => !string.IsNullOrEmpty(a.GroupName)); groupActionItem.GroupName = privilegeAttribute1.GroupName; actionItem.PrivilegeId = privilegeAttribute1.Pid; actionItem.Name = privilegeAttribute1.Name; actionItem.Url = privilegeAttribute1.Url; actionItem.Controllers.AddRange(controllers); GroupActionItem groupActionItem1 = privilege.Privilege.FirstOrDefault((GroupActionItem a) => a.GroupName == groupActionItem.GroupName); if (groupActionItem1 != null) { groupActionItem1.Items.Add(actionItem); } else { groupActionItem.Items.Add(actionItem); privilege.Privilege.Add(groupActionItem); } } } return(privilege); }
private void OnActionSelected(GroupActionItem item) { dgAction.Rows.Clear(); if (item != null) { item.ShowParameters(dgAction); foreach (var p in players) { p.IsSelected = false; } var pos = item.Action.Positions; if (pos == null) { pos = Combination.Range(0, item.ElementNode.Element.StartFormation.Size - 1); } foreach (var p in pos) { players[item.GetGlobalPositionIndex(p)].IsSelected = true; } } dgAction.Refresh(); Draw(); }
/// <summary> /// 相当于根目录的路径 /// </summary> /// <param name="path"></param> /// <param name="Type">导航类别</param> /// <returns></returns> public static Privileges GetPrivileges <TEnum>(AdminCatalogType Type) { Type type = typeof(TEnum); FieldInfo[] fields = type.GetFields(); if (fields.Length == 1) { return(null); } Privileges p = new Privileges(); foreach (var field in fields) { var attributes = field.GetCustomAttributes(typeof(PrivilegeAttribute), true); if (attributes.Length == 0) { continue; } GroupActionItem group = new GroupActionItem(); ActionItem item = new ActionItem(); List <string> actions = new List <string>(); List <PrivilegeAttribute> attrs = new List <PrivilegeAttribute>(); List <Controllers> ctrls = new List <Controllers>(); string linkTarget = string.Empty; foreach (var attr in attributes) { Controllers ctrl = new Controllers(); var attribute = attr as PrivilegeAttribute; if (!attribute.AdminCatalogType.Equals(Type)) { continue; } ctrl.ControllerName = attribute.Controller; ctrl.ActionNames.AddRange(attribute.Action.Split(',')); ctrls.Add(ctrl); attrs.Add(attribute); linkTarget = attribute.LinkTarget; } if (attrs.Count.Equals(0)) { continue; } var groupInfo = attrs.FirstOrDefault(a => !string.IsNullOrEmpty(a.GroupName)); group.GroupName = groupInfo.GroupName; item.PrivilegeId = groupInfo.Pid; item.Name = groupInfo.Name; item.Url = groupInfo.Url; item.Type = groupInfo.AdminCatalogType; item.LinkTarget = linkTarget; item.Controllers.AddRange(ctrls); var currentGroup = p.Privilege.FirstOrDefault(a => a.GroupName == group.GroupName); if (currentGroup == null) { group.Items.Add(item); p.Privilege.Add(group); } else { currentGroup.Items.Add(item); } } return(p); }
/// <summary> /// 相当于根目录的路径 /// </summary> /// <param name="path"></param> /// <returns></returns> public static Privileges GetPrivileges <TEnum>() { Type type = typeof(TEnum); FieldInfo[] fields = type.GetFields(); if (fields.Length == 1) { return(null); } Privileges p = new Privileges(); foreach (var field in fields) { var attributes = field.GetCustomAttributes(typeof(PrivilegeAttribute), true); if (attributes.Length == 0) { continue; } GroupActionItem group = new GroupActionItem(); ActionItem item = new ActionItem(); List <string> actions = new List <string>(); List <PrivilegeAttribute> attrs = new List <PrivilegeAttribute>(); List <Controllers> ctrls = new List <Controllers>(); foreach (var attr in attributes) { Controllers ctrl = new Controllers(); var attribute = attr as PrivilegeAttribute; ctrl.ControllerName = attribute.Controller; ctrl.ActionNames.AddRange(attribute.Action.Split(',')); ctrls.Add(ctrl); attrs.Add(attribute); } var groupInfo = attrs.FirstOrDefault(a => !string.IsNullOrEmpty(a.GroupName)); group.GroupName = groupInfo.GroupName; item.PrivilegeId = groupInfo.Pid; item.Name = groupInfo.Name; item.Url = groupInfo.Url; item.Type = groupInfo.AdminCatalogType; item.Controllers.AddRange(ctrls); var currentGroup = p.Privilege.FirstOrDefault(a => a.GroupName == group.GroupName); if (currentGroup == null) { group.Items.Add(item); p.Privilege.Add(group); } else { currentGroup.Items.Add(item); } } #region 门店授权 bool isOpenStore = Application.SiteSettingApplication.GetSiteSettings() != null && Application.SiteSettingApplication.GetSiteSettings().IsOpenStore; if (!isOpenStore)//未授权则关闭门店管理菜单 { var shopManager = p.Privilege.Where(x => x.GroupName.Equals("诊所")).FirstOrDefault(); if (shopManager != null) { shopManager.Items.Remove(shopManager.Items.Where(x => x.PrivilegeId == 4008).FirstOrDefault());// 4008 = "门店管理" } } #endregion return(p); }
public static Privileges GetPrivileges <TEnum>() { Func <PrivilegeAttribute, bool> func = null; Type typeFromHandle = typeof(TEnum); FieldInfo[] fields = typeFromHandle.GetFields(); Privileges result; if (fields.Length == 1) { result = null; } else { Privileges privileges = new Privileges(); FieldInfo[] array = fields; for (int i = 0; i < array.Length; i++) { FieldInfo fieldInfo = array[i]; object[] customAttributes = fieldInfo.GetCustomAttributes(typeof(PrivilegeAttribute), true); if (customAttributes.Length != 0) { GroupActionItem group = new GroupActionItem(); ActionItem actionItem = new ActionItem(); List <string> list = new List <string>(); List <PrivilegeAttribute> list2 = new List <PrivilegeAttribute>(); List <Controllers> list3 = new List <Controllers>(); object[] array2 = customAttributes; for (int j = 0; j < array2.Length; j++) { object obj = array2[j]; Controllers controllers = new Controllers(); PrivilegeAttribute privilegeAttribute = obj as PrivilegeAttribute; controllers.ControllerName = privilegeAttribute.Controller; controllers.ActionNames.AddRange(privilegeAttribute.Action.Split(new char[] { ',' })); list3.Add(controllers); list2.Add(privilegeAttribute); } IEnumerable <PrivilegeAttribute> arg_13A_0 = list2; if (func == null) { func = ((PrivilegeAttribute a) => !string.IsNullOrEmpty(a.GroupName)); } PrivilegeAttribute privilegeAttribute2 = arg_13A_0.FirstOrDefault(func); group.GroupName = privilegeAttribute2.GroupName; actionItem.PrivilegeId = privilegeAttribute2.Pid; actionItem.Name = privilegeAttribute2.Name; actionItem.Url = privilegeAttribute2.Url; actionItem.Controllers.AddRange(list3); GroupActionItem groupActionItem = privileges.Privilege.FirstOrDefault((GroupActionItem a) => a.GroupName == group.GroupName); if (groupActionItem == null) { group.Items.Add(actionItem); privileges.Privilege.Add(group); } else { groupActionItem.Items.Add(actionItem); } } } result = privileges; } return(result); }
/// <summary> /// 相当于根目录的路径 /// </summary> /// <param name="path"></param> /// <param name="Type">导航类别</param> /// <returns></returns> public static Privileges GetPrivileges <TEnum>(AdminCatalogType Type) { var sitesetting = SiteSettingApplication.SiteSettings; Type type = typeof(TEnum); FieldInfo[] fields = type.GetFields(); if (fields.Length == 1) { return(null); } Privileges p = new Privileges(); foreach (var field in fields) { var attributes = field.GetCustomAttributes(typeof(PrivilegeAttribute), true); if (attributes.Length == 0) { continue; } GroupActionItem group = new GroupActionItem(); ActionItem item = new ActionItem(); List <string> actions = new List <string>(); List <PrivilegeAttribute> attrs = new List <PrivilegeAttribute>(); List <Controllers> ctrls = new List <Controllers>(); string linkTarget = string.Empty; foreach (var attr in attributes) { Controllers ctrl = new Controllers(); var attribute = attr as PrivilegeAttribute; if (!attribute.AdminCatalogType.Equals(Type)) { continue; } ctrl.ControllerName = attribute.Controller; ctrl.ActionNames.AddRange(attribute.Action.Split(',')); ctrls.Add(ctrl); attrs.Add(attribute); linkTarget = attribute.LinkTarget; } if (attrs.Count.Equals(0)) { continue; } var groupInfo = attrs.FirstOrDefault(a => !string.IsNullOrEmpty(a.GroupName)); if (sitesetting != null) { if (!sitesetting.IsOpenPC)//PC端未开启授权 { if (groupInfo.GroupName == "网站") { if (groupInfo.Name == "首页模板" && groupInfo.Pid == 7001) { continue; } if (groupInfo.Name == "主题设置" && groupInfo.Pid == 7004) { continue; } } if (groupInfo.GroupName == "营销") { if (groupInfo.Name == "PC端专题" && groupInfo.Pid == 9010) { continue; } } } if (!sitesetting.IsOpenH5)//H5端未开启授权 { if (groupInfo.GroupName == "微商城") { if (groupInfo.Name == "商城首页设置" && groupInfo.Pid == 10001) { continue; } if (groupInfo.Name == "底部导航栏" && groupInfo.Pid == 10007) { continue; } if (groupInfo.Name == "微店管理" && groupInfo.Pid == 10002) { continue; } if (groupInfo.Name == "菜单设置" && groupInfo.Pid == 10003) { continue; } if (groupInfo.Name == "公众号设置" && groupInfo.Pid == 10004) { continue; } if (groupInfo.Name == "素材管理" && groupInfo.Pid == 10005) { continue; } } if (groupInfo.GroupName == "分销" && !sitesetting.IsOpenMallSmallProg) { if (groupInfo.Name == "分销设置" && groupInfo.Pid == 7101) { continue; } if (groupInfo.Name == "分销商品" && groupInfo.Pid == 7102) { continue; } if (groupInfo.Name == "销售员管理" && groupInfo.Pid == 7103) { continue; } if (groupInfo.Name == "销售员等级" && groupInfo.Pid == 7104) { continue; } if (groupInfo.Name == "分销业绩" && groupInfo.Pid == 7105) { continue; } if (groupInfo.Name == "佣金提现管理" && groupInfo.Pid == 7106) { continue; } } if (groupInfo.GroupName == "营销") { if (groupInfo.Name == "签到" && groupInfo.Pid == 9008) { continue; } if (groupInfo.Name == "吸粉红包" && groupInfo.Pid == 9004) { continue; } } } if (!sitesetting.IsOpenApp) { if (groupInfo.GroupName == "APP") { if (groupInfo.Name == "APP商品配置" && groupInfo.Pid == 12003) { continue; } if (groupInfo.Name == "APP首页配置" && groupInfo.Pid == 12001) { continue; } if (groupInfo.Name == "关于我们" && groupInfo.Pid == 12002) { continue; } if (groupInfo.Name == "APP引导页" && groupInfo.Pid == 12004) { continue; } } if (groupInfo.GroupName == "营销") { if (groupInfo.Name == "APP积分商城" && groupInfo.Pid == 9016) { continue; } } } if (!sitesetting.IsOpenMallSmallProg) { if (groupInfo.GroupName == "小程序") { if (groupInfo.Name == "首页配置" && groupInfo.Pid == 13001) { continue; } if (groupInfo.Name == "商品配置" && groupInfo.Pid == 13002) { continue; } if (groupInfo.Name == "消息配置" && groupInfo.Pid == 13003) { continue; } } } //if (!sitesetting.IsOpenMultiStoreSmallProg) //{ // //if (groupInfo.GroupName == "小程序") // //{ // // if (groupInfo.Name == "消息配置" && groupInfo.Pid == 13003) // // continue; // //} // if (groupInfo.GroupName == "店铺") // { // if (groupInfo.Name == "O2O小程序消息" && groupInfo.Pid == 5008) // continue; // } //} if (!sitesetting.IsOpenStore) { if (groupInfo.GroupName == "店铺") { if (groupInfo.Name == "门店管理" && groupInfo.Pid == 5006) { continue; } if (groupInfo.Name == "周边门店设置" && groupInfo.Pid == 5007) { continue; } } } if (!(sitesetting.IsOpenPC || sitesetting.IsOpenH5 || sitesetting.IsOpenApp)) { if (groupInfo.GroupName == "营销") { if (groupInfo.Name == "新人礼包" && groupInfo.Pid == 9013)//新人礼包 { continue; } } } if (!(sitesetting.IsOpenH5 || sitesetting.IsOpenApp)) { if (groupInfo.GroupName == "营销") { if (groupInfo.Name == "刮刮卡管理" && groupInfo.Pid == 9012) { continue; } if (groupInfo.Name == "大转盘管理" && groupInfo.Pid == 9014) { continue; } if (groupInfo.Name == "移动端专题" && groupInfo.Pid == 9009) { continue; } } } if (!(sitesetting.IsOpenPC || sitesetting.IsOpenApp)) { if (groupInfo.Name == "礼品管理" && groupInfo.Pid == 9006) { continue; } } } group.GroupName = groupInfo.GroupName; item.PrivilegeId = groupInfo.Pid; item.Name = groupInfo.Name; item.Url = groupInfo.Url; item.Type = groupInfo.AdminCatalogType; item.LinkTarget = linkTarget; item.Controllers.AddRange(ctrls); var currentGroup = p.Privilege.FirstOrDefault(a => a.GroupName == group.GroupName); if (currentGroup == null) { group.Items.Add(item); p.Privilege.Add(group); } else { currentGroup.Items.Add(item); } } return(p); }
/// <summary> /// 相当于根目录的路径 /// </summary> /// <param name="path"></param> /// <returns></returns> public static Privileges GetPrivileges <TEnum>() { var sitesetting = SiteSettingApplication.SiteSettings; Type type = typeof(TEnum); FieldInfo[] fields = type.GetFields(); if (fields.Length == 1) { return(null); } Privileges p = new Privileges(); foreach (var field in fields) { var attributes = field.GetCustomAttributes(typeof(PrivilegeAttribute), true); if (attributes.Length == 0) { continue; } GroupActionItem group = new GroupActionItem(); ActionItem item = new ActionItem(); List <string> actions = new List <string>(); List <PrivilegeAttribute> attrs = new List <PrivilegeAttribute>(); List <Controllers> ctrls = new List <Controllers>(); foreach (var attr in attributes) { Controllers ctrl = new Controllers(); var attribute = attr as PrivilegeAttribute; ctrl.ControllerName = attribute.Controller; ctrl.ActionNames.AddRange(attribute.Action.Split(',')); ctrls.Add(ctrl); attrs.Add(attribute); } var groupInfo = attrs.FirstOrDefault(a => !string.IsNullOrEmpty(a.GroupName)); if (sitesetting != null) { if (!sitesetting.IsOpenPC) { if (groupInfo.GroupName == "店铺") { if (groupInfo.Name == "页面设置" && groupInfo.Pid == 4001) { continue; } } } if (!sitesetting.IsOpenH5) { if (groupInfo.GroupName == "分销" && !sitesetting.IsOpenMallSmallProg) { if (groupInfo.Name == "分销商品管理" && groupInfo.Pid == 10001) { continue; } if (groupInfo.Name == "分销业绩" && groupInfo.Pid == 10002) { continue; } } if (groupInfo.GroupName == "微信") { if (groupInfo.Name == "微信配置" && groupInfo.Pid == 8002) { continue; } if (groupInfo.Name == "微信菜单" && groupInfo.Pid == 8003) { continue; } //if (groupInfo.Name == "摇一摇周边页面" && groupInfo.Pid == 8006) // continue; } if (groupInfo.GroupName == "微店") { //if (groupInfo.Name == "我的微店" && groupInfo.Pid == 9001) //continue; if (groupInfo.Name == "微信端配置" && groupInfo.Pid == 9002) { continue; } } } if (!sitesetting.IsOpenApp) { if (groupInfo.Name == "App端配置" && groupInfo.Pid == 9003) { continue; } } if (!(sitesetting.IsOpenMallSmallProg || sitesetting.IsOpenStore)) { if (groupInfo.GroupName == "店铺") { if (groupInfo.Name == "门店管理" && groupInfo.Pid == 4008) { continue; } } } if (!(sitesetting.IsOpenPC || sitesetting.IsOpenH5 || sitesetting.IsOpenApp || sitesetting.IsOpenMallSmallProg)) { if (groupInfo.GroupName == "营销") { if (groupInfo.Name == "限时购" && groupInfo.Pid == 7001) { continue; } } } if (!(sitesetting.IsOpenPC || sitesetting.IsOpenH5 || sitesetting.IsOpenApp || sitesetting.IsOpenMallSmallProg)) { if (groupInfo.GroupName == "营销") { if (groupInfo.Name == "优惠券" && groupInfo.Pid == 7002) { continue; } } if (groupInfo.GroupName == "营销") { if (groupInfo.Name == "满额减" && groupInfo.Pid == 7008) { continue; } } } if (!(sitesetting.IsOpenPC || sitesetting.IsOpenH5)) { if (groupInfo.GroupName == "营销") { if (groupInfo.Name == "组合购" && groupInfo.Pid == 7003) { continue; } } } if (!(sitesetting.IsOpenH5 || sitesetting.IsOpenApp)) { if (groupInfo.GroupName == "营销") { if (groupInfo.Name == "代金红包" && groupInfo.Pid == 7006) { continue; } } if (groupInfo.GroupName == "营销") { if (groupInfo.Name == "拼团" && groupInfo.Pid == 7007) { continue; } } } if (!(sitesetting.IsOpenH5 || sitesetting.IsOpenApp)) { if (groupInfo.GroupName == "微店") { if (groupInfo.Name == "我的微店" && groupInfo.Pid == 9001) { continue; } } } } group.GroupName = groupInfo.GroupName; item.PrivilegeId = groupInfo.Pid; item.Name = groupInfo.Name; item.Url = groupInfo.Url; item.Type = groupInfo.AdminCatalogType; item.Controllers.AddRange(ctrls); var currentGroup = p.Privilege.FirstOrDefault(a => a.GroupName == group.GroupName); if (currentGroup == null) { group.Items.Add(item); p.Privilege.Add(group); } else { currentGroup.Items.Add(item); } } #region 门店授权 bool isOpenStore = Application.SiteSettingApplication.SiteSettings != null && Application.SiteSettingApplication.SiteSettings.IsOpenStore; if (!isOpenStore)//未授权则关闭门店管理菜单 { var shopManager = p.Privilege.Where(x => x.GroupName.Equals("店铺")).FirstOrDefault(); if (shopManager != null) { shopManager.Items.Remove(shopManager.Items.Where(x => x.PrivilegeId == 4008).FirstOrDefault());// 4008 = "门店管理" } } #endregion return(p); }
/// <summary> /// 相当于根目录的路径 /// </summary> /// <param name="path"></param> /// <returns></returns> public static Privileges GetPrivileges <TEnum>() { SiteSettingsInfo sitesetting = SiteSettingApplication.GetSiteSettings(); Type type = typeof(TEnum); FieldInfo[] fields = type.GetFields(); if (fields.Length == 1) { return(null); } Privileges p = new Privileges(); foreach (var field in fields) { var attributes = field.GetCustomAttributes(typeof(PrivilegeAttribute), true); if (attributes.Length == 0) { continue; } GroupActionItem group = new GroupActionItem(); ActionItem item = new ActionItem(); List <string> actions = new List <string>(); List <PrivilegeAttribute> attrs = new List <PrivilegeAttribute>(); List <Controllers> ctrls = new List <Controllers>(); foreach (var attr in attributes) { Controllers ctrl = new Controllers(); var attribute = attr as PrivilegeAttribute; ctrl.ControllerName = attribute.Controller; ctrl.ActionNames.AddRange(attribute.Action.Split(',')); ctrls.Add(ctrl); attrs.Add(attribute); } var groupInfo = attrs.FirstOrDefault(a => !string.IsNullOrEmpty(a.GroupName)); if (sitesetting != null) { } group.Name = groupInfo.GroupName; item.PrivilegeId = groupInfo.Pid; item.Name = groupInfo.Name; item.Path = groupInfo.Url; item.Type = groupInfo.AdminCatalogType; item.Component = groupInfo.Component; item.Controllers.AddRange(ctrls); var currentGroup = p.Privilege.FirstOrDefault(a => a.Name == group.Name); if (currentGroup == null) { group.Children.Add(item); p.Privilege.Add(group); } else { currentGroup.Children.Add(item); } } return(p); }