/// <summary>
        /// 保存
        /// </summary>
        /// <param name="theData">保存的数据</param>
        public ActionResult SaveData(Base_User theData, string Pwd, string RoleIdList)
        {
            if (!Pwd.IsNullOrEmpty())
            {
                theData.Password = Pwd.ToMD5String();
            }
            var roleIdList = RoleIdList.ToList <string>();

            if (theData.Id.IsNullOrEmpty())
            {
                theData.Id     = Guid.NewGuid().ToSequentialGuid();
                theData.UserId = Guid.NewGuid().ToSequentialGuid();

                _baseUserRepository.AddData(theData);
            }
            else
            {
                _baseUserRepository.UpdateData(theData);
            }

            _baseUserRepository.SetUserRole(theData.UserId, roleIdList);
            PermissionManage.UpdateUserPermissionCache(theData.UserId);

            return(Success());
        }
        /// <summary>
        /// 设置角色权限
        /// </summary>
        /// <param name="roleId">角色Id</param>
        /// <param name="permissions">权限值</param>
        /// <returns></returns>
        public ActionResult SavePermission(string roleId, string permissions)
        {
            _base_SysRoleBusiness.SavePermission(roleId, permissions.ToList <string>());

            PermissionManage.ClearUserPermissionCache();

            return(Success());
        }
        /// <summary>
        /// 删除数据
        /// </summary>
        /// <param name="theData">删除的数据</param>
        public ActionResult DeleteData(string ids)
        {
            _base_SysRoleBusiness.DeleteData(ids.ToList <string>());

            PermissionManage.ClearUserPermissionCache();

            return(Success("删除成功!"));
        }
Beispiel #4
0
        public IActionResult SetPermission(string roleObjectId, string rName)
        {
            ViewData["roleObjectId"] = roleObjectId;
            ViewData["rName"]        = rName;
            //获取角色已有权限项ID
            ViewData["permissionList"] = PermissionManage.GetPermissionByRole(roleObjectId);
            //获取所有菜单   禁用的前端进行了控制
            var menus = _sysMenusService.GetList(m => true).Include("SysFunction").OrderBy(m => m.Hierarchy).ThenBy(m => m.Sort).ToList();

            return(View(menus));
        }
Beispiel #5
0
        /// <summary>
        /// Action执行之前执行
        /// </summary>
        /// <param name="filterContext">过滤器上下文</param>
        public void OnActionExecuting(ActionExecutingContext filterContext)
        {
            //若为本地测试,则不需要校验
            if (GlobalSwitch.RunModel == RunModel.LocalTest)
            {
                return;
            }
            AjaxResult res = new AjaxResult();
            //判断是否需要校验
            List <string> attrList  = FilterHelper.GetFilterList(filterContext);
            bool          needCheck = attrList.Contains(typeof(CheckAppIdPermissionAttribute).FullName) && !attrList.Contains(typeof(IgnoreAppIdPermissionAttribute).FullName);

            if (!needCheck)
            {
                return;
            }

            var allRequestParams = HttpHelper.GetAllRequestParams(filterContext.HttpContext);

            if (!allRequestParams.ContainsKey("appId"))
            {
                res.Success          = false;
                res.Msg              = "缺少appId参数!";
                filterContext.Result = new ContentResult {
                    Content = res.ToJson()
                };
            }
            string appId             = allRequestParams["appId"]?.ToString();
            var    allUrlPermissions = UrlPermissionManage.GetAllUrlPermissions();
            string requestUrl        = filterContext.HttpContext.Request.Path;
            var    thePermission     = allUrlPermissions.Where(x => requestUrl.Contains(x.Url.ToLower())).FirstOrDefault();

            if (thePermission == null)
            {
                return;
            }
            string needPermission = thePermission.PermissionValue;
            bool   hasPermission  = PermissionManage.GetAppIdPermissionValues(appId).Any(x => x.ToLower() == needPermission.ToLower());

            if (hasPermission)
            {
                return;
            }
            else
            {
                res.Success          = false;
                res.Msg              = "权限不足!访问失败!";
                filterContext.Result = new ContentResult {
                    Content = res.ToJson()
                };
            }
        }
        /// <summary>
        /// 获取用户菜单
        /// </summary>
        /// <returns></returns>
        public static List <Menu> GetOperatorMenu()
        {
            List <Menu> resList = InitAllMenu();

            if (Operator.IsAdmin())
            {
                return(resList);
            }

            var userPermissions = PermissionManage.GetUserPermissionValues(Operator.UserId);

            SetSubMenuShow(resList, userPermissions, 1);

            return(resList);
        }
