public int Update(SysPermission model) { using (var db = GetInstance()) { model.Layer = model.ParentId == "1" ? 0 : Get(model.ParentId).Layer += 1; model.IsEnable = model.IsEnable == null ? "0" : "1"; //model.IsEdit = model.IsEdit == null ? "0" : "1"; //model.IsPublic = model.IsPublic == null ? "0" : "1"; model.ModifyUser = OperatorProvider.Instance.Current.Account; model.ModifyTime = DateTime.Now; return(db.Updateable <SysPermission>(model).UpdateColumns(it => new { it.ParentId, it.Layer, it.EnCode, it.Name, it.JsEvent, it.Icon, it.Url, it.Remark, it.Type, it.SortCode, it.IsEnable, it.ModifyUser, it.ModifyTime, }).ExecuteCommand()); } }
/// <summary> /// 权限页面 /// </summary> /// <param name="user"></param> /// <param name="entity"></param> /// <param name=""></param> /// <returns></returns> public ActionResult SysPermissionForm(SysUser user, SysPermission entity = null) { //所属分类数据 List <SysPermission> modulePermissions = new List <SysPermission>(); modulePermissions.Add(new SysPermission() { name = "根", id = 0 }); modulePermissions.AddRange(GetModuleSysPermission()); ViewBag.module = modulePermissions; if (Request.IsAjaxRequest()) { StateCode state = ServiceIoc.Get <SysPermissionService>().Save(user.id, entity); AppGlobal.Instance.Initial(); return(Json(GetResult(state))); } else { entity = ServiceIoc.Get <SysPermissionService>().GetById(bid); if (entity != null) { ViewBag.entity = JsonConvert.SerializeObject(entity); } } return(View()); }
private List <SysPermission> GetBasePermissionList(Type t, List <SysPermission> list) { if (t.Name != "Object") { System.Reflection.FieldInfo[] properties = t.GetFields(); foreach (System.Reflection.FieldInfo property in properties) { string pId = "0"; object[] typeAttributes = property.GetCustomAttributes(false); foreach (PermissionCodeAttribute attribute in typeAttributes) { pId = attribute.PId; } object id = property.GetValue(null); string name = property.Name; SysPermission model = new SysPermission(); model.Id = id.ToString(); model.Name = name; model.PId = pId; list.Add(model); } list = GetBasePermissionList(t.BaseType, list); } return(list); }
//删除权限 public JsonResult DeleteRight(int id) { SysPermission deleteRight = AllPermissions.First(p => p.PermissionId == id); if (deleteRight.ParentId == 0) { return(Json(new { result = 0, content = RetechWing.LanguageResources.Right.NotDeleteRootRight }, JsonRequestBehavior.AllowGet)); } try { _permissionManager.DeletePermission(id); RefreshRightCache(); return(Json(new { result = 1, content = RetechWing.LanguageResources.Common.DeleteSuccess }, JsonRequestBehavior.AllowGet)); } catch (Exception ex) { return(Json(new { result = 0, content = RetechWing.LanguageResources.Common.DeleteFailed + ex.Message }, JsonRequestBehavior.AllowGet)); } }
/// <summary> /// 判断权限 /// </summary> /// <param name="sysUser">用户实体</param> /// <param name="controllerName">控制器名称</param> /// <param name="actionName">方法名称</param> /// <returns></returns> public static bool IsAllowed(SysUser sysUser, string controllerName, string actionName) { if (HttpContext.Current.Session[CommonSession.SysPermission] is List <SysPermission> list) { //获取对应的controller SysPermission permissionController = list.FirstOrDefault(c => c.ControllerName == controllerName); //controller存在 if (permissionController == null) { return(false); } { // 获取对应的action SysPermission permissionAction = list.FirstOrDefault(c => c.ActionName == actionName && c.IsController == 0 && c.ControllerName == controllerName); return(permissionAction == null?IsAllowed(sysUser, permissionController) : IsAllowed(sysUser, permissionAction)); } } //没有定义controller的权限,表示无权限控制 return(false); }
/// <summary> /// 更新SysPermission信息 /// </summary> public static void UpdateSysPermission(SysPermission entity) { DataCommand cmd = new DataCommand("UpdateSysPermission"); cmd.SetParameter <SysPermission>(entity); cmd.ExecuteNonQuery(); }
/// <summary> /// 创建SysPermission信息 /// </summary> public static int InsertSysPermission(SysPermission entity) { DataCommand cmd = new DataCommand("InsertSysPermission"); cmd.SetParameter <SysPermission>(entity); int result = cmd.ExecuteScalar <int>(); return(result); }
/// <summary> /// 获取单个SysPermission信息 /// </summary> public static SysPermission LoadSysPermission(int sysNo) { DataCommand cmd = new DataCommand("LoadSysPermission"); cmd.SetParameter("@SysNo", DbType.Int32, sysNo); SysPermission result = cmd.ExecuteEntity <SysPermission>(); return(result); }
public ActionResult GetForm(string primaryKey) { SysPermission entity = permissionLogic.Get(primaryKey); //entity.IsEdit = entity.IsEdit == "1" ? "true" : "false"; entity.IsEnable = entity.IsEnable == "1" ? "true" : "false"; //entity.IsPublic = entity.IsPublic == "1" ? "true" : "false"; return(Content(entity.ToJson())); }
/// <summary> /// 更新SysPermission信息 /// </summary> public void UpdateSysPermission(SysPermission entity) { CheckSysPermission(entity, false); MenuPermission menuPermission = new MenuPermission() { MenuSysNo = entity.MenuSysNo, PermissionSysNo = entity.SysNo }; MenuPermissionDA.UpdateMenuPermission(menuPermission); SysPermissionDA.UpdateSysPermission(entity); }
/// <summary> /// 创建SysPermission信息 /// </summary> public int InsertSysPermission(SysPermission entity) { CheckSysPermission(entity, true); MenuPermission menuPermission = new MenuPermission() { MenuSysNo = entity.MenuSysNo, PermissionSysNo = entity.SysNo }; MenuPermissionDA.InsertMenuPermission(menuPermission); return(SysPermissionDA.InsertSysPermission(entity)); }
public Task <IActionResult> Edit(SysPermission model) { return(Task.Factory.StartNew <IActionResult>(() => { if (!ModelState.IsValid) { return Json(ExcutedResult.FailedResult("数据验证失败")); } SysPermissionRepository.Edit(model, false); return Json(ExcutedResult.SuccessResult()); })); }
public ActionResult Form(SysPermission model) { if (model.Id.IsNullOrEmpty()) { int row = permissionLogic.Insert(model); return(row > 0 ? Success() : Error()); } else { int row = permissionLogic.Update(model); return(row > 0 ? Success() : Error()); } }
/// <summary> /// // 自动生成API权限 /// </summary> /// <param name="typeName"></param> /// <param name="space"></param> /// <param name="areaName"></param> /// <returns></returns> public static IList <SysPermission> GetPermissions(string typeName, string space, string areaName = null) { var result = new List <SysPermission>(); //加载程序集 var assembly = Assembly.Load(space); List <Type> controllerTypes = null; if (areaName == null) { //获取区域名为NoName下的所有Controller类型 controllerTypes = assembly.GetTypes().Where(type => type.BaseType.Name == typeName && type.Namespace.Contains("Areas") == false).ToList(); } else { //获取区域名为areaName下的所有Controller类型 controllerTypes = assembly.GetTypes().Where(type => type.BaseType.Name == typeName && type.Namespace.Contains(areaName)).ToList(); } Console.WriteLine("获取命名空间下控制器数:{0}", controllerTypes.Count); controllerTypes.ForEach((controller) => { var permissionGroup = controller.GetCustomAttribute <DescriptionAttribute>(); var controllName = controller.Name; var actions = controller.GetMethods(BindingFlags.Instance | BindingFlags.Public | BindingFlags.DeclaredOnly).Where(m => !m.IsSpecialName).ToList(); actions.ForEach((a) => { var des = a.GetCustomAttribute <DescriptionAttribute>(); if (des != null) { var permissionName = ""; var para = a.GetParameters(); if (para.Any()) { para.ToList().ForEach((p) => { permissionName = permissionName + p.ParameterType.Name; }); } var permission = new SysPermission { Name = controllName + a.Name + permissionName, ControllerName = controllName, ActionName = a.Name, Parameters = permissionName, Description = des.Description }; result.Add(permission); } }); }); return(result); }
public static PermissionModel Create(SysPermission entity, int level = 0) { PermissionModel ret = new PermissionModel() { Id = entity.Id, Name = entity.Name }; for (int i = 0; i < level; i++) { ret.Name = " " + ret.Name; } return(ret); }
public ActionResult EditPermission(int id, int parentId = 0) { var AllList = _permissionManager.GetAllPermissions(); SysPermission right = AllList.FirstOrDefault(p => p.PermissionId == id) ?? new SysPermission { LinkUrl = "", PermissionName = "", PermissionCode = "", Description = "" }; ViewBag.parentId = id == 0 ? parentId : right.ParentId; ViewBag.allrights = AllList; return(View(right)); }
public static PermissionMenu Create(SysPermission permission) { PermissionMenu ret = new PermissionMenu() { Id = permission.Id, Name = permission.Name, ParentId = permission.ParentId, Type = permission.Type, Url = permission.Url, Icon = permission.Icon, SortCode = permission.GetSortCode(), }; return(ret); }
public vTenantFunction(SysPermission baseClass) { base.LinkUrl = baseClass.LinkUrl; base.ParentId = baseClass.ParentId; base.PermissionCode = baseClass.PermissionCode; base.PermissionId = baseClass.PermissionId; base.PermissionName = baseClass.PermissionName; base.PermissionType = baseClass.PermissionType; base.Sort = baseClass.Sort; base.Status = baseClass.Status; base.Action = baseClass.Action; base.AreaName = baseClass.AreaName; base.Childrens.AddRange(baseClass.Childrens); base.Controller = baseClass.Controller; base.Description = baseClass.Description; base.Icon = baseClass.Icon; }
public SysPermission AddPermission(string menuName , string menuCode , string path , int parentId , string picture , string desc , int orderNum) { var menu = new SysPermission(); menu.PermissionName = menuName; menu.PermissionCode = menuCode; menu.LinkUrl = path; menu.ParentId = parentId; menu.Icon = picture; menu.Description = desc; menu.Sort = orderNum; menu.Status = 0; return AddPermission(menu); }
public int Insert(SysPermission model) { using (var db = GetInstance()) { model.Id = Guid.NewGuid().ToString().Replace("-", ""); //最高级菜单id为1 model.Layer = model.ParentId == "1" ? 0 : Get(model.ParentId).Layer += 1; model.IsEnable = model.IsEnable == null ? "0" : "1"; model.IsEdit = "1"; model.IsPublic = "1"; model.DeleteMark = "0"; model.CreateUser = OperatorProvider.Instance.Current.Account; model.CreateTime = DateTime.Now; model.ModifyUser = model.CreateUser; model.ModifyTime = model.CreateTime; model.ShopID = OperatorProvider.Instance.Current.ShopID; return(db.Insertable <SysPermission>(model).ExecuteCommand()); } }
void GatherChildMenus(List <SysPermission> permissions, SysPermission permission, List <PermissionMenu> list, Dictionary <string, SysPermission> userPermissionDic) { var childPermissions = permissions.Where(a => a.ParentId == permission.Id).OrderBy(a => a.SortCode); foreach (SysPermission childPermission in childPermissions) { if (childPermission.Type == PermissionType.节点组) { GatherChildMenus(permissions, childPermission, list, userPermissionDic); continue; } if (childPermission.Type != PermissionType.公共菜单 && !this.CurrentSession.IsAdmin) { if (!userPermissionDic.ContainsKey(childPermission.Id)) { continue; } } list.Add(PermissionMenu.Create(childPermission)); } }
public ActionResult SaveSysPermission() { string json = Request["data"]; if (string.IsNullOrWhiteSpace(json)) { throw new BusinessException("传入数据不能为空"); } SysPermission permission = JsonConvert.DeserializeObject <SysPermission>(json); if (permission.SysNo > 0) { permission_service.UpdateSysPermission(permission); } else { permission_service.InsertSysPermission(permission); } return(Json(new AjaxResult { Success = true, Message = "保存成功" }, JsonRequestBehavior.AllowGet)); }
/// <summary> /// 检查SysPermission信息 /// </summary> private void CheckSysPermission(SysPermission entity, bool isCreate) { if (!isCreate && entity.SysNo == 0) { throw new BusinessException(LangHelper.GetText("请传入数据主键!")); } if (isCreate && entity.FunctionSysNo == 0) { throw new BusinessException(LangHelper.GetText("没有所属功能编号!")); } if (isCreate && string.IsNullOrWhiteSpace(entity.FunctionSysCode)) { throw new BusinessException(LangHelper.GetText("没有所属功能编码!")); } if (isCreate && !string.IsNullOrWhiteSpace(entity.FunctionSysCode)) { if (entity.FunctionSysCode.Length > 30) { throw new BusinessException(LangHelper.GetText("所属功能系统Code长度不能超过30!")); } } if (isCreate && string.IsNullOrWhiteSpace(entity.ApplicationID)) { throw new BusinessException(LangHelper.GetText("不能为空!")); } if (!string.IsNullOrWhiteSpace(entity.ApplicationID)) { if (entity.ApplicationID.Length > 40) { throw new BusinessException(LangHelper.GetText("长度不能超过40!")); } } if (string.IsNullOrWhiteSpace(entity.PermissionName)) { throw new BusinessException(LangHelper.GetText("权限名称不能为空!")); } if (!string.IsNullOrWhiteSpace(entity.PermissionName)) { if (entity.PermissionName.Length > 200) { throw new BusinessException(LangHelper.GetText("权限名称长度不能超过200!")); } } if (string.IsNullOrWhiteSpace(entity.PermissionKey)) { throw new BusinessException(LangHelper.GetText("权限Key不能为空!")); } if (!string.IsNullOrWhiteSpace(entity.PermissionKey)) { if (entity.PermissionKey.Length > 200) { throw new BusinessException(LangHelper.GetText("权限Key长度不能超过200!")); } } if (!string.IsNullOrWhiteSpace(entity.Memo)) { if (entity.Memo.Length > 200) { throw new BusinessException(LangHelper.GetText("备注长度不能超过200!")); } } }
/// <summary> /// 具体一个Action的功能权限 /// </summary> /// <param name="sysUser"></param> /// <param name="sysPermission"></param> /// <returns></returns> private static bool IsAllowed(SysUser sysUser, SysPermission sysPermission) { // 游客权限 if (sysPermission.IsAllowedNoneRole == 1) { return(true); } // 允许有角色:只要有角色,允许访问 if (sysPermission.IsAllowedAllRole == 1) { return(sysUser.SysUserRoles.Count > 0);//是否存在角色 } //无权限、无登录 if (sysUser == null || sysUser.SysUserRoles.Count == 0) { return(false); } ////选出action对应的角色 var roles = sysPermission.SysRolePermissions.Select(a => a.SysRole).ToList(); if (roles.Count == 0) { // 角色数量为0,也就是说没有定义访问规则,默认不允许访问 return(false); } //获取所有权限配置 var userHavesRoadsides = sysUser.SysUserRoles.Select(r => r.Id).ToList(); var roleList = sysPermission.SysRolePermissions.ToList(); // 查找禁止的角色 var notAllowedRoles = roleList.FindAll(r => r.IsAllowed == 0).Select(ca => ca.SysRole).ToList(); if (notAllowedRoles.Count > 0) { foreach (SysRole role in notAllowedRoles) { // 用户的角色在禁止访问列表中,不允许访问 if (userHavesRoadsides.Contains(role.Id)) { return(false); } } } // 查找允许访问的角色列表 var allowRoles = roleList.FindAll(r => r.IsAllowed == 1).Select(ca => ca.SysRole).ToList(); if (allowRoles.Count > 0) { foreach (SysRole role in allowRoles) { // 用户的角色在访问的角色列表 if (userHavesRoadsides.Contains(role.Id)) { return(true); } } } return(true); }
public int Update(SysPermission sysPermission) { return(SysPermissionRepository.Update(sysPermission)); }
public int Insert(SysPermission sysPermission) { return(SysPermissionRepository.Insert(sysPermission)); }
public SysPermission AddPermission(SysPermission menu) { _dataAccess.AddEntity(menu); return menu; }
public void UpdatePermission(SysPermission menu) { _dataAccess.UpdateEntity(menu); }
public void DeletePermission(int menuId) { SysPermission menu = GetPermissionById(menuId); DeletePermission(menu); }
public void DeletePermission(SysPermission menu) { menu.Status = 1; _dataAccess.UpdateEntity(menu); }