Beispiel #1
0
        /// <summary>
        /// 新增权限
        /// </summary>
        /// <param name="userGroupRelation"></param>
        /// <param name="userRoleRelation"></param>
        /// <param name="rolePermisionRelations"></param>
        /// <param name="groupPermisionRelations"></param>
        /// <returns></returns>
        public bool AddAuthor(UserGroupRelationDAO userGroupRelation, UserRoleRelationDAO userRoleRelation,
                              List <RolePermisionRelationDAO> rolePermisionRelations, List <GroupPermissionRelationDAO> groupPermisionRelations)
        {
            var dbContext = _orm.GetSqlClient <SqlSugarClient>();

            try
            {
                dbContext.BeginTran();
                dbContext.Insertable <UserGroupRelationDAO>(userGroupRelation).ExecuteCommand();
                dbContext.Insertable <UserRoleRelationDAO>(userRoleRelation).ExecuteCommand();
                dbContext.GetSimpleClient <RolePermisionRelationDAO>().InsertRange(rolePermisionRelations);
                dbContext.GetSimpleClient <GroupPermissionRelationDAO>().InsertRange(groupPermisionRelations);
                dbContext.CommitTran();

                return(true);
            }
            catch (Exception ex)
            {
                dbContext.RollbackTran();
                throw ex;
            }
        }
        /// <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);
        }