예제 #1
0
        public async Task <IActionResult> Create(/*[Bind("Id,Name,Decription")]*/ RoleJson role)
        {
            Logger.Trace($"[{nameof(Create)}] 请求参数; \r\n{JsonUtil.ToJson(role)}");
            // 0. 参数检查
            if (role == null)
            {
                return(View(nameof(Create)));
            }
            try
            {
                // 1. 权限检查
                if (!await RoleOrgPerManager.HasPermissionInSelfOrg(SignUser.Id, Constants.ROLE_CREATE))
                {
                    Logger.Warn($"[{nameof(Create)}] 用户[{SignUser.SignName}]({SignUser.Id})没有权限({Constants.ROLE_CREATE})");
                    ModelState.AddModelError("All", "没有权限");
                    return(View(role));
                }
                // 2. 业务处理
                // 创建角色 -与组织关联
                // TODO: 新增一个接口:在指定组织下创建角色(RoleManager.CreateByOrgIdUserId(role, orgId, SignUser.Id))
                await RoleManager.CreateForOrgByUserId(role, SignUser.Id);

                return(RedirectToAction(nameof(Index)));
            }
            catch (Exception e)
            {
                Logger.Error($"[{nameof(Create)}] 服务器错误: \r\n{e.ToString()}");
                ModelState.AddModelError("All", e.Message);
                return(View(role));
            }
        }
예제 #2
0
        public async Task <IActionResult> Edit(string id, [Bind("Id,Name,Decription")] RoleJson role)
        {
            Logger.Trace($"[{nameof(Create)}] 请求参数; 角色({id}) \r\n{JsonUtil.ToJson(role)}");
            // 0. 参数检查
            if (id != role.Id)
            {
                return(NotFound());
            }
            try
            {
                // 1. 权限检查ROOT_ROLE_UPDATE (TODO: ROLE > ROLE_SAVE > ROLE_SAVE_UPDATE)
                if (!await RoleOrgPerManager.HasPermission <Role>(SignUser.Id, Constants.ROLE_MANAGE, id))
                {
                    Logger.Warn($"[{nameof(Edit)}] 用户[{SignUser.SignName}]({SignUser.Id})没有权限({Constants.ROLE_MANAGE})");
                    ModelState.AddModelError("All", "没有权限");
                    return(RedirectToAction(nameof(Index)));
                }
                // 2. 业务处理
                await RoleManager.Update(role);

                return(RedirectToAction(nameof(Index)));
            }
            catch (Exception e)
            {
                if (!await RoleManager.ExistById(role.Id))
                {
                    return(NotFound());
                }
                else
                {
                    Logger.Error($"[{nameof(Edit)}] 服务器错误: \r\n{e.ToString()}");
                    ModelState.AddModelError("All", e.Message);
                    return(View(role));
                }
            }
        }