/// <summary> /// 获取角色权限关系 /// </summary> /// <param name="organizationId"></param> /// <param name="roleId"></param> /// <param name="rightType"></param> /// <returns></returns> private List <GroupPermissionRelationDAO> GetGroupPermisionRelations(string organizationId, string groupId, string rightType) { List <GroupPermissionRelationDAO> result = new List <GroupPermissionRelationDAO>(); var permissions = _authorRepository.GetPermisions(); if (permissions == null || permissions.Count == 0) { return(result); } foreach (var permission in permissions) { var relations = new GroupPermissionRelationDAO() { MItemID = GuidUtility.GetGuid(), MOrgID = organizationId, MGroupID = groupId, MPermissionID = permission.MItemID, MRightType = rightType, }; result.Add(relations); } return(result); }
/// <summary> /// 新增账号 /// </summary> /// <param name="user"></param> /// <returns></returns> public OperationResult InsertUser(UserDTO user) { OperationResult result = new OperationResult(); if (user == null) { throw new ArgumentNullException("user"); } result = Validate <UserDTO>(user); if (!result.Success) { return(result); } user.Id = GuidUtility.GetGuid(); int effRow = _userRepository.InsertUser(user.Convert()); result.Success = effRow > 0; if (result.Success) { SendActivateMail(user); } result.Id = result.Success ? user.Id : null; return(result); }
/// <summary> /// 用户登录 /// </summary> /// <param name="email"></param> /// <param name="password"></param> /// <returns></returns> public OperationResult Login(string email, string password) { OperationResult result = new OperationResult(); var userModel = GetUser(email, password); if (userModel == null) { return(result); } TokenDTO tokenModel = new TokenDTO() { UserId = userModel.Id, UserName = userModel.Name, Token = GuidUtility.GetGuid(), ExpireDateTime = DateTime.Now.AddHours(1) }; CacheModel tokenCache = new CacheModel() { CacheType = CacheType.KeyValue, Key = tokenModel.Token, Data = tokenModel, }; result.Success = _cache.Add(tokenCache); result.Data = result.Success ? tokenModel : null; return(result); }
/// <summary> /// 注册新账号 /// </summary> /// <returns></returns> public User CreateUser(int type, EmailTemplate emailTemplate) { Id = GuidUtility.GetGuid(); Status = 0; //基础数据 Create(); //设置激活连接信息 CreateUserActiveEmail(type, emailTemplate); return(this); }
/// <summary> /// 创建激活邮件内容 /// </summary> /// <param name="type">类型 1 注册 2 邀请注册</param> /// <param name="emailTemplate"></param> /// <returns></returns> public void CreateUserActiveEmail(int type, EmailTemplate emailTemplate) { this.UserActiveInfo = new UserActiveInfo() { Id = GuidUtility.GetGuid(), FirstName = this.FirstName, LastName = this.LastName, Email = EmailAddress, LinkType = type, Phone = Phone, EmailTemplate = emailTemplate }; }
public virtual void Create() { if (TokenContext == null) { throw new TokenContextNullException("无法获取登录信息"); } Id = GuidUtility.GetGuid(); CreatorID = TokenContext.GetUserId(); CreateDate = DateTime.Now; ModifierID = CreatorID; ModifyDate = CreateDate; IsActive = true; IsDelete = false; }
/// <summary> /// 设置组织的数据库 /// </summary> /// <param name="organizationId"></param> public static void SetOrganizationStorageRelation(string organizationId) { var storageMaxOrganiztonCount = ConfigurationManager.AppSetting("StorageMaxOrganiztonCount"); if (string.IsNullOrWhiteSpace(storageMaxOrganiztonCount)) { throw new Exception("没有找到配置项StorageMaxOrganiztonCount"); } int maxConfiguration = 0; if (!int.TryParse(storageMaxOrganiztonCount, out maxConfiguration)) { throw new Exception("配置项StorageMaxOrganiztonCount只能是整形数字"); } var storages = GetStorages(); if (storages == null || storages.Count == 0) { throw new Exception("没有找到任何的storeage"); } var storage = storages.FirstOrDefault(x => x.MOrgCount < maxConfiguration); if (storage == null) { throw new Exception("没有找到合适的数据库,请确认数据库是否已满"); } OrganizaitonStoreRelationDAO organizaitonStore = new OrganizaitonStoreRelationDAO() { MItemID = GuidUtility.GetGuid(), MOrgID = organizationId, MStorageID = storage.MItemID, MIsActive = true, MIsDelete = false }; string connectionString = ConfigurationManager.AppSetting("ConnectionString"); IORM _orm = new SugarORM(connectionString); var client = _orm.GetSqlClient <SqlSugarClient>(); client.Insertable <OrganizaitonStoreRelationDAO>(organizaitonStore).ExecuteCommand(); }
/// <summary> /// 创建一个组织 /// </summary> /// <param name="organization"></param> /// <returns></returns> public OrganizationDTO CreateOrganization(OrganizationDTO organization) { OrganizationDAO dao = organization.Convert(); dao.MItemID = GuidUtility.GetGuid(); dao.MIsActive = false; dao.MIsDelete = false; OrganizationAttributeDAO attributeDao = new OrganizationAttributeDAO(); attributeDao.MItemID = GuidUtility.GetGuid(); attributeDao.MOrgID = dao.MItemID; attributeDao.MConversionDate = DateTime.Now; attributeDao.MExpiredDate = DateTime.Now.AddDays(30); attributeDao.MRegProgress = (int)WizardStepType.Created; attributeDao.MIsActive = true; OrganizationUserRelationDAO organizationUserRelation = new OrganizationUserRelationDAO(); organizationUserRelation.MItemID = GuidUtility.GetGuid(); organizationUserRelation.MOrgID = dao.MItemID; organizationUserRelation.MUserID = GetCurrentUserId(); organizationUserRelation.MIsActive = true; var client = _orm.GetSqlClient <SqlSugarClient>(); try { client.BeginTran(); client.Insertable(dao).ExecuteCommand(); client.Insertable(attributeDao).ExecuteCommand(); client.Insertable(organizationUserRelation).ExecuteCommand(); client.CommitTran(); organization.Id = dao.MItemID; return(organization); } catch (Exception ex) { client.RollbackTran(); throw ex; } }
/// <summary> /// 登录 /// </summary> /// <param name="userDTO"></param> /// <returns></returns> public OperationResult Login(UserDTO userDTO) { OperationResult result = new OperationResult(); if (!string.IsNullOrWhiteSpace(userDTO.EmailAddress) || !string.IsNullOrWhiteSpace(userDTO.Password)) { result.Success = false; result.Messages.Add("请填写用户名和密码"); result.Code = ((int)RequestFailCode.ParametersMissing).ToString(); } var user = _userDomainService.GetUser(userDTO.EmailAddress, userDTO.Password); if (user == null) { result.Success = false; result.Messages.Add("用户名或密码不正确"); result.Code = ((int)RequestFailCode.PasswordError).ToString(); return(result); } //如果存在的化,保存到Redis var tokenModel = new TokenDTO() { TokenId = GuidUtility.GetGuid(), UserId = user.Id, ExpiredDate = DateTime.Now.AddSeconds(3600), RefreshTokenId = GuidUtility.GetGuid() }; RedisRepository.SaveUserToken(tokenModel); result.Success = true; result.Data = tokenModel; return(result); }
/// <summary> /// 用户,组织创建权限 /// </summary> /// <param name="userId"></param> /// <param name="orgId"></param> /// <returns></returns> public OperationResult CreateAdminAuthor(string userId, string orgId) { OperationResult result = new OperationResult(); //用户对于的角色 UserRoleRelationDAO userRoleRelation = new UserRoleRelationDAO() { MItemID = GuidUtility.GetGuid(), MUserID = userId, MOrgID = orgId, //管理员 MRoleID = "10000" }; //获取用户组模型 UserGroupRelationDAO userGroupRelation = new UserGroupRelationDAO() { MItemID = GuidUtility.GetGuid(), MUserID = userId, MOrgID = orgId, MGroupID = "10000" }; GroupRoleRealtionDAO groupRoleRealtion = new GroupRoleRealtionDAO() { MGroupID = "10000", MRoleID = "10000", MItemID = GuidUtility.GetGuid(), }; //获取角色,权限关系模型 List <RolePermisionRelationDAO> rolePermisionRelations = GetRolePermisionRelations(orgId, "10000", "11111"); //获取角色,权限关系模型 List <GroupPermissionRelationDAO> groupPermisionRelations = GetGroupPermisionRelations(orgId, "10000", "11111"); try { result.Success = _authorRepository.AddAuthor(userGroupRelation, userRoleRelation, rolePermisionRelations, groupPermisionRelations); //如果成功,返回一个权限创建成功队列 if (result.Success) { AuthorCreatedEvent @event = new AuthorCreatedEvent() { OrgId = orgId, UserId = userId }; _eventBus.PublishAsync <AuthorCreatedEvent>(@event); } else { OrganizationRollbackEvent @event = new OrganizationRollbackEvent() { OrgId = orgId }; _eventBus.PublishAsync <OrganizationRollbackEvent>(@event); } } catch (Exception ex) { //如果创建失败,发送一个组织回滚事件 OrganizationRollbackEvent @event = new OrganizationRollbackEvent() { OrgId = orgId }; _eventBus.PublishAsync <OrganizationRollbackEvent>(@event); } return(result); }
/// <summary> /// 获取一个GUID /// </summary> /// <returns></returns> protected virtual string GetGuid() { return(GuidUtility.GetGuid()); }