public IActionResult Update([FromBody] RolePermissionModel itemDto)
        {
            return(new ControllerHelper <RolePermission, RolePermissionModel>(this, _mapper)
                   .Update(itemDto, (session, item) =>
            {
                var itemEx = session.Get <RolePermission>(item.ID);
                if (itemEx == null)
                {
                    throw new AppException("Record not found");
                }

                session.Evict(itemEx);

                var exists = session.CreateCriteria <RolePermission>()
                             .Add(Restrictions.Eq("Name", item.Name))
                             .Add(!Restrictions.Eq("ID", item.ID))
                             .List <RolePermission>().Any();
                if (exists)
                {
                    throw new AppException($"RolePermission name {item.Name} already exists!");
                }
                TrackModification(item);
            }, (session, item) =>
            {
                item = session.Get <RolePermission>(item.ID);
                return _mapper.Map <RolePermissionModel>(item);
            }));
        }
示例#2
0
        /// <summary>
        /// 根据项目编码和停车场编码获取所有用户列表
        /// </summary>
        /// <param name="projectGuid">项目编码</param>
        /// <param name="parkingCode">车场编码</param>
        /// <returns></returns>
        public List <UserAccountModel> GetUserList(string projectGuid, string parkingCode)
        {
            //该项目下所有用户列表
            List <UserAccountModel> userList = databaseoperate.GetMostFromDataBase(projectGuid) as List <UserAccountModel>;
            //该项目下所有角色列表
            List <RolePermissionModel> roleList = _roleManager.GetRoleList(projectGuid);

            //创建一个新的用户列表
            List <UserAccountModel> newUserList = new List <UserAccountModel>();

            if (userList != null && roleList != null)
            {
                foreach (var userItem in userList)
                {
                    //查找当前用户所属的角色
                    RolePermissionModel tempRoleModel = roleList.Find(m => m.Guid == userItem.RoleGuid);
                    if (tempRoleModel != null)
                    {
                        if (!string.IsNullOrEmpty(tempRoleModel.ParkingCodeList))
                        {
                            //当前角色是否拥有当前停车场的权限
                            foreach (var parkingCodeItem in tempRoleModel.ParkingCodeList.Split(new string[] { "," }, System.StringSplitOptions.RemoveEmptyEntries))
                            {
                                if (parkingCodeItem == parkingCode)
                                {
                                    //拥有当前车场的权限,则将当前用户添加到新用户列表集合中
                                    newUserList.Add(userItem);
                                }
                            }
                        }
                    }
                }
            }
            return(newUserList);
        }
示例#3
0
        public ActionResult EditPermission(string roleId)
        {
            var role  = this.roleService.Get(g => g.SystemRoleId == roleId);
            var model = new RolePermissionModel()
            {
                RoleName     = role.RoleName,
                SystemRoleId = role.SystemRoleId,
                Permissions  = role.Permissions.IsNullOrEmpty() ? new string[0] : role.Permissions.Split(',')
            };

            #region 权限数据
            var groupList = this.permissionService.GetPermissionGroup(g => true).OrderByDescending(g => g.CreateTime).ToList();

            // 已分组权限
            var grouped = groupList.Where(g => !g.Permissions.IsNullOrEmpty())
                          .Select(g => g.Permissions).SelectMany(s => s.Split(',')).Distinct();

            // 全部权限
            var all = PermissionUtil.PermissionUrls.Select(p => p.Value).Distinct();

            // 未分组权限
            var ungrouped = all.Except(grouped);

            groupList.Add(new SYS_PermissionGroup
            {
                GroupName   = "未分组",
                Permissions = string.Join(",", ungrouped)
            });

            ViewBag.GroupList = groupList;
            #endregion

            return(View(model));
        }
示例#4
0
        public async Task <IActionResult> Add(RoleRequest roleDto)
        {
            try
            {
                if (roleDto == null)
                {
                    return(BadRequest());
                }
                var roleModel = new RolePermissionModel()
                {
                    Name        = roleDto.Name,
                    Permissions = roleDto.Permissions,
                    RoleId      = roleDto.RoleId
                };
                var role = await _roleService.AddRole(roleModel);

                if (role != null)
                {
                    var roleResponseDto = new RoleResponse {
                        Name = role.Name, Permissions = role.Permissions, RoleId = role.RoleId
                    };
                    return(CreatedAtAction(nameof(GetRole), new { id = role.RoleId }, roleResponseDto));
                }
                return(StatusCode(StatusCodes.Status404NotFound));
            }
            catch
            {
                return(StatusCode(StatusCodes.Status500InternalServerError));
            }
        }