Beispiel #7
0
        public void SetUserRole(string userId, List <string> roleIds)
        {
            Service.Delete <Base_UserRoleMap>(x => x.UserId == userId);
            var insertList = roleIds.Select(x => new Base_UserRoleMap
            {
                Id     = GuidHelper.GenerateKey(),
                UserId = userId,
                RoleId = x
            }).ToList();

            Service.Insert(insertList);
            _cache.UpdateCache(userId);
            _userRoleCache.UpdateCache(userId);
            PermissionManage.UpdateUserPermissionCache(userId);
        }
Beispiel #8
0
        /// <summary>
        /// Action执行之前执行
        /// </summary>
        /// <param name="filterContext">过滤器上下文</param>
        public void OnActionExecuting(ActionExecutingContext filterContext)
        {
            //若为本地测试,则不需要校验
            if (GlobalSwitch.RunModel == RunModel.LocalTest)
            {
                return;
            }
            //判断是否需要校验
            List <string> attrList  = FilterHelper.GetFilterList(filterContext);
            bool          needCheck = attrList.Contains(typeof(CheckUrlPermissionAttribute).FullName) && !attrList.Contains(typeof(IgnoreUrlPermissionAttribute).FullName);

            if (!needCheck)
            {
                return;
            }

            var    allUrlPermissions = UrlPermissionManage.GetAllUrlPermissions();
            string requestUrl        = filterContext.HttpContext.Request.Path;
            var    thePermission     = allUrlPermissions.Where(x => requestUrl.Contains(x.Url.ToLower())).FirstOrDefault();

            if (thePermission == null)
            {
                return;
            }
            string needPermission = thePermission.PermissionValue;
            bool   hasPermission  = PermissionManage.GetOperatorPermissionValues().Any(x => x.ToLower() == needPermission.ToLower());

            if (hasPermission)
            {
                return;
            }
            else
            {
                AjaxResult res = new AjaxResult
                {
                    Success = false,
                    Msg     = "权限不足!无法访问!"
                };
                filterContext.Result = new ContentResult {
                    Content = res.ToJson()
                };
            }
        }
Beispiel #9
0
        /// <summary>
        /// Action执行之前执行
        /// </summary>
        /// <param name="filterContext">过滤器上下文</param>
        public void OnActionExecuting(ActionExecutingContext filterContext)
        {
            //若为本地测试,则不需要校验
            if (GlobalSwitch.RunModel == RunModel.LocalTest)
            {
                return;
            }
            //判断是否需要校验
            bool needCheck = filterContext.ContainsAttribute <CheckUrlPermissionAttribute>() && !filterContext.ContainsAttribute <IgnoreUrlPermissionAttribute>();

            if (!needCheck)
            {
                return;
            }

            var    allUrlPermissions = UrlPermissionManage.GetAllUrlPermissions();
            string requestUrl        = filterContext.HttpContext.Request.Url.ToString().ToLower();
            var    thePermission     = allUrlPermissions.Where(x => requestUrl.Contains(x.Url.ToLower())).FirstOrDefault();

            if (thePermission == null)
            {
                return;
            }
            string needPermission = thePermission.PermissionValue;
            bool   hasPermission  = PermissionManage.GetOperatorPermissionValues().Any(x => x.ToLower() == needPermission.ToLower());

            if (hasPermission)
            {
                return;
            }
            else
            {
                AjaxResult res = new AjaxResult
                {
                    Success = false,
                    Msg     = "权限不足!无法访问!"
                };
                filterContext.Result = new ContentResult {
                    Content = res.ToJson(), ContentEncoding = Encoding.UTF8
                };
            }
        }
Beispiel #10
0
        public ActionResult SavePermission(string appId, string permissions)
        {
            PermissionManage.SetAppIdPermission(appId, permissions.ToList <string>());

            return(Success());
        }
Beispiel #11
0
        /// <summary>
        /// 获取以模块为分组的权限点集合
        /// </summary>
        /// <returns></returns>
        public List <PermissionResponse> GetPermissionsGroupByModule()
        {
            var manage = new PermissionManage();

            return(manage.GroupByModule());
        }
Beispiel #12
0
        /// <summary>
        /// 获取所有权限点
        /// </summary>
        /// <returns></returns>
        public List <Data.Entity.Permission> GetAllPermissions()
        {
            var manage = new PermissionManage();

            return(manage.AllPermissions);
        }
Beispiel #13
0
        public ActionResult Save(Domain.SYS_PERMISSION entity)
        {
            bool       isEdit = false;
            JsonHelper json   = new JsonHelper()
            {
                Msg = "保存权限成功", Status = "n"
            };

            try
            {
                if (entity != null)
                {
                    if (System.Text.Encoding.GetEncoding("gb2312").GetBytes(entity.NAME.Trim()).Length > 50)
                    {
                        json.Msg = "权限的名称长度不能超过50个字符";
                        return(Json(json));
                    }
                    entity.ICON = Request.Form["ICON"];
                    var nextpervalue = Request.Form["NEXTPERVALUE"];
                    if (!string.IsNullOrEmpty(nextpervalue))
                    {
                        if (!Regex.IsMatch(nextpervalue, @"^[A-Za-z0-9]{1,20}$"))
                        {
                            json.Msg = "权限值只能以英文数字组成,长度不能超过20个字符";
                            return(Json(json));
                        }
                        entity.PERVALUE = nextpervalue;
                    }
                    //添加
                    if (entity.ID <= 0)
                    {
                        entity.CREATEDATE = DateTime.Now;
                        entity.UPDATEDATE = DateTime.Now;
                        entity.UPDATEUSER = this.CurrentUser.Name;
                        entity.CREATEUSER = this.CurrentUser.Name;
                    }
                    else //编辑
                    {
                        entity.UPDATEUSER = this.CurrentUser.Name;
                        entity.UPDATEDATE = DateTime.Now;
                        isEdit            = true;
                    }
                    //同一模块下权限不能重复
                    if (!this.PermissionManage.IsExist(p => p.NAME.Equals(entity.NAME) && p.ID != entity.ID && p.MODULEID == entity.MODULEID))
                    {
                        if (PermissionManage.SaveOrUpdate(entity, isEdit))
                        {
                            json.Status = "y";
                        }
                        else
                        {
                            json.Msg = "保存失败";
                        }
                    }
                    else
                    {
                        json.Msg = "权限" + entity.NAME + "同一模块下已存在,不能重复添加";
                    }
                }
                else
                {
                    json.Msg = "未找到要保存的权限记录";
                }
                if (isEdit)
                {
                    WriteLog(Common.Enums.enumOperator.Edit, "修改权限,结果:" + json.Msg, Common.Enums.enumLog4net.INFO);
                }
                else
                {
                    WriteLog(Common.Enums.enumOperator.Add, "添加权限,结果:" + json.Msg, Common.Enums.enumLog4net.INFO);
                }
            }
            catch (Exception e)
            {
                json.Msg = "保存权限发生内部错误!";
                WriteLog(Common.Enums.enumOperator.None, "对模块权限按钮的管理保存权限:", e);
            }
            return(Json(json));
        }
Beispiel #14
0
        public IActionResult SetPermission(string roleObjectId, string permissions, string tag)
        {
            var res = PermissionManage.SetPermissionWithRole(roleObjectId, permissions.ToList <string>());

            return(Json(res));
        }
Beispiel #15
0
        /// <summary>
        /// 保存权限
        /// </summary>
        /// <param name="userId">用户Id</param>
        /// <param name="permissions">权限</param>
        /// <returns></returns>
        public ActionResult SavePermission(string userId, string permissions)
        {
            PermissionManage.SetUserPermission(userId, permissions.ToList <string>());

            return(Success());
        }