Example #1
0
 /// <summary>
 /// 角色编辑
 /// </summary>
 /// <param name="Parameter"></param>
 /// <returns></returns>
 public BaseResponse <bool> RoleInfoEdit(EditRoleParameter Parameter)
 {
     if (ValidateData <EditRoleParameter>(Parameter))
     {
         return(roleManager.EditRoleInfo(Parameter));
     }
     else
     {
         BaseResponse <bool> result = new BaseResponse <bool>();
         result.IsSuccessful = false;
         result.Code         = "001271";
         LogHelper.WriteLog(string.Format("未通过安全验证:({0}:{1}", result.Code, result.Reason));
         return(result);
     }
 }
Example #2
0
        /// <summary>
        /// 创建人:张辽阔
        /// 创建时间:2016-07-27
        /// 创建记录:验证“修改角色信息”的参数是否有效
        /// </summary>
        /// <param name="roleJSONStr">角色JSON字符串</param>
        /// <returns></returns>
        internal BaseResponse <bool> ValidateEditRoleParams(EditRoleParameter role)
        {
            BaseResponse <bool> result = new BaseResponse <bool>();

            if (role == null)
            {
                result.IsSuccessful = false;
                result.Code         = "004412";
                return(result);
            }
            if (role.RoleID <= 0)
            {
                result.IsSuccessful = false;
                result.Code         = "004422";
                return(result);
            }
            if (string.IsNullOrEmpty(role.RoleName))
            {
                result.IsSuccessful = false;
                result.Code         = "004432";
                return(result);
            }
            if (roleRepository
                .GetDatas <iCMS.Frameworks.Core.DB.Models.Role>(p => p.RoleID != role.RoleID &&
                                                                p.RoleName.Equals(role.RoleName),
                                                                true)
                .Any())
            {
                result.IsSuccessful = false;
                result.Code         = "004442";
                return(result);
            }
            iCMS.Frameworks.Core.DB.Models.Role tempRoleObj = roleRepository
                                                              .GetDatas <iCMS.Frameworks.Core.DB.Models.Role>(p => p.RoleID == role.RoleID, true)
                                                              .FirstOrDefault();
            if (tempRoleObj == null)
            {
                result.IsSuccessful = false;
                result.Code         = "004422";
                return(result);
            }
            result.IsSuccessful = true;
            return(result);
        }
Example #3
0
        /// <summary>
        /// 角色编辑
        /// 修改人:张辽阔
        /// 修改时间:2016-11-08
        /// 修改记录:修改IsDeault和IsShow的值
        ///
        /// 修改人:王龙杰
        /// 修改时间:2017-10-13
        /// 修改记录:编辑角色同时添加角色附权
        /// </summary>
        /// <param name="Parameter"></param>
        /// <returns></returns>
        public BaseResponse <bool> EditRoleInfo(EditRoleParameter Parameter)
        {
            BaseResponse <bool> result = new BaseResponse <bool>();

            try
            {
                #region 验证角色是否已经被使用,如果已经被使用,则不能进行角色隐藏  王颖辉 2018-01-18
                var role = roleRepository.GetByKey(Parameter.RoleID);
                if (role == null)
                {
                    result.IsSuccessful = false;
                    result.Code         = "010092";
                    return(result);
                }

                //如果本次修改为隐藏,而且角色被使用,则不能进行隐藏
                if (role.IsShow != Parameter.IsShow && role.IsShow == 1)
                {
                    var isExist = userRepository.GetDatas <User>(item => item.RoleID == role.RoleID, true).Any();
                    if (isExist)
                    {
                        result.IsSuccessful = false;
                        result.Code         = "010102";
                        return(result);
                    }
                }

                #endregion
                using (iCMSDbContext dataContext = new iCMSDbContext())
                {
                    Validate validate = new Validate(userRepository, roleRepository);

                    result = validate.ValidateEditRoleParams(Parameter);
                    if (!result.IsSuccessful)
                    {
                        return(result);
                    }
                    Role tempRoleObj = dataContext.Role
                                       .GetDatas <Role>(dataContext, p => p.RoleID == Parameter.RoleID)
                                       .FirstOrDefault();
                    tempRoleObj.RoleName = Parameter.RoleName;
                    //张辽阔 2016-11-08 添加
                    tempRoleObj.IsDeault = Parameter.IsDeault;
                    tempRoleObj.IsShow   = Parameter.IsShow;
                    OperationResult operationResult = dataContext.Role.Update <Role>(dataContext, tempRoleObj);
                    if (operationResult.ResultType == EnumOperationResultType.Success)
                    {
                        //修改角色附权 王龙杰 2017-10-13
                        dataContext.Configuration.AutoDetectChangesEnabled = false;
                        var roleModuleList =
                            (from p in dataContext.RoleModule
                             where p.RoleCode == tempRoleObj.RoleCode
                             select p);
                        foreach (var item in roleModuleList)
                        {
                            dataContext.Entry(item).State = EntityState.Deleted;
                        }
                        var addRoleModuleList =
                            (from p in Parameter.Module
                             select new RoleModule
                        {
                            RoleCode = tempRoleObj.RoleCode,
                            ModuleCode = p,
                        });
                        foreach (var item in addRoleModuleList)
                        {
                            dataContext.Entry(item).State = EntityState.Added;
                        }
                        dataContext.SaveChanges();

                        result.IsSuccessful = true;
                        return(result);
                    }
                    else
                    {
                        result.IsSuccessful = false;
                        result.Code         = "003971";
                        return(result);
                    }
                }
            }
            catch (Exception e)
            {
                LogHelper.WriteLog(e);
                result.IsSuccessful = false;
                result.Code         = "003971";
                return(result);
            }
        }