示例#5
0
        /// <summary>
        /// 获取某角色
        /// </summary>
        /// <param name="projectGuid"></param>
        /// <returns></returns>
        public RolePermissionModel GetRole(string guid)
        {
            RolePermissionModel model = null;

            redisoperate.model = new RolePermissionModel()
            {
                Guid = guid
            };
            model = redisoperate.GetFromRedis();

            //从数据库读
            if (model == null)
            {
                model = databaseoperate.GetFromDataBase(guid);
                //缓存到redis
                if (model != null)
                {
                    redisoperate.model = model;
                    redisoperate.SaveToRedis();
                }
                else
                {
                    LastErrorDescribe = "未找到该角色";
                }
            }

            return(model);
        }
示例#6
0
        public async Task <IActionResult> UpdateRole([FromBody] RoleRequest roleDto)
        {
            try
            {
                if (roleDto == null)
                {
                    return(BadRequest());
                }
                var role = new RolePermissionModel()
                {
                    Name        = roleDto.Name,
                    Permissions = roleDto.Permissions,
                    RoleId      = roleDto.RoleId
                };
                var result = await _roleService.UpdateRole(role);

                if (result)
                {
                    return(Ok(roleDto));
                }

                return(UnprocessableEntity(new { message = $"Unable to update role", key = "restrict" }));
            }
            catch
            {
                return(StatusCode(StatusCodes.Status500InternalServerError));
            }
        }
示例#7
0
        public async Task <IActionResult> AddPermmission([FromBody] RolePermissionModel newPermission)
        {
            if (!ModelState.IsValid)
            {
                var modelErrors = new List <string>();
                foreach (var modelState in ModelState.Values)
                {
                    foreach (var modelError in modelState.Errors)
                    {
                        modelErrors.Add(modelError.ErrorMessage);
                    }
                }
                return(BadRequest(new AddingResult {
                    Successful = false, Errors = modelErrors
                }));
            }
            var permission = new RolePermission
            {
                Id             = Guid.NewGuid(),
                EmployeeId     = newPermission.EmployeeId,
                EmplyoeeRoleId = newPermission.RoleId,
                ExpiringTime   = newPermission.ExpiringDate
            };

            var successful = await _permissionService.AddPermissionAsync(permission);

            if (!successful)
            {
                return(BadRequest("Could not add role."));
            }
            return(Ok("Added permission: " + permission.Id));
        }
示例#8
0
        public async Task <RolePermissionModel> AddRole(RolePermissionModel role)
        {
            var response = await _client.PostAsJsonAsync <RolePermissionModel>("/roles", role);

            var json = await response.Content.ReadAsStringAsync();

            return(JsonSerializer.Deserialize <RolePermissionModel>(json));
        }
示例#9
0
 private void UpdateRolePermissionFromModel(RolePermission target, RolePermissionModel source)
 {
     target.RolePermissionId = 0;
     target.RoleInfoId       = Convert.ToInt32(source.RoleInfoId ?? "0");
     target.ScreenId         = source.ScreenId;
     target.OptionId         = source.OptionId;
     target.CanView          = source.CanView;
     target.ScreenName       = source.ScreenName;
 }
 /// <summary>
 /// Create api model from service model
 /// </summary>
 /// <param name="model"></param>
 public RolePermissionApiModel(RolePermissionModel model)
 {
     if (model == null)
     {
         throw new ArgumentNullException(nameof(model));
     }
     RoleId      = model.RoleId;
     Permissions = model.Permissions;
 }
示例#11
0
 public async Task Change(string id)
 {
     roleRequest = roles.Where(r => r.RoleId == id).Select(r => new RolePermissionModel()
     {
         RoleId      = r.RoleId,
         Name        = r.Name,
         Permissions = r.Permissions
     }).FirstOrDefault();
     modal.Open();
 }
