Пример #1
0
        // GET api/values/5
        public APIJsonResult GetList(int pageSize, int pageIndex, string keywords)
        {
            int totalCount    = 0;
            var roleList      = new TRoleBLL().PagerQuery(pageSize, pageIndex, out totalCount, c => c.Name.Contains(keywords), c => c.CreateDate, true);
            var roleModelList = UtilHelper.ConvertObjList <TRole, RoleModel>(roleList);

            for (var i = 0; i < roleModelList.Count; i++)
            {
                var roleModel = roleModelList[i];
                var role      = roleList[i];
                roleModel.UserCount = role.TAdminUserRole.Count;
            }

            return(SuccessList("", roleModelList, totalCount));
        }
Пример #2
0
        public APIJsonResult Delete(int roleID)
        {
            var roleBLL = new TRoleBLL();

            try {
                roleBLL.Delete(roleID);
            }catch (ValidationException ex)
            {
                return(Failed(ex.Message));
            }

            roleBLL.SaveChanges();

            return(Success());
        }
Пример #3
0
        // GET api/values/5
        public APIJsonResult Get(int id)
        {
            var role      = new TRoleBLL().Find(c => c.ID == id);
            var roleModel = UtilHelper.CopyProperties <RoleModel>(role);

            if (role.TRolePermission != null && role.TRolePermission.Count > 0)
            {
                roleModel.PermissionIDList = role.TRolePermission.Select(c => c.PermissionID).ToList();
            }

            return(Success("",
                           new
            {
                Data = roleModel
            }
                           ));
        }
Пример #4
0
        /// <summary>
        /// 权限判断
        /// </summary>
        /// <param name="filterContext"></param>
        public void OnAuthorization(AuthorizationContext filterContext)
        {
            if (filterContext == null)
            {
                throw new ArgumentNullException("filterContext");
            }
            if (filterContext.HttpContext.Request.Url == null)
            {
                throw new ArgumentNullException("filterContext");
            }
            string pageUrl = filterContext.HttpContext.Request.Url.AbsolutePath; //OperateContext.GetThisPageUrl(false);

            // 允许匿名访问 用于标记在授权期间要跳过 AuthorizeAttribute 的控制器和操作的特性
            var actionAnonymous     = filterContext.ActionDescriptor.GetCustomAttributes(typeof(AllowAnonymousAttribute), true) as IEnumerable <AllowAnonymousAttribute>;
            var controllerAnonymous = filterContext.Controller.GetType().GetCustomAttributes(typeof(AllowAnonymousAttribute), true) as IEnumerable <AllowAnonymousAttribute>;

            if ((actionAnonymous != null && actionAnonymous.Any()) || (controllerAnonymous != null && controllerAnonymous.Any()))
            {
                return;
            }

            //url获取token
            var content   = filterContext.HttpContext;
            var adminUser = LoginManager.GetLoginUser();

            if (adminUser == null)   // not logined
            {
                ProcessNotLogin(filterContext);
                return;
            }

            var permissionAttr = filterContext.ActionDescriptor.GetCustomAttributes(typeof(PermissionAttribute), true) as IEnumerable <PermissionAttribute>;

            if (permissionAttr == null || permissionAttr.Count() == 0)
            {
                return;
            }

            var hasPermission = new TRoleBLL().CheckRolePermissions(adminUser.RoleID, permissionAttr.ToList()[0].PermissionList);

            if (!hasPermission)
            {
                ProcessNoPermission(filterContext);
            }
        }
Пример #5
0
        // GET api/values/5
        public APIJsonResult Add(RoleModel roleModel)
        {
            roleModel.Name = roleModel.Name.Trim();
            var roleBLL = new TRoleBLL();
            var role    = new TRole();

            UtilHelper.CopyProperties(roleModel, role);

            AddCreateInfo(role);

            try
            {
                roleBLL.Add(role);
            }
            catch (ValidationException ex)
            {
                return(Failed(ex.Message));
            }

            roleBLL.SaveChanges();

            if (roleModel.PermissionIDList != null && roleModel.PermissionIDList.Count > 0)
            {
                var rolePermissionBLL = new TRolePermissionBLL();

                foreach (var permissionID in roleModel.PermissionIDList)
                {
                    var rolePermission = new TRolePermission()
                    {
                        PermissionID = permissionID,
                        RoleID       = role.ID
                    };

                    AddCreateInfo(rolePermission);

                    rolePermissionBLL.Add(rolePermission);
                }

                rolePermissionBLL.SaveChanges();
            }


            return(Success());
        }
Пример #6
0
        public APIJsonResult Edit(RoleModel roleModel)
        {
            var roleBLL = new TRoleBLL();
            var role    = new TRole();

            UtilHelper.CopyProperties(roleModel, role);
            AddUpdateInfo(role);

            try {
                roleBLL.Edit(role, new string[] { "Name" });
            }
            catch (ValidationException ex)
            {
                return(Failed(ex.Message));
            }

            roleBLL.SaveChanges();

            var rolePermissionBLL = new TRolePermissionBLL();

            rolePermissionBLL.Delete(c => c.RoleID == role.ID);

            if (roleModel.PermissionIDList != null && roleModel.PermissionIDList.Count > 0)
            {
                foreach (var permissionID in roleModel.PermissionIDList)
                {
                    var rolePermission = new TRolePermission()
                    {
                        PermissionID = permissionID,
                        RoleID       = role.ID
                    };

                    AddCreateInfo(rolePermission);

                    rolePermissionBLL.Add(rolePermission);
                }
            }

            rolePermissionBLL.SaveChanges();


            return(Success());
        }
Пример #7
0
        // GET api/values/5
        public APIJsonResult GetModuleList()
        {
            var loginUser = LoginManager.GetLoginUser();

            if (loginUser == null)
            {
                return(Failed("No module found."));
            }
            var permissions = new TRoleBLL().GetPermissions(loginUser.RoleID);

            var moduleBLL = new TModuleBLL();
            var modules   = moduleBLL.GetUserModules(permissions);

            var moduleModels = UtilHelper.ConvertObjList <TModule, ModuleModel>(modules);

            UtilHelper.ConvertChildObjList <TModule, ModuleModel, TModule, ModuleModel>(modules, moduleModels, "TModule1", "ChildModules");

            return(Success("", new
            {
                Modules = moduleModels
            }));
        }