示例#12
0
        public IHttpActionResult GetRolePermission(string Guid)
        {
            RolePermissionResponse response = new RolePermissionResponse()
            {
                IsSuccess        = true,
                MessageCode      = (int)ApiBaseErrorCode.API_SUCCESS,
                MessageContent   = ApiBaseErrorCode.API_SUCCESS.ToString(),
                OpenUpMenuSerial = new List <string>()
            };

            if (string.IsNullOrWhiteSpace(Guid))
            {
                response.IsSuccess      = false;
                response.MessageCode    = (int)ApiBaseErrorCode.API_PARAM_ERROR;
                response.MessageContent = "角色标识不能为空,请检查";
                return(Ok(response));
            }

            RolePermissionModel rolemodel = rolemanager.GetRole(Guid);

            if (rolemodel != null)
            {
                string privilegeStr = rolemodel.ContentDetial;
                for (int i = 1; i <= privilegeStr.Length / 4; i++)
                {
                    try
                    {
                        string flag       = privilegeStr.Substring(i * 4 - 1, 1);
                        string menuserial = privilegeStr.Substring((i - 1) * 4, 3);
                        if (flag == "1")
                        {
                            response.OpenUpMenuSerial.Add(menuserial);
                        }
                    }
                    catch (Exception ex)
                    {
                        Logger.LogFatal(LoggerLogicEnum.Interface, "", "", "", rolemodel.ProjectGuid, "获取角色权限时发生异常", ex.ToString());
                    }
                }

                if (!string.IsNullOrEmpty(rolemodel.ParkingCodeList))
                {
                    response.ParkingCodeList = rolemodel.ParkingCodeList.Split(',').ToList();
                }

                response.IsAdmin = rolemodel.IsAdmin;
            }
            else
            {
                response.IsSuccess      = false;
                response.MessageCode    = (int)ApiPersonnelErrorCode.API_DATA_NULL_ERROR;
                response.MessageContent = ApiPersonnelErrorCode.API_DATA_NULL_ERROR.ToString();
            }
            return(Ok(response));
        }
示例#13
0
        /// <summary>
        /// 添加角色
        /// </summary>
        /// <param name=""></param>
        /// <returns></returns>
        public bool AddRole(RolePermissionModel model)
        {
            redisoperate.model = model;
            bool flag = databaseoperate.SaveToDataBase(model);

            if (!flag)
            {
                return(false);       //数据库不成功就不要往下执行了
            }
            return(redisoperate.SaveToRedis());
        }
示例#14
0
        public async Task <int> DeleteRolePermissionAsync(RolePermissionModel model)
        {
            var rolePermission = new RolePermission {
                RolePermissionId = model.RolePermissionId
            };

            using (var dataService = DataServiceFactory.CreateDataService())
            {
                return(await dataService.DeleteRolePermissionAsync(rolePermission));
            }
        }
示例#15
0
        public async Task <IActionResult> UpdateAssignPermissionToRole([FromBody] RolePermissionModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState.GetErrorMessages()));
            }
            int companyId = int.Parse(HttpContext.User.Claims.Where(c => c.Type == ClaimTypes.NameIdentifier).FirstOrDefault().Value);
            var update    = await _permissionService.Update(model, companyId);

            return(Ok(new { Success = true, result = update }));
        }
示例#16
0
        public IHttpActionResult ModifyOperator(ModifyUserRequest model)
        {
            ResponseBaseCommon response = new ResponseBaseCommon()
            {
                IsSuccess      = true,
                MessageCode    = (int)ApiBaseErrorCode.API_SUCCESS,
                MessageContent = ApiBaseErrorCode.API_SUCCESS.ToString()
            };

            if (string.IsNullOrWhiteSpace(model.UserName) ||
                string.IsNullOrWhiteSpace(model.UserPswd) ||
                string.IsNullOrWhiteSpace(model.Guid) ||
                string.IsNullOrWhiteSpace(model.ProjectGuid))
            {
                response.IsSuccess      = false;
                response.MessageCode    = (int)ApiBaseErrorCode.API_PARAM_ERROR;
                response.MessageContent = "必要参数缺失,请检查";
                return(Ok(response));
            }

            UserAccountModel content = usermanager.GetUser(model.Guid);

            if (content != null)
            {
                if (content.ProjectGuid == model.ProjectGuid)
                {
                    RolePermissionModel rolemodel = rolemanager.GetRole(model.RoleGuid);
                    content.UserName  = model.UserName;
                    content.UserPswd  = BitConverter.ToString(new MD5CryptoServiceProvider().ComputeHash(Encoding.UTF8.GetBytes(model.UserPswd))).Replace("-", "");
                    content.Mobile    = model.Mobile;
                    content.Privilege = rolemodel.ContentDetial;
                    content.RoleGuid  = model.RoleGuid;
                    if (!usermanager.ModifyUser(content))
                    {
                        response.IsSuccess      = false;
                        response.MessageCode    = (int)ApiBaseErrorCode.API_FAIL;
                        response.MessageContent = usermanager.LastErrorDescribe;// ApiBaseErrorCode.API_FAIL.ToString();
                    }
                }
                else
                {
                    response.IsSuccess      = false;
                    response.MessageCode    = (int)ApiBaseErrorCode.API_INTERFACENAME_ERROR;
                    response.MessageContent = ApiBaseErrorCode.API_INTERFACENAME_ERROR.ToString();
                }
            }
            else
            {
                response.IsSuccess      = false;
                response.MessageCode    = (int)ApiPersonnelErrorCode.API_DATA_NULL_ERROR;
                response.MessageContent = ApiPersonnelErrorCode.API_DATA_NULL_ERROR.ToString();
            }
            return(Ok(response));
        }
示例#17
0
 /// <summary>
 /// Create api model from service model
 /// </summary>
 /// <param name="model"></param>
 public static RolePermissionApiModel ToApiModel(
     this RolePermissionModel model)
 {
     if (model == null)
     {
         return(null);
     }
     return(new RolePermissionApiModel {
         RoleId = model.RoleId,
         Permissions = (IIoT.OpcUa.Api.Twin.Models.RolePermissions?)model.Permissions
     });
 }
 public void Merge(RolePermissionModel source)
 {
     if (source != null)
     {
         RolePermissionId = source.RolePermissionId;
         RoleInfoId       = source.RoleInfoId;
         ScreenId         = source.ScreenId;
         OptionId         = source.OptionId;
         CanView          = source.CanView;
         ScreenName       = source.ScreenName;
     }
 }
 /// <summary>
 /// Convert service model to role permission type
 /// </summary>
 /// <param name="model"></param>
 /// <param name="context"></param>
 /// <returns></returns>
 public static RolePermissionType ToStackModel(this RolePermissionModel model,
                                               ServiceMessageContext context)
 {
     if (model == null)
     {
         return(null);
     }
     return(new RolePermissionType {
         RoleId = model.RoleId.ToNodeId(context),
         Permissions = /*(uint)*/ model.Permissions.ToStackType()
     });
 }
示例#20
0
        public async Task <IActionResult> EditPermission(string id, [FromBody] RolePermissionModel updatedRole)
        {
            var successful = await _permissionService
                             .UpdatePermissionAsync(id, updatedRole);

            if (!successful)
            {
                return(BadRequest("Could not update employee."));
            }

            return(Ok("Updated employee of id: " + id));
        }
示例#21
0
        public ActionResult EditPermissionForAjax(RolePermissionModel model)
        {
            if (ModelState.IsValid)
            {
                var role = roleService.Get(x => x.SystemRoleId == model.SystemRoleId);

                role.Permissions = string.Join(",", model.Permissions ?? new string[0]).TrimEnd(',');

                return(Json(this.roleService.Update(role)));
            }
            return(Json(new ServiceResult(GetModelStateMessage())));
        }
        public ActionResult Permission(int id)
        {
            var roleModules           = _roleManagementAppService.GetRoleModules(id);
            RolePermissionModel model = new RolePermissionModel {
                RoleId               = id,
                RoleName             = _roleManagementAppService.GetRole(id).RoleName,
                PermissionModules    = roleModules,
                AllPermissionModules = _permissionModuleAppService.GetPermissionModuleList()
            };

            return(View(model));
        }
示例#23
0
        /// <summary>
        /// 修改角色
        /// </summary>
        /// <param name=""></param>
        /// <returns></returns>
        public bool ModifyRole(RolePermissionModel model)
        {
            redisoperate.model = model;
            bool flag = databaseoperate.SaveToDataBase(model);

            if (!flag)
            {
                return(false);       //数据库不成功就不要往下执行了
            }
            //此时不需要判断redis是否成功,因为修改时redis一定会返回false
            redisoperate.SaveToRedis();
            return(true);
        }
示例#24
0
        public IActionResult Index(int?webRoleId)
        {
            _iCommonService.GetPageWiseRoleRigths("RolePermission");
            RolePermissionModel rolePermissionModel = new RolePermissionModel();

            rolePermissionModel.WebRoleList = _iDropDownService.GetWebRoleList();
            if (webRoleId != null)
            {
                rolePermissionModel.WebRolePages = _iRolePermissionService.GetWebRolePermissionList(Convert.ToInt32(webRoleId));
                rolePermissionModel.WebRolesId   = Convert.ToInt32(webRoleId);
            }
            return(View(rolePermissionModel));
        }
示例#25
0
        public ActionResult AddRolePermission(RolePermissionModel rolePermissionModel)
        {
            int count = roleMapping.DeleteAndInsertMany(rolePermissionModel.Role, rolePermissionModel.Names);

            if (count > 0)
            {
                return(new ResponseModel <string>(ErrorCode.success, "", count));
            }
            else
            {
                return(new ResponseModel <string>(ErrorCode.server_exception, "", count));
            }
        }
示例#26
0
        private void Save()
        {
            RolePermissionModel rolePermissionModel = new RolePermissionModel()
            {
                RoleId      = role.Id,
                Name        = role.Name,
                Permissions = this.Permissions.Where(p => p.IsSelected).Select(p => p.Name).ToArray()
            };

            securityService.UpdateRole(rolePermissionModel);
            toastService.ShowInfo("Role Updated Successfully.");
            Refresh.InvokeAsync();
        }
示例#27
0
        //[Authorize(Policy = PermissionsList.PermissionsRolesRemove)]
        public async Task <IActionResult> Remove([FromBody] RolePermissionModel permissionModel)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            Roles roleToChange = await _rolesRepository.GetRole(permissionModel.Role);

            FieldInfo validPermission = typeof(PermissionsList)
                                        .GetFields()
                                        .Where(f => f.GetValue(null).ToString() == permissionModel.Permission)
                                        .FirstOrDefault();

            if (validPermission == null)
            {
                return(BadRequest());
            }

            List <RolesPermission> rolePermissions = roleToChange.Permissions.ToList();

            if (rolePermissions.Find(e => e.Permission.Name == permissionModel.Permission) == null)
            {
                return(BadRequest());
            }

            var permissions = await _permissionRepository.GetAll();

            Permission permission = permissions.Where(p => p.Name == permissionModel.Permission)
                                    .FirstOrDefault();

            RolesPermission permissionToAdd = new RolesPermission()
            {
                Id         = Guid.NewGuid(),
                Permission = permission,
                Role       = roleToChange
            };

            _rolesPermissionRepository.Delete(permissionToAdd);

            rolePermissions.Remove(permissionToAdd);

            roleToChange.Permissions = rolePermissions;

            _rolesRepository.Update(roleToChange);

            return(Ok(String.Format("Added permission {0} to {1} role",
                                    permissionModel.Permission,
                                    permissionModel.Role)));
        }
示例#28
0
        static public async Task <RolePermissionModel> CreateRolePermissionModelAsync(RolePermission source, bool includeAllFields)
        {
            var model = new RolePermissionModel()
            {
                RolePermissionId = source.RolePermissionId,
                RoleInfoId       = source.RoleInfoId.ToString(),
                ScreenId         = source.ScreenId,
                OptionId         = source.OptionId,
                CanView          = source.CanView,
                ScreenName       = source.ScreenName
            };

            return(model);
        }
示例#29
0
        public ActionResult RolePermission(Guid id)
        {
            RolePermissionModel model = new RolePermissionModel();

            model.CategoryList = _categoryService.getAll();
            var roleList = _sysRoleService.getAllRoles();

            if (roleList != null && roleList.Any())
            {
                model.Role        = roleList.FirstOrDefault(o => o.Id == id);
                model.RoleList    = roleList;
                model.Permissions = _sysPermissionService.getByRoleId(id);
            }
            return(View(model));
        }
示例#30
0
        /// <summary>
        /// 给角色增加新的授权车场
        /// </summary>
        /// <param name="guid"></param>
        /// <param name="parkingCode"></param>
        /// <returns></returns>
        public bool ModifyRoleAddParkingCode(string guid, string parkingCode)
        {
            RolePermissionModel roleModel = GetRole(guid);

            if (roleModel == null)
            {
                return(false);
            }
            //角色的车场权限编号,不进行重复增加
            if (roleModel.ParkingCodeList.IndexOf(parkingCode) > 0)
            {
                return(true);
            }
            roleModel.ParkingCodeList += "," + parkingCode;
            return(ModifyRole(roleModel));
        }