From 73537e35330900a837bc4a46bd7f17e1d600ba8a Mon Sep 17 00:00:00 2001 From: arnegns Date: Fri, 20 Oct 2023 14:10:20 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20hpi-schu?= =?UTF-8?q?l-cloud/schulcloud-server@d570dd6a0cabfb4efcbf18f13df20d3dbb8fe?= =?UTF-8?q?168=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- classes/ExternalSourceResponse.html | 334 + classes/Group.html | 41 +- classes/GroupIdParams.html | 242 + classes/GroupResponse.html | 517 ++ classes/GroupResponseMapper.html | 123 +- classes/GroupUcMapper.html | 99 +- classes/GroupUserResponse.html | 423 ++ classes/ResolvedGroupDto.html | 444 ++ controllers/GroupController.html | 126 +- coverage.html | 92 +- graph/dependencies.svg | 5986 ++++++++-------- injectables/GroupRule.html | 440 ++ injectables/GroupUc.html | 226 +- injectables/RuleManager.html | 31 +- interfaces/GroupProps.html | 4 + js/menu-wc.js | 27 +- js/menu-wc_es5.js | 2 +- js/search/search_index.js | 4 +- miscellaneous/enumerations.html | 46 + miscellaneous/variables.html | 36 + modules/AccountModule.html | 120 +- modules/AccountModule/dependencies.svg | 120 +- modules/AuthenticationApiModule.html | 26 +- .../AuthenticationApiModule/dependencies.svg | 26 +- modules/AuthenticationModule.html | 8 +- modules/AuthenticationModule/dependencies.svg | 8 +- modules/AuthorizationModule.html | 233 +- modules/AuthorizationModule/dependencies.svg | 228 +- modules/AuthorizationReferenceModule.html | 136 +- .../dependencies.svg | 136 +- modules/BoardApiModule.html | 62 +- modules/BoardApiModule/dependencies.svg | 62 +- modules/BoardModule.html | 232 +- modules/BoardModule/dependencies.svg | 232 +- modules/CacheWrapperModule.html | 8 +- modules/CacheWrapperModule/dependencies.svg | 8 +- modules/ClassModule.html | 8 +- modules/ClassModule/dependencies.svg | 8 +- .../CollaborativeStorageAdapterModule.html | 96 +- .../dependencies.svg | 96 +- modules/CollaborativeStorageModule.html | 8 +- .../dependencies.svg | 8 +- modules/CommonToolModule.html | 122 +- modules/CommonToolModule/dependencies.svg | 122 +- modules/ContextExternalToolModule.html | 114 +- .../dependencies.svg | 114 +- modules/ExternalToolModule.html | 8 +- modules/ExternalToolModule/dependencies.svg | 8 +- modules/FeathersModule.html | 8 +- modules/FeathersModule/dependencies.svg | 8 +- modules/FilesModule.html | 46 +- modules/FilesModule/dependencies.svg | 46 +- modules/FilesStorageAMQPModule.html | 46 +- .../FilesStorageAMQPModule/dependencies.svg | 46 +- modules/FilesStorageApiModule.html | 54 +- .../FilesStorageApiModule/dependencies.svg | 54 +- modules/FilesStorageClientModule.html | 8 +- .../FilesStorageClientModule/dependencies.svg | 8 +- modules/FilesStorageModule.html | 112 +- modules/FilesStorageModule/dependencies.svg | 112 +- modules/GroupModule.html | 8 +- modules/GroupModule/dependencies.svg | 8 +- modules/KeycloakModule.html | 8 +- modules/KeycloakModule/dependencies.svg | 8 +- modules/LearnroomModule.html | 8 +- modules/LearnroomModule/dependencies.svg | 8 +- modules/LegacySchoolModule.html | 8 +- modules/LegacySchoolModule/dependencies.svg | 8 +- modules/LessonApiModule.html | 38 +- modules/LessonApiModule/dependencies.svg | 38 +- modules/LessonModule.html | 112 +- modules/LessonModule/dependencies.svg | 112 +- modules/ManagementModule.html | 102 +- modules/ManagementModule/dependencies.svg | 102 +- modules/NewsModule.html | 56 +- modules/NewsModule/dependencies.svg | 56 +- modules/OauthModule.html | 136 +- modules/OauthModule/dependencies.svg | 136 +- modules/OauthProviderModule.html | 112 +- modules/OauthProviderModule/dependencies.svg | 112 +- modules/ProvisioningModule.html | 8 +- modules/ProvisioningModule/dependencies.svg | 8 +- modules/PseudonymModule.html | 88 +- modules/PseudonymModule/dependencies.svg | 88 +- modules/RoleModule.html | 8 +- modules/RoleModule/dependencies.svg | 8 +- modules/SchoolExternalToolModule.html | 66 +- .../SchoolExternalToolModule/dependencies.svg | 66 +- modules/SharingApiModule.html | 78 +- modules/SharingApiModule/dependencies.svg | 78 +- modules/SystemModule.html | 64 +- modules/SystemModule/dependencies.svg | 64 +- modules/TaskModule.html | 114 +- modules/TaskModule/dependencies.svg | 114 +- modules/ToolModule.html | 8 +- modules/ToolModule/dependencies.svg | 8 +- modules/UserApiModule.html | 26 +- modules/UserApiModule/dependencies.svg | 26 +- modules/UserLoginMigrationModule.html | 144 +- .../UserLoginMigrationModule/dependencies.svg | 144 +- modules/UserModule.html | 8 +- modules/UserModule/dependencies.svg | 8 +- modules/VideoConferenceApiModule.html | 70 +- .../VideoConferenceApiModule/dependencies.svg | 70 +- modules/VideoConferenceModule.html | 8 +- .../VideoConferenceModule/dependencies.svg | 8 +- overview.html | 5990 +++++++++-------- 107 files changed, 11954 insertions(+), 8740 deletions(-) create mode 100644 classes/ExternalSourceResponse.html create mode 100644 classes/GroupIdParams.html create mode 100644 classes/GroupResponse.html create mode 100644 classes/GroupUserResponse.html create mode 100644 classes/ResolvedGroupDto.html create mode 100644 injectables/GroupRule.html diff --git a/classes/ExternalSourceResponse.html b/classes/ExternalSourceResponse.html new file mode 100644 index 00000000000..dae735b5aa4 --- /dev/null +++ b/classes/ExternalSourceResponse.html @@ -0,0 +1,334 @@ + + + + + + schulcloud-server documentation + + + + + + + + + + + + + +
+
+ + +
+
+ + + + + + + + + + + + + + + + +
+
+

+

File

+

+

+ apps/server/src/modules/group/controller/dto/response/external-source.response.ts +

+ + + + + + +
+

Index

+ + + + + + + + + + + + + + + +
+
Properties
+
+ +
+
+ +
+

Constructor

+ + + + + + + + + + + + + +
+constructor(props: ExternalSourceResponse) +
+ +
+
+ Parameters : + + + + + + + + + + + + + + + + + + +
NameTypeOptional
props + ExternalSourceResponse + + No +
+
+
+
+ +
+ +

+ Properties +

+ + + + + + + + + + + + + + + + + +
+ + + + externalId + + +
+ Type : string + +
+ Decorators : +
+ + @ApiProperty()
+
+
+ +
+ + + + + + + + + + + + + + + + + +
+ + + + systemId + + +
+ Type : string + +
+ Decorators : +
+ + @ApiProperty()
+
+
+ +
+
+ + + + + + + +
+ + +
+
import { ApiProperty } from '@nestjs/swagger';
+
+export class ExternalSourceResponse {
+	@ApiProperty()
+	externalId: string;
+
+	@ApiProperty()
+	systemId: string;
+
+	constructor(props: ExternalSourceResponse) {
+		this.externalId = props.externalId;
+		this.systemId = props.systemId;
+	}
+}
+
+
+
+ + + + + + + + + +
+
+

results matching ""

+
    +
    +
    +

    No results matching ""

    +
    +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/classes/Group.html b/classes/Group.html index 5d0d4e9b4d4..e123c6e567f 100644 --- a/classes/Group.html +++ b/classes/Group.html @@ -151,6 +151,9 @@
    Accessors
  • organizationId
  • +
  • + type +
  • @@ -225,8 +228,8 @@

    - + @@ -292,8 +295,8 @@

    - + @@ -329,8 +332,8 @@

    - + @@ -519,6 +522,28 @@

    + + + + + + + + + + + + + + +
    + + type +
    + gettype() +
    + +
    @@ -564,6 +589,10 @@

    return this.props.organizationId; } + get type(): GroupTypes { + return this.props.type; + } + removeUser(user: UserDO): void { this.props.users = this.props.users.filter((groupUser: GroupUser): boolean => groupUser.userId !== user.id); } diff --git a/classes/GroupIdParams.html b/classes/GroupIdParams.html new file mode 100644 index 00000000000..e62a00a7ce2 --- /dev/null +++ b/classes/GroupIdParams.html @@ -0,0 +1,242 @@ + + + + + + schulcloud-server documentation + + + + + + + + + + + + + +
    +
    + + +
    +
    + + + + + + + + + + + + + + + + +
    +
    +

    +

    File

    +

    +

    + apps/server/src/modules/group/controller/dto/request/group-id-params.ts +

    + + + + + + +
    +

    Index

    + + + + + + + + + + + + + + + +
    +
    Properties
    +
    + +
    +
    + + +
    + +

    + Properties +

    + + + + + + + + + + + + + + + + + +
    + + + + + groupId + + +
    + Type : string + +
    + Decorators : +
    + + @IsMongoId()
    @ApiProperty({nullable: false, required: true})
    +
    +
    + +
    +
    + + + + + + + +
    + + +
    +
    import { ApiProperty } from '@nestjs/swagger';
    +import { IsMongoId } from 'class-validator';
    +
    +export class GroupIdParams {
    +	@IsMongoId()
    +	@ApiProperty({ nullable: false, required: true })
    +	groupId!: string;
    +}
    +
    +
    +
    + + + + + + + + + +
    +
    +

    results matching ""

    +
      +
      +
      +

      No results matching ""

      +
      +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/classes/GroupResponse.html b/classes/GroupResponse.html new file mode 100644 index 00000000000..3584dfeaf3a --- /dev/null +++ b/classes/GroupResponse.html @@ -0,0 +1,517 @@ + + + + + + schulcloud-server documentation + + + + + + + + + + + + + +
      +
      + + +
      +
      + + + + + + + + + + + + + + + + +
      +
      +

      +

      File

      +

      +

      + apps/server/src/modules/group/controller/dto/response/group.response.ts +

      + + + + + + +
      +

      Index

      + + + + + + + + + + + + + + + +
      +
      Properties
      +
      + +
      +
      + +
      +

      Constructor

      + + + + + + + + + + + + + +
      +constructor(group: GroupResponse) +
      + +
      +
      + Parameters : + + + + + + + + + + + + + + + + + + +
      NameTypeOptional
      group + GroupResponse + + No +
      +
      +
      +
      + +
      + +

      + Properties +

      + + + + + + + + + + + + + + + + + +
      + + + + Optional + externalSource + + +
      + Type : ExternalSourceResponse + +
      + Decorators : +
      + + @ApiPropertyOptional()
      +
      +
      + +
      + + + + + + + + + + + + + + + + + +
      + + + + id + + +
      + Type : string + +
      + Decorators : +
      + + @ApiProperty()
      +
      +
      + +
      + + + + + + + + + + + + + + + + + +
      + + + + name + + +
      + Type : string + +
      + Decorators : +
      + + @ApiProperty()
      +
      +
      + +
      + + + + + + + + + + + + + + + + + +
      + + + + Optional + organizationId + + +
      + Type : string + +
      + Decorators : +
      + + @ApiPropertyOptional()
      +
      +
      + +
      + + + + + + + + + + + + + + + + + +
      + + + + type + + +
      + Type : GroupTypeResponse + +
      + Decorators : +
      + + @ApiProperty({enum: GroupTypeResponse})
      +
      +
      + +
      + + + + + + + + + + + + + + + + + +
      + + + + users + + +
      + Type : GroupUserResponse[] + +
      + Decorators : +
      + + @ApiProperty({type: undefined})
      +
      +
      + +
      +
      + + + + + + + +
      + + +
      +
      import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
      +import { ExternalSourceResponse } from './external-source.response';
      +import { GroupTypeResponse } from './group-type.response';
      +import { GroupUserResponse } from './group-user.response';
      +
      +export class GroupResponse {
      +	@ApiProperty()
      +	id: string;
      +
      +	@ApiProperty()
      +	name: string;
      +
      +	@ApiProperty({ enum: GroupTypeResponse })
      +	type: GroupTypeResponse;
      +
      +	@ApiProperty({ type: [GroupUserResponse] })
      +	users: GroupUserResponse[];
      +
      +	@ApiPropertyOptional()
      +	externalSource?: ExternalSourceResponse;
      +
      +	@ApiPropertyOptional()
      +	organizationId?: string;
      +
      +	constructor(group: GroupResponse) {
      +		this.id = group.id;
      +		this.name = group.name;
      +		this.type = group.type;
      +		this.users = group.users;
      +		this.externalSource = group.externalSource;
      +		this.organizationId = group.organizationId;
      +	}
      +}
      +
      +
      +
      + + + + + + + + + +
      +
      +

      results matching ""

      +
        +
        +
        +

        No results matching ""

        +
        +
        +
        + +
        +
        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/classes/GroupResponseMapper.html b/classes/GroupResponseMapper.html index f8e12a713d1..55810298cbf 100644 --- a/classes/GroupResponseMapper.html +++ b/classes/GroupResponseMapper.html @@ -98,6 +98,10 @@

        Methods
        Static mapToClassInfoToResponse +
      • + Static + mapToGroupResponse +
      • @@ -139,8 +143,8 @@

        - + @@ -233,8 +237,8 @@

        - + @@ -280,6 +284,75 @@

        + + + + + + + + + + + + + + + + + + + +
        + + + Static + mapToGroupResponse + + +
        + + mapToGroupResponse(resolvedGroup: ResolvedGroupDto) +
        + +
        + +
        + Parameters : + + + + + + + + + + + + + + + + + + + +
        NameTypeOptional
        resolvedGroup + ResolvedGroupDto + + No +
        +
        +
        + Returns : GroupResponse + +
        +
        + +
        +
        @@ -291,8 +364,20 @@

        import { Page } from '@shared/domain';
        -import { ClassInfoDto } from '../../uc/dto';
        -import { ClassInfoResponse, ClassInfoSearchListResponse } from '../dto';
        +import { GroupTypes } from '../../domain';
        +import { ClassInfoDto, ResolvedGroupDto } from '../../uc/dto';
        +import {
        +	ClassInfoResponse,
        +	ClassInfoSearchListResponse,
        +	ExternalSourceResponse,
        +	GroupResponse,
        +	GroupTypeResponse,
        +	GroupUserResponse,
        +} from '../dto';
        +
        +const typeMapping: Record<GroupTypes, GroupTypeResponse> = {
        +	[GroupTypes.CLASS]: GroupTypeResponse.CLASS,
        +};
         
         export class GroupResponseMapper {
         	static mapToClassInfosToListResponse(
        @@ -327,6 +412,32 @@ 

        return mapped; } + + static mapToGroupResponse(resolvedGroup: ResolvedGroupDto): GroupResponse { + const mapped: GroupResponse = new GroupResponse({ + id: resolvedGroup.id, + name: resolvedGroup.name, + type: typeMapping[resolvedGroup.type], + externalSource: resolvedGroup.externalSource + ? new ExternalSourceResponse({ + externalId: resolvedGroup.externalSource.externalId, + systemId: resolvedGroup.externalSource.systemId, + }) + : undefined, + users: resolvedGroup.users.map( + (user) => + new GroupUserResponse({ + id: user.user.id as string, + role: user.role.name, + firstName: user.user.firstName, + lastName: user.user.lastName, + }) + ), + organizationId: resolvedGroup.organizationId, + }); + + return mapped; + } }

        diff --git a/classes/GroupUcMapper.html b/classes/GroupUcMapper.html index 7b77f8ef39a..b44ff6ef87b 100644 --- a/classes/GroupUcMapper.html +++ b/classes/GroupUcMapper.html @@ -97,6 +97,10 @@

        Methods
        Static mapGroupToClassInfoDto +
      • + Static + mapToResolvedGroupDto +
      • @@ -302,6 +306,87 @@

        + + + + + + + + + + + + + + + + + + + +
        + + + Static + mapToResolvedGroupDto + + +
        + + mapToResolvedGroupDto(group: Group, resolvedGroupUsers: ResolvedGroupUser[]) +
        + +
        + +
        + Parameters : + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        NameTypeOptional
        group + Group + + No +
        resolvedGroupUsers + ResolvedGroupUser[] + + No +
        +
        +
        + Returns : ResolvedGroupDto + +
        +
        + +
        +
        @@ -316,7 +401,7 @@

        import { Class } from '@modules/class/domain'; import { SystemDto } from '@modules/system'; import { Group } from '../../domain'; -import { ClassInfoDto, ResolvedGroupUser } from '../dto'; +import { ClassInfoDto, ResolvedGroupDto, ResolvedGroupUser } from '../dto'; import { ClassRootType } from '../dto/class-root-type'; export class GroupUcMapper { @@ -354,6 +439,18 @@

        return mapped; } + + public static mapToResolvedGroupDto(group: Group, resolvedGroupUsers: ResolvedGroupUser[]): ResolvedGroupDto { + const mapped: ResolvedGroupDto = new ResolvedGroupDto({ + id: group.id, + name: group.name, + type: group.type, + externalSource: group.externalSource, + users: resolvedGroupUsers, + }); + + return mapped; + } } diff --git a/classes/GroupUserResponse.html b/classes/GroupUserResponse.html new file mode 100644 index 00000000000..8fb19f3a8ce --- /dev/null +++ b/classes/GroupUserResponse.html @@ -0,0 +1,423 @@ + + + + + + schulcloud-server documentation + + + + + + + + + + + + + +
        +
        + + +
        +
        + + + + + + + + + + + + + + + + +
        +
        +

        +

        File

        +

        +

        + apps/server/src/modules/group/controller/dto/response/group-user.response.ts +

        + + + + + + +
        +

        Index

        + + + + + + + + + + + + + + + +
        +
        Properties
        +
        + +
        +
        + +
        +

        Constructor

        + + + + + + + + + + + + + +
        +constructor(user: GroupUserResponse) +
        + +
        +
        + Parameters : + + + + + + + + + + + + + + + + + + +
        NameTypeOptional
        user + GroupUserResponse + + No +
        +
        +
        +
        + +
        + +

        + Properties +

        + + + + + + + + + + + + + + + + + +
        + + + + firstName + + +
        + Type : string + +
        + Decorators : +
        + + @ApiProperty()
        +
        +
        + +
        + + + + + + + + + + + + + + + + + +
        + + + + id + + +
        + Type : string + +
        + Decorators : +
        + + @ApiProperty()
        +
        +
        + +
        + + + + + + + + + + + + + + + + + +
        + + + + lastName + + +
        + Type : string + +
        + Decorators : +
        + + @ApiProperty()
        +
        +
        + +
        + + + + + + + + + + + + + + + + + +
        + + + + role + + +
        + Type : RoleName + +
        + Decorators : +
        + + @ApiProperty({enum: RoleName})
        +
        +
        + +
        +
        + + + + + + + +
        + + +
        +
        import { ApiProperty } from '@nestjs/swagger';
        +import { RoleName } from '@shared/domain';
        +
        +export class GroupUserResponse {
        +	@ApiProperty()
        +	id: string;
        +
        +	@ApiProperty()
        +	firstName: string;
        +
        +	@ApiProperty()
        +	lastName: string;
        +
        +	@ApiProperty({ enum: RoleName })
        +	role: RoleName;
        +
        +	constructor(user: GroupUserResponse) {
        +		this.id = user.id;
        +		this.firstName = user.firstName;
        +		this.lastName = user.lastName;
        +		this.role = user.role;
        +	}
        +}
        +
        +
        +
        + + + + + + + + + +
        +
        +

        results matching ""

        +
          +
          +
          +

          No results matching ""

          +
          +
          +
          + +
          +
          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/classes/ResolvedGroupDto.html b/classes/ResolvedGroupDto.html new file mode 100644 index 00000000000..c78dd03b328 --- /dev/null +++ b/classes/ResolvedGroupDto.html @@ -0,0 +1,444 @@ + + + + + + schulcloud-server documentation + + + + + + + + + + + + + +
          +
          + + +
          +
          + + + + + + + + + + + + + + + + +
          +
          +

          +

          File

          +

          +

          + apps/server/src/modules/group/uc/dto/resolved-group.dto.ts +

          + + + + + + +
          +

          Index

          + + + + + + + + + + + + + + + +
          +
          Properties
          +
          + +
          +
          + +
          +

          Constructor

          + + + + + + + + + + + + + +
          +constructor(group: ResolvedGroupDto) +
          + +
          +
          + Parameters : + + + + + + + + + + + + + + + + + + +
          NameTypeOptional
          group + ResolvedGroupDto + + No +
          +
          +
          +
          + +
          + +

          + Properties +

          + + + + + + + + + + + + + + +
          + + + Optional + externalSource + + +
          + Type : ExternalSource + +
          + +
          + + + + + + + + + + + + + + +
          + + + id + + +
          + Type : string + +
          + +
          + + + + + + + + + + + + + + +
          + + + name + + +
          + Type : string + +
          + +
          + + + + + + + + + + + + + + +
          + + + Optional + organizationId + + +
          + Type : string + +
          + +
          + + + + + + + + + + + + + + +
          + + + type + + +
          + Type : GroupTypes + +
          + +
          + + + + + + + + + + + + + + +
          + + + users + + +
          + Type : ResolvedGroupUser[] + +
          + +
          +
          + + + + + + + +
          + + +
          +
          import { ExternalSource } from '@shared/domain';
          +import { GroupTypes } from '../../domain';
          +import { ResolvedGroupUser } from './resolved-group-user';
          +
          +export class ResolvedGroupDto {
          +	id: string;
          +
          +	name: string;
          +
          +	type: GroupTypes;
          +
          +	users: ResolvedGroupUser[];
          +
          +	externalSource?: ExternalSource;
          +
          +	organizationId?: string;
          +
          +	constructor(group: ResolvedGroupDto) {
          +		this.id = group.id;
          +		this.name = group.name;
          +		this.type = group.type;
          +		this.users = group.users;
          +		this.externalSource = group.externalSource;
          +		this.organizationId = group.organizationId;
          +	}
          +}
          +
          +
          +
          + + + + + + + + + +
          +
          +

          results matching ""

          +
            +
            +
            +

            No results matching ""

            +
            +
            +
            + +
            +
            + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/controllers/GroupController.html b/controllers/GroupController.html index 4066c1d54a5..560265b165a 100644 --- a/controllers/GroupController.html +++ b/controllers/GroupController.html @@ -99,6 +99,16 @@

            Methods
            Async findClassesForSchool +
          • + + + + + + Public + Async + getGroup +
          • @@ -222,19 +232,113 @@

            + + + + + + + + + + + + + + + + + + + + + + +
            + + + + + + + + Public + Async + getGroup + + +
            + + getGroup(currentUser: ICurrentUser, params: GroupIdParams) +
            + Decorators : +
            + @Get('/:groupId')
            @ApiOperation({summary: 'Get a group by id.'})
            @ApiResponse({status: undefined, type: GroupResponse})
            @ApiResponse({status: '4XX', type: ErrorResponse})
            @ApiResponse({status: '5XX', type: ErrorResponse})
            +
            + +
            + +
            + Parameters : + + + + + + + + + + + + + + + + + + + + + + + + + + + +
            NameTypeOptional
            currentUser + ICurrentUser + + No +
            params + GroupIdParams + + No +
            +
            +
            + Returns : Promise<GroupResponse> + +
            +
            + +
            +
            -
            import { Controller, Get, HttpStatus, Query } from '@nestjs/common';
            +        
            import { Controller, Get, HttpStatus, Param, Query } from '@nestjs/common';
             import { ApiOperation, ApiResponse, ApiTags } from '@nestjs/swagger';
             import { PaginationParams } from '@shared/controller';
             import { Page } from '@shared/domain';
             import { ErrorResponse } from '@src/core/error/dto';
             import { ICurrentUser, Authenticate, CurrentUser } from '@modules/authentication';
             import { GroupUc } from '../uc';
            -import { ClassInfoDto } from '../uc/dto';
            -import { ClassInfoSearchListResponse, ClassSortParams } from './dto';
            +import { ClassInfoDto, ResolvedGroupDto } from '../uc/dto';
            +import { ClassInfoSearchListResponse, ClassSortParams, GroupIdParams, GroupResponse } from './dto';
             import { GroupResponseMapper } from './mapper';
             
             @ApiTags('Group')
            @@ -270,6 +374,22 @@ 

            return response; } + + @Get('/:groupId') + @ApiOperation({ summary: 'Get a group by id.' }) + @ApiResponse({ status: HttpStatus.OK, type: GroupResponse }) + @ApiResponse({ status: '4XX', type: ErrorResponse }) + @ApiResponse({ status: '5XX', type: ErrorResponse }) + public async getGroup( + @CurrentUser() currentUser: ICurrentUser, + @Param() params: GroupIdParams + ): Promise<GroupResponse> { + const group: ResolvedGroupDto = await this.groupUc.getGroup(currentUser.userId, params.groupId); + + const response: GroupResponse = GroupResponseMapper.mapToGroupResponse(group); + + return response; + } }

            diff --git a/coverage.html b/coverage.html index 999b02edf44..e31fc131c45 100644 --- a/coverage.html +++ b/coverage.html @@ -1387,6 +1387,18 @@ (0/4) + + + + apps/server/src/modules/authorization/domain/rules/group.rule.ts + + injectable + GroupRule + + 0 % + (0/4) + + @@ -4351,6 +4363,18 @@ (0/3) + + + + apps/server/src/modules/group/controller/dto/request/group-id-params.ts + + class + GroupIdParams + + 0 % + (0/2) + + @@ -4375,6 +4399,42 @@ (0/9) + + + + apps/server/src/modules/group/controller/dto/response/external-source.response.ts + + class + ExternalSourceResponse + + 0 % + (0/4) + + + + + + apps/server/src/modules/group/controller/dto/response/group-user.response.ts + + class + GroupUserResponse + + 0 % + (0/6) + + + + + + apps/server/src/modules/group/controller/dto/response/group.response.ts + + class + GroupResponse + + 0 % + (0/8) + + @@ -4384,7 +4444,7 @@ GroupController 0 % - (0/2) + (0/3) @@ -4396,7 +4456,19 @@ GroupResponseMapper 0 % - (0/3) + (0/4) + + + + + + apps/server/src/modules/group/controller/mapper/group-response.mapper.ts + + variable + typeMapping + + 0 % + (0/1) @@ -4591,6 +4663,18 @@ (0/4) + + + + apps/server/src/modules/group/uc/dto/resolved-group.dto.ts + + class + ResolvedGroupDto + + 0 % + (0/8) + + @@ -4600,7 +4684,7 @@ GroupUc 0 % - (0/9) + (0/11) @@ -4612,7 +4696,7 @@ GroupUcMapper 0 % - (0/3) + (0/4) diff --git a/graph/dependencies.svg b/graph/dependencies.svg index b08f88cdbab..70e876cd0e9 100644 --- a/graph/dependencies.svg +++ b/graph/dependencies.svg @@ -4,22 +4,22 @@ - + dependencies - -Legend - -  Declarations - -  Module - -  Bootstrap - -  Providers - -  Exports + +Legend + +  Declarations + +  Module + +  Bootstrap + +  Providers + +  Exports cluster_AccountApiModule @@ -78,7 +78,7 @@ cluster_AuthorizationModule - + cluster_AuthorizationModule_imports @@ -86,23 +86,23 @@ cluster_AuthorizationModule_exports - + cluster_AuthorizationModule_providers - + cluster_AuthorizationReferenceModule - + cluster_AuthorizationReferenceModule_exports - + cluster_AuthorizationReferenceModule_providers - + cluster_BoardApiModule @@ -134,39 +134,39 @@ cluster_CacheWrapperModule - + cluster_CacheWrapperModule_exports - + cluster_CacheWrapperModule_providers - + cluster_CalendarModule - + cluster_CalendarModule_exports - + cluster_CalendarModule_providers - + cluster_ClassModule - + cluster_ClassModule_exports - + cluster_ClassModule_providers - + cluster_CollaborativeStorageAdapterModule @@ -214,127 +214,127 @@ cluster_ConsoleWriterModule - + cluster_ConsoleWriterModule_exports - + cluster_ConsoleWriterModule_providers - + cluster_ContextExternalToolModule - + cluster_ContextExternalToolModule_imports - + cluster_ContextExternalToolModule_exports - + cluster_ContextExternalToolModule_providers - + cluster_CopyHelperModule - + cluster_CopyHelperModule_exports - + cluster_CopyHelperModule_providers - + cluster_CoreModule - + cluster_CoreModule_imports - + cluster_CoreModule_exports - + cluster_DatabaseManagementModule - + cluster_DatabaseManagementModule_exports - + cluster_DatabaseManagementModule_providers - + cluster_EncryptionModule - + cluster_ExternalToolModule - + cluster_ExternalToolModule_imports - + cluster_ExternalToolModule_exports - + cluster_ExternalToolModule_providers - + cluster_FeathersModule - + cluster_FeathersModule_exports - + cluster_FeathersModule_providers - + cluster_FilesModule - + cluster_FilesModule_providers - + cluster_FilesStorageAMQPModule - + cluster_FilesStorageAMQPModule_imports - + cluster_FilesStorageAMQPModule_providers - + cluster_FilesStorageApiModule - + cluster_FilesStorageApiModule_providers - + cluster_FilesStorageClientModule @@ -350,175 +350,175 @@ cluster_FilesStorageModule - + cluster_FilesStorageModule_imports - + cluster_FilesStorageModule_exports - + cluster_FilesStorageModule_providers - + cluster_FilesStorageTestModule - + cluster_FilesStorageTestModule_imports - + cluster_FileSystemModule - + cluster_FileSystemModule_exports - + cluster_FileSystemModule_providers - + cluster_FwuLearningContentsModule - + cluster_FwuLearningContentsModule_imports - + cluster_FwuLearningContentsModule_providers - + cluster_FwuLearningContentsTestModule - + cluster_GroupApiModule - + cluster_GroupApiModule_imports - + cluster_GroupApiModule_providers - + cluster_GroupModule - + cluster_GroupModule_exports - + cluster_GroupModule_providers - + cluster_H5PEditorModule - + cluster_H5PEditorModule_providers - + cluster_H5PEditorTestModule - + cluster_IdentityManagementModule - + cluster_IdentityManagementModule_imports - + cluster_IdentityManagementModule_exports - + cluster_ImportUserModule - + cluster_ImportUserModule_providers - + cluster_KeycloakAdministrationModule - + cluster_KeycloakAdministrationModule_exports - + cluster_KeycloakAdministrationModule_providers - + cluster_KeycloakConfigurationModule - + cluster_KeycloakConfigurationModule_exports - + cluster_KeycloakConfigurationModule_providers - + cluster_KeycloakModule - + cluster_KeycloakModule_exports - + cluster_KeycloakModule_providers - + cluster_LearnroomApiModule - + cluster_LearnroomApiModule_imports - + cluster_LearnroomApiModule_providers - + cluster_LearnroomModule - + cluster_LearnroomModule_imports - + cluster_LearnroomModule_exports - + cluster_LearnroomModule_providers - + cluster_LegacySchoolApiModule @@ -534,15 +534,15 @@ cluster_LegacySchoolModule - + cluster_LegacySchoolModule_exports - + cluster_LegacySchoolModule_providers - + cluster_LessonApiModule @@ -554,15 +554,15 @@ cluster_LessonModule - + cluster_LessonModule_exports - + cluster_LessonModule_providers - + cluster_LoggerModule @@ -578,43 +578,43 @@ cluster_LtiToolModule - + cluster_LtiToolModule_exports - + cluster_LtiToolModule_providers - + cluster_ManagementModule - + cluster_ManagementModule_providers - + cluster_ManagementServerModule - + cluster_ManagementServerTestModule - + cluster_NewsModule - + cluster_NewsModule_exports - + cluster_NewsModule_providers - + cluster_OauthApiModule @@ -642,47 +642,47 @@ cluster_OauthProviderApiModule - + cluster_OauthProviderApiModule_imports - + cluster_OauthProviderApiModule_providers - + cluster_OauthProviderModule - + cluster_OauthProviderModule_exports - + cluster_OauthProviderModule_providers - + cluster_OauthProviderServiceModule - + cluster_OauthProviderServiceModule_exports - + cluster_ProvisioningModule - + cluster_ProvisioningModule_exports - + cluster_ProvisioningModule_providers - + cluster_PseudonymApiModule @@ -706,35 +706,35 @@ cluster_RedisModule - + cluster_RoleModule - + cluster_RoleModule_exports - + cluster_RoleModule_providers - + cluster_SchoolExternalToolModule - + cluster_SchoolExternalToolModule_exports - + cluster_SchoolExternalToolModule_providers - + cluster_ServerConsoleModule - + cluster_ServerModule @@ -762,15 +762,15 @@ cluster_SharingModule - + cluster_SharingModule_exports - + cluster_SharingModule_providers - + cluster_SystemApiModule @@ -782,15 +782,15 @@ cluster_SystemModule - + cluster_SystemModule_exports - + cluster_SystemModule_providers - + cluster_TaskApiModule @@ -802,35 +802,35 @@ cluster_TaskModule - + cluster_TaskModule_exports - + cluster_TaskModule_providers - + cluster_TeamsApiModule - + cluster_TeamsApiModule_imports - + cluster_TeamsModule - + cluster_TeamsModule_exports - + cluster_TeamsModule_providers - + cluster_ToolApiModule @@ -842,23 +842,23 @@ cluster_ToolLaunchModule - + cluster_ToolLaunchModule_exports - + cluster_ToolLaunchModule_providers - + cluster_ToolModule - + cluster_ToolModule_exports - + cluster_UserApiModule @@ -878,15 +878,15 @@ cluster_UserLoginMigrationModule - + cluster_UserLoginMigrationModule_exports - + cluster_UserLoginMigrationModule_providers - + cluster_UserModule @@ -914,15 +914,15 @@ cluster_VideoConferenceModule - + cluster_VideoConferenceModule_exports - + cluster_VideoConferenceModule_providers - + @@ -951,8 +951,8 @@ AccountModule->AccountService - - + + @@ -963,8 +963,8 @@ AccountModule->AccountValidationService - - + + @@ -975,68 +975,68 @@ AccountModule->AuthenticationModule - - + + - + UserModule UserModule - + AccountModule->UserModule - - + + - + ImportUserModule - -ImportUserModule + +ImportUserModule - + AccountModule->ImportUserModule - - + + - + KeycloakConfigurationModule - -KeycloakConfigurationModule + +KeycloakConfigurationModule - + AccountModule->KeycloakConfigurationModule - - + + - + UserLoginMigrationModule UserLoginMigrationModule - + AccountModule->UserLoginMigrationModule - - + + - + ProvisioningModule ProvisioningModule - + AccountModule->ProvisioningModule - - + + @@ -1053,14 +1053,14 @@ LoggerModule->AccountApiModule - - + + LoggerModule->AuthenticationModule - - + + @@ -1069,544 +1069,544 @@ OauthModule - + LoggerModule->OauthModule - - + + AuthorizationModule - -AuthorizationModule + +AuthorizationModule LoggerModule->AuthorizationModule - - + + - + AuthorizationReferenceModule - -AuthorizationReferenceModule + +AuthorizationReferenceModule - + LoggerModule->AuthorizationReferenceModule - - + + - + BoardModule BoardModule - + LoggerModule->BoardModule - - + + - + BoardApiModule BoardApiModule - + LoggerModule->BoardApiModule - + - + FilesStorageClientModule FilesStorageClientModule - + LoggerModule->FilesStorageClientModule - - + + - + LoggerModule->UserModule - - + + - + CollaborativeStorageAdapterModule CollaborativeStorageAdapterModule - + LoggerModule->CollaborativeStorageAdapterModule - - + + - + CollaborativeStorageModule CollaborativeStorageModule - + LoggerModule->CollaborativeStorageModule - + - + LearnroomModule LearnroomModule - + LoggerModule->LearnroomModule - - + + - + LegacySchoolModule LegacySchoolModule - + LoggerModule->LegacySchoolModule - - + + - + CommonToolModule CommonToolModule - + LoggerModule->CommonToolModule - - + + - + ExternalToolModule - -ExternalToolModule + +ExternalToolModule - + LoggerModule->ExternalToolModule - - + + - + ContextExternalToolModule - -ContextExternalToolModule + +ContextExternalToolModule - + LoggerModule->ContextExternalToolModule - - + + - + ErrorModule - -ErrorModule + +ErrorModule - + LoggerModule->ErrorModule - - + + - + CoreModule - -CoreModule + +CoreModule - + LoggerModule->CoreModule - - + + - + EncryptionModule - -EncryptionModule + +EncryptionModule - + LoggerModule->EncryptionModule - - + + - + FilesModule - -FilesModule + +FilesModule - + LoggerModule->FilesModule - - + + - + FilesStorageModule - -FilesStorageModule + +FilesStorageModule - + LoggerModule->FilesStorageModule - - + + - + FilesStorageAMQPModule - -FilesStorageAMQPModule + +FilesStorageAMQPModule - + LoggerModule->FilesStorageAMQPModule - - + + - + FilesStorageTestModule - -FilesStorageTestModule + +FilesStorageTestModule - + LoggerModule->FilesStorageTestModule - - + + - + FwuLearningContentsModule - -FwuLearningContentsModule + +FwuLearningContentsModule - + LoggerModule->FwuLearningContentsModule - - + + - + FwuLearningContentsTestModule - -FwuLearningContentsTestModule + +FwuLearningContentsTestModule - + LoggerModule->FwuLearningContentsTestModule - - + + - + H5PEditorTestModule - -H5PEditorTestModule + +H5PEditorTestModule - + LoggerModule->H5PEditorTestModule - - + + - + KeycloakModule - -KeycloakModule + +KeycloakModule - + LoggerModule->KeycloakModule - - + + - + LoggerModule->ImportUserModule - - + + - + LoggerModule->KeycloakConfigurationModule - - + + - + LessonModule - -LessonModule + +LessonModule - + LoggerModule->LessonModule - - + + - + LoggerModule->UserLoginMigrationModule - - + + - + LegacySchoolApiModule LegacySchoolApiModule - + LoggerModule->LegacySchoolApiModule - - + + - + ErrorLogger ErrorLogger - + LoggerModule->ErrorLogger - + - + LegacyLogger LegacyLogger - + LoggerModule->LegacyLogger - - + + - + Logger Logger - + LoggerModule->Logger - - + + - + ManagementModule - -ManagementModule + +ManagementModule - + LoggerModule->ManagementModule - - + + - + NewsModule - -NewsModule + +NewsModule - + LoggerModule->NewsModule - - + + - + LoggerModule->ProvisioningModule - - + + - + OauthApiModule OauthApiModule - + LoggerModule->OauthApiModule - + - + OauthProviderModule - -OauthProviderModule + +OauthProviderModule - + LoggerModule->OauthProviderModule - - + + - + OauthProviderApiModule - -OauthProviderApiModule + +OauthProviderApiModule - + LoggerModule->OauthProviderApiModule - - + + - + RedisModule - -RedisModule + +RedisModule - + LoggerModule->RedisModule - - + + - + SharingApiModule SharingApiModule - + LoggerModule->SharingApiModule - - + + - + ToolApiModule ToolApiModule - + LoggerModule->ToolApiModule - - + + - + UserLoginMigrationApiModule UserLoginMigrationApiModule - + LoggerModule->UserLoginMigrationApiModule - - + + - + ServerModule ServerModule - + LoggerModule->ServerModule - - + + - + ServerTestModule ServerTestModule - + LoggerModule->ServerTestModule - - + + - + SharingModule SharingModule - + LoggerModule->SharingModule - - + + - + VideoConferenceModule VideoConferenceModule - + LoggerModule->VideoConferenceModule - - + + - + AccountApiModule->ServerModule - - + + - + AccountApiModule->ServerTestModule - - + + @@ -1659,50 +1659,50 @@ UserRepo->AuthenticationModule - - + + - + UserRepo->AuthorizationModule - - + + - + UserRepo->AuthorizationReferenceModule - - + + - + UserRepo->UserModule - - + + - + UserRepo->LearnroomModule - - + + - + UserRepo->ImportUserModule - - + + - + LearnroomApiModule - -LearnroomApiModule + +LearnroomApiModule - + UserRepo->LearnroomApiModule - - + + @@ -1713,14 +1713,14 @@ IdentityManagementModule->AccountModule - - + + IdentityManagementModule->AuthenticationModule - - + + @@ -1729,106 +1729,106 @@ SystemModule - + IdentityManagementModule->SystemModule - - + + - + IdentityManagementOauthService - -IdentityManagementOauthService + +IdentityManagementOauthService - + IdentityManagementModule->IdentityManagementOauthService - - + + - + IdentityManagementService - -IdentityManagementService + +IdentityManagementService - + IdentityManagementModule->IdentityManagementService - - + + AccountLookupService - -AccountLookupService + +AccountLookupService AccountLookupService->AccountModule - - + + AccountRepo - -AccountRepo + +AccountRepo AccountRepo->AccountModule - - + + AccountService - -AccountService + +AccountService AccountService->AccountModule - - + + AccountServiceDb - -AccountServiceDb + +AccountServiceDb AccountServiceDb->AccountModule - - + + AccountServiceIdm - -AccountServiceIdm + +AccountServiceIdm AccountServiceIdm->AccountModule - - + + AccountValidationService - -AccountValidationService + +AccountValidationService AccountValidationService->AccountModule - - + + @@ -1839,26 +1839,26 @@ SystemRepo->AccountModule - - + + SystemRepo->AuthenticationModule - - + + - + SystemRepo->SystemModule - - + + - + SystemRepo->ImportUserModule - - + + @@ -1869,8 +1869,8 @@ AuthenticationModule->AuthenticationApiModule - - + + @@ -1881,98 +1881,98 @@ AuthenticationModule->AuthenticationService - - + + - + AuthenticationModule->FilesStorageModule - - + + - + FilesStorageApiModule - -FilesStorageApiModule + +FilesStorageApiModule - + AuthenticationModule->FilesStorageApiModule - - + + - + AuthenticationModule->FilesStorageTestModule - - + + - + AuthenticationModule->FwuLearningContentsModule - - + + - + AuthenticationModule->FwuLearningContentsTestModule - - + + - + H5PEditorModule - -H5PEditorModule + +H5PEditorModule - + AuthenticationModule->H5PEditorModule - - + + - + AuthenticationModule->H5PEditorTestModule - - + + - + AuthenticationModule->ManagementModule - - + + - + AuthenticationModule->OauthApiModule - + - + AuthenticationModule->UserLoginMigrationApiModule - - + + - + AuthenticationApiModule->H5PEditorTestModule - - + + - + AuthenticationApiModule->ServerModule - + AuthenticationApiModule->ServerTestModule - - + + @@ -1995,68 +1995,68 @@ CacheWrapperModule->AuthenticationModule - - + + - + CacheWrapperModule->OauthModule - + CacheService - -CacheService + +CacheService - + CacheWrapperModule->CacheService - - + + OauthModule->AuthenticationModule - - + + - + OauthModule->OauthApiModule - + HydraSsoService HydraSsoService - + OauthModule->HydraSsoService - - + + - + OAuthService OAuthService - + OauthModule->OAuthService - - + + - + OauthModule->UserLoginMigrationApiModule - - + + @@ -2067,152 +2067,152 @@ RoleModule->AuthenticationModule - - + + - + RoleModule->UserModule - - + + - + RoleModule->CollaborativeStorageModule - + GroupApiModule - -GroupApiModule + +GroupApiModule - + RoleModule->GroupApiModule - - + + - + RoleModule->ProvisioningModule - + RoleRepo - -RoleRepo + +RoleRepo - + RoleModule->RoleRepo - - + + - + RoleService - -RoleService + +RoleService - + RoleModule->RoleService - - + + - + RoleUc - -RoleUc + +RoleUc - + RoleModule->RoleUc - - + + SystemModule->AuthenticationModule - - + + - + SystemModule->OauthModule - + SystemModule->GroupApiModule - - + + - + SystemModule->KeycloakConfigurationModule - - + + - + SystemModule->UserLoginMigrationModule - - + + - + SystemModule->ProvisioningModule - - + + - + SystemModule->OauthApiModule - - + + - + SystemApiModule SystemApiModule - + SystemModule->SystemApiModule - - + + - + SystemOidcService - -SystemOidcService + +SystemOidcService - + SystemModule->SystemOidcService - - + + - + SystemService - -SystemService + +SystemService - + SystemModule->SystemService - - + + @@ -2223,8 +2223,8 @@ AuthenticationService->AuthenticationModule - - + + @@ -2235,7 +2235,7 @@ JwtStrategy->AuthenticationModule - + @@ -2247,7 +2247,7 @@ JwtValidationAdapter->AuthenticationModule - + @@ -2259,7 +2259,7 @@ LdapService->AuthenticationModule - + @@ -2287,22 +2287,22 @@ - + LegacySchoolRepo->AuthorizationReferenceModule - - + + - + LegacySchoolRepo->LegacySchoolModule - - + + - + LegacySchoolRepo->ImportUserModule - - + + @@ -2313,8 +2313,8 @@ LocalStrategy->AuthenticationModule - - + + @@ -2325,8 +2325,8 @@ Oauth2Strategy->AuthenticationModule - - + + @@ -2337,5450 +2337,5462 @@ FeathersModule->AuthorizationModule - - + + - + FeathersServiceProvider - -FeathersServiceProvider + +FeathersServiceProvider - + FeathersModule->FeathersServiceProvider - - + + - + AuthorizationModule->OauthModule - - + + AuthorizationService - -AuthorizationService + +AuthorizationService AuthorizationModule->AuthorizationService - - + + FeathersAuthorizationService - -FeathersAuthorizationService + +FeathersAuthorizationService AuthorizationModule->FeathersAuthorizationService - - + + - + AuthorizationModule->AuthorizationReferenceModule - - + + - + AuthorizationModule->CollaborativeStorageModule - + - + AuthorizationModule->FilesStorageModule - - + + - + AuthorizationModule->FilesStorageTestModule - - + + - + AuthorizationModule->FwuLearningContentsModule - - + + - + AuthorizationModule->FwuLearningContentsTestModule - - + + - + AuthorizationModule->GroupApiModule - - + + - + AuthorizationModule->H5PEditorModule - - + + - + AuthorizationModule->H5PEditorTestModule - - + + - + AuthorizationModule->ImportUserModule - - + + - + AuthorizationModule->LearnroomApiModule - - + + - + AuthorizationModule->LegacySchoolApiModule - - + + - + LessonApiModule LessonApiModule - + AuthorizationModule->LessonApiModule - + - + AuthorizationModule->ManagementModule - - + + - + AuthorizationModule->NewsModule - - + + - + AuthorizationModule->OauthApiModule - + - + AuthorizationModule->OauthProviderApiModule - - + + - + PseudonymApiModule PseudonymApiModule - + AuthorizationModule->PseudonymApiModule - - + + - + AuthorizationModule->SharingApiModule - - + + - + TaskApiModule TaskApiModule - + AuthorizationModule->TaskApiModule - - + + - + AuthorizationModule->ToolApiModule - - + + - + AuthorizationModule->UserLoginMigrationApiModule - - + + - + VideoConferenceApiModule VideoConferenceApiModule - + AuthorizationModule->VideoConferenceApiModule - - + + - + AuthorizationModule->SharingModule - - + + - + AuthorizationModule->VideoConferenceModule - - + + AuthorizationHelper - -AuthorizationHelper + +AuthorizationHelper AuthorizationHelper->AuthorizationModule - - + + - + AuthorizationHelper->AuthorizationReferenceModule - - + + AuthorizationService - -AuthorizationService + +AuthorizationService AuthorizationService->AuthorizationModule - - + + BoardDoRule - -BoardDoRule + +BoardDoRule BoardDoRule->AuthorizationModule - - + + ContextExternalToolRule - -ContextExternalToolRule + +ContextExternalToolRule ContextExternalToolRule->AuthorizationModule - - + + CourseGroupRule - -CourseGroupRule + +CourseGroupRule CourseGroupRule->AuthorizationModule - - + + CourseRule - -CourseRule + +CourseRule CourseRule->AuthorizationModule - - + + FeathersAuthProvider - -FeathersAuthProvider + +FeathersAuthProvider FeathersAuthProvider->AuthorizationModule - - + + FeathersAuthorizationService - -FeathersAuthorizationService + +FeathersAuthorizationService FeathersAuthorizationService->AuthorizationModule - - + + - + +GroupRule + +GroupRule + + + +GroupRule->AuthorizationModule + + + + + LegacySchoolRule - -LegacySchoolRule + +LegacySchoolRule - + LegacySchoolRule->AuthorizationModule - - + + - + LessonRule - -LessonRule + +LessonRule - + LessonRule->AuthorizationModule - - + + - + RuleManager - -RuleManager + +RuleManager - + RuleManager->AuthorizationModule - - + + - + SchoolExternalToolRule - -SchoolExternalToolRule + +SchoolExternalToolRule - + SchoolExternalToolRule->AuthorizationModule - - + + - + SubmissionRule - -SubmissionRule + +SubmissionRule - + SubmissionRule->AuthorizationModule - - + + - + TaskRule - -TaskRule + +TaskRule - + TaskRule->AuthorizationModule - - + + - + TeamRule - -TeamRule + +TeamRule - + TeamRule->AuthorizationModule - - + + - + UserLoginMigrationRule - -UserLoginMigrationRule + +UserLoginMigrationRule - + UserLoginMigrationRule->AuthorizationModule - - + + - + UserRule - -UserRule + +UserRule - + UserRule->AuthorizationModule - - + + - + AuthorizationReferenceService - -AuthorizationReferenceService + +AuthorizationReferenceService - + AuthorizationReferenceModule->AuthorizationReferenceService - - + + - + AuthorizationReferenceModule->FilesStorageApiModule - - + + - + AuthorizationReferenceModule->LearnroomApiModule - - + + - + AuthorizationReferenceModule->SharingApiModule - - + + - + AuthorizationReferenceModule->SharingModule - - + + - + AuthorizationReferenceModule->VideoConferenceModule - - + + - + AuthorizationReferenceService - -AuthorizationReferenceService + +AuthorizationReferenceService - + AuthorizationReferenceService->AuthorizationReferenceModule - - + + - + CourseGroupRepo - -CourseGroupRepo + +CourseGroupRepo - + CourseGroupRepo->AuthorizationReferenceModule - - + + - + CourseRepo - -CourseRepo + +CourseRepo - + CourseRepo->AuthorizationReferenceModule - - + + - + CourseRepo->BoardModule - - + + - + CourseRepo->LearnroomModule - - + + - + CourseRepo->LearnroomApiModule - - + + - + TaskModule - -TaskModule + +TaskModule - + CourseRepo->TaskModule - - + + - + CourseRepo->TaskApiModule - - + + - + LessonRepo - -LessonRepo + +LessonRepo - + LessonRepo->AuthorizationReferenceModule - - + + - + LessonRepo->LearnroomModule - - + + - + LessonRepo->LessonModule - - + + - + LessonRepo->LearnroomApiModule - - + + - + LessonRepo->TaskModule - - + + - + LessonRepo->TaskApiModule - - + + - + ReferenceLoader - -ReferenceLoader + +ReferenceLoader - + ReferenceLoader->AuthorizationReferenceModule - - + + - + SchoolExternalToolRepo - -SchoolExternalToolRepo + +SchoolExternalToolRepo - + SchoolExternalToolRepo->AuthorizationReferenceModule - - + + - + SchoolExternalToolRepo->CommonToolModule - - + + - + SubmissionRepo - -SubmissionRepo + +SubmissionRepo - + SubmissionRepo->AuthorizationReferenceModule - - + + - + SubmissionRepo->TaskModule - - + + - + TaskRepo - -TaskRepo + +TaskRepo - + TaskRepo->AuthorizationReferenceModule - - + + - + TaskRepo->TaskModule - - + + - + TaskRepo->TaskApiModule - - + + - + TeamsRepo - -TeamsRepo + +TeamsRepo - + TeamsRepo->AuthorizationReferenceModule - - + + - + TeamsRepo->CollaborativeStorageModule - + - + TeamsRepo->OauthProviderModule - - + + - + TeamsModule - -TeamsModule + +TeamsModule - + TeamsRepo->TeamsModule - - + + - + TeamsRepo->VideoConferenceModule - - + + - + BoardModule->BoardApiModule - + BoardDoAuthorizableService BoardDoAuthorizableService - + BoardModule->BoardDoAuthorizableService - - + + - + CardService CardService - + BoardModule->CardService - - + + - + ColumnBoardCopyService ColumnBoardCopyService - + BoardModule->ColumnBoardCopyService - + ColumnBoardService ColumnBoardService - + BoardModule->ColumnBoardService - + ColumnService ColumnService - + BoardModule->ColumnService - + ContentElementService ContentElementService - + BoardModule->ContentElementService - + SubmissionItemService SubmissionItemService - + BoardModule->SubmissionItemService - + BoardModule->LearnroomModule - - + + - + BoardApiModule->ServerModule - - + + - + BoardApiModule->ServerTestModule - - + + - + BoardUc BoardUc - + BoardUc->BoardApiModule - + CardUc CardUc - + CardUc->BoardApiModule - + ElementUc ElementUc - + ElementUc->BoardApiModule - + SubmissionItemUc SubmissionItemUc - + SubmissionItemUc->BoardApiModule - + ConsoleWriterModule ConsoleWriterModule - + ConsoleWriterModule->BoardModule - - + + - + ConsoleWriterService - -ConsoleWriterService + +ConsoleWriterService - + ConsoleWriterModule->ConsoleWriterService - - + + - + ConsoleWriterModule->KeycloakConfigurationModule - - + + - + ServerConsoleModule - -ServerConsoleModule + +ServerConsoleModule - + ConsoleWriterModule->ServerConsoleModule - - + + - + FilesStorageClientModule->BoardModule - - + + - + CopyFilesService CopyFilesService - + FilesStorageClientModule->CopyFilesService - - + + - + FilesStorageClientAdapterService FilesStorageClientAdapterService - + FilesStorageClientModule->FilesStorageClientAdapterService - - + + - + FilesStorageClientModule->LessonModule - - + + - + FilesStorageClientModule->TaskModule - - + + - + FilesStorageClientModule->ServerModule - - + + - + FilesStorageClientModule->ServerTestModule - + UserModule->OauthModule - + UserModule->BoardModule - - + + - + PseudonymModule PseudonymModule - + UserModule->PseudonymModule - - + + - + UserModule->CollaborativeStorageAdapterModule - + - + UserModule->GroupApiModule - - + + - + UserModule->UserLoginMigrationModule - - + + - + UserModule->ProvisioningModule - + UserModule->OauthApiModule - + - + UserModule->OauthProviderModule - - + + - + UserModule->OauthProviderApiModule - - + + - + UserModule->ToolApiModule - - + + - + UserApiModule UserApiModule - + UserModule->UserApiModule - + UserModule->VideoConferenceApiModule - - + + - + ToolLaunchModule - -ToolLaunchModule + +ToolLaunchModule - + UserModule->ToolLaunchModule - - + + - + UserRepo UserRepo - + UserModule->UserRepo - - + + - + UserService UserService - + UserModule->UserService - - + + - + UserModule->VideoConferenceModule - - + + - + UserModule->VideoConferenceModule - - + + - + BoardDoAuthorizableService BoardDoAuthorizableService - + BoardDoAuthorizableService->BoardModule - - + + - + BoardDoCopyService BoardDoCopyService - + BoardDoCopyService->BoardModule - - + + - + BoardDoRepo BoardDoRepo - + BoardDoRepo->BoardModule - + BoardDoService BoardDoService - + BoardDoService->BoardModule - + - + BoardNodeRepo BoardNodeRepo - + BoardNodeRepo->BoardModule - + CardService CardService - + CardService->BoardModule - + ColumnBoardCopyService ColumnBoardCopyService - + ColumnBoardCopyService->BoardModule - - + + - + ColumnBoardService ColumnBoardService - + ColumnBoardService->BoardModule - - + + - + ColumnService ColumnService - + ColumnService->BoardModule - - + + - + ContentElementFactory ContentElementFactory - + ContentElementFactory->BoardModule - - + + - + ContentElementService ContentElementService - + ContentElementService->BoardModule - + OpenGraphProxyService OpenGraphProxyService - + OpenGraphProxyService->BoardModule - - + + - + RecursiveDeleteVisitor RecursiveDeleteVisitor - + RecursiveDeleteVisitor->BoardModule - - + + - + SchoolSpecificFileCopyServiceFactory SchoolSpecificFileCopyServiceFactory - + SchoolSpecificFileCopyServiceFactory->BoardModule - + - + SubmissionItemService SubmissionItemService - + SubmissionItemService->BoardModule - - + + - + CacheService - -CacheService + +CacheService - + CacheService->CacheWrapperModule - - + + - + CalendarService - -CalendarService + +CalendarService - + CalendarModule - -CalendarModule + +CalendarModule - + CalendarModule->CalendarService - - + + - + CalendarModule->VideoConferenceModule - - + + - + CalendarMapper - -CalendarMapper + +CalendarMapper - + CalendarMapper->CalendarModule - - + + - + CalendarService - -CalendarService + +CalendarService - + CalendarService->CalendarModule - - + + - + ClassService - -ClassService + +ClassService - + ClassModule - -ClassModule + +ClassModule - + ClassModule->ClassService - - + + - + ClassModule->GroupApiModule - - + + - + ClassService - -ClassService + +ClassService - + ClassService->ClassModule - - + + - + ClassesRepo - -ClassesRepo + +ClassesRepo - + ClassesRepo->ClassModule - - + + - + PseudonymModule->CollaborativeStorageAdapterModule - + PseudonymModule->OauthProviderModule - - + + - + PseudonymModule->OauthProviderApiModule - - + + - + PseudonymModule->PseudonymApiModule - + FeathersRosterService FeathersRosterService - + PseudonymModule->FeathersRosterService - - + + - + PseudonymService PseudonymService - + PseudonymModule->PseudonymService - - + + - + ToolModule ToolModule - + ToolModule->CollaborativeStorageAdapterModule - + CommonToolService CommonToolService - + ToolModule->CommonToolService - + ToolModule->OauthProviderModule - - + + - + ToolModule->ToolApiModule - - + + - + ContextExternalToolModule - -ContextExternalToolModule + +ContextExternalToolModule - + ToolModule->ContextExternalToolModule - - + + - + ExternalToolModule - -ExternalToolModule + +ExternalToolModule - + ToolModule->ExternalToolModule - - + + - + SchoolExternalToolModule - -SchoolExternalToolModule + +SchoolExternalToolModule - + ToolModule->SchoolExternalToolModule - - + + - + ToolLaunchModule - -ToolLaunchModule + +ToolLaunchModule - + ToolModule->ToolLaunchModule - - + + - + CollaborativeStorageAdapter CollaborativeStorageAdapter - + CollaborativeStorageAdapterModule->CollaborativeStorageAdapter - + CollaborativeStorageAdapterModule->CollaborativeStorageModule - - + + - + CollaborativeStorageAdapter CollaborativeStorageAdapter - + CollaborativeStorageAdapter->CollaborativeStorageAdapterModule - + CollaborativeStorageAdapterMapper CollaborativeStorageAdapterMapper - + CollaborativeStorageAdapterMapper->CollaborativeStorageAdapterModule - + LtiToolRepo LtiToolRepo - + LtiToolRepo->OauthModule - - + + - + LtiToolRepo->CollaborativeStorageAdapterModule - + LtiToolModule - -LtiToolModule + +LtiToolModule - + LtiToolRepo->LtiToolModule - - + + - + LtiToolRepo->ToolApiModule - - + + - + NextcloudClient NextcloudClient - + NextcloudClient->CollaborativeStorageAdapterModule - + NextcloudStrategy NextcloudStrategy - + NextcloudStrategy->CollaborativeStorageAdapterModule - + CollaborativeStorageUc CollaborativeStorageUc - + CollaborativeStorageModule->CollaborativeStorageUc - + CollaborativeStorageModule->ServerModule - - + + - + CollaborativeStorageModule->ServerTestModule - + CollaborativeStorageService CollaborativeStorageService - + CollaborativeStorageService->CollaborativeStorageModule - + CollaborativeStorageUc CollaborativeStorageUc - + CollaborativeStorageUc->CollaborativeStorageModule - + TeamMapper TeamMapper - + TeamMapper->CollaborativeStorageModule - + TeamPermissionsMapper TeamPermissionsMapper - + TeamPermissionsMapper->CollaborativeStorageModule - + LearnroomModule->PseudonymModule - - + + - + LearnroomModule->CommonToolModule - - + + - + LearnroomModule->LearnroomApiModule - - + + - + CommonCartridgeExportService - -CommonCartridgeExportService + +CommonCartridgeExportService - + LearnroomModule->CommonCartridgeExportService - - + + - + CourseCopyService - -CourseCopyService + +CourseCopyService - + LearnroomModule->CourseCopyService - - + + - + CourseService - -CourseService + +CourseService - + LearnroomModule->CourseService - - + + - + RoomsService - -RoomsService + +RoomsService - + LearnroomModule->RoomsService - - + + - + LearnroomModule->SharingApiModule - - + + - + LearnroomModule->SharingModule - - + + - + LearnroomModule->ToolLaunchModule - - + + - + LearnroomModule->VideoConferenceModule - - + + - + LegacySchoolModule->OauthModule - + - + LegacySchoolModule->UserModule - - + + - + LegacySchoolModule->CommonToolModule - - + + - + LegacySchoolModule->GroupApiModule - - + + - + LegacySchoolModule->ImportUserModule - - + + - + LegacySchoolModule->UserLoginMigrationModule - - + + - + LegacySchoolModule->LegacySchoolApiModule - - + + - + FederalStateService - -FederalStateService + +FederalStateService - + LegacySchoolModule->FederalStateService - - + + - + LegacySchoolService - -LegacySchoolService + +LegacySchoolService - + LegacySchoolModule->LegacySchoolService - - + + - + SchoolYearService - -SchoolYearService + +SchoolYearService - + LegacySchoolModule->SchoolYearService - - + + - + LegacySchoolModule->ProvisioningModule - - + + - + LegacySchoolModule->OauthApiModule - + LegacySchoolModule->PseudonymApiModule - - + + - + LegacySchoolModule->ToolApiModule - - + + - + LegacySchoolModule->UserLoginMigrationApiModule - - + + - + LegacySchoolModule->ToolLaunchModule - - + + - + LegacySchoolModule->VideoConferenceModule - - + + - + CommonToolModule->CommonToolService - + CommonToolValidationService CommonToolValidationService - + CommonToolModule->CommonToolValidationService - + ContextExternalToolRepo ContextExternalToolRepo - + CommonToolModule->ContextExternalToolRepo - + SchoolExternalToolRepo SchoolExternalToolRepo - + CommonToolModule->SchoolExternalToolRepo - + ToolPermissionHelper ToolPermissionHelper - + CommonToolModule->ToolPermissionHelper - + CommonToolModule->ExternalToolModule - - + + - + SchoolExternalToolModule - -SchoolExternalToolModule + +SchoolExternalToolModule - + CommonToolModule->SchoolExternalToolModule - - + + - + CommonToolModule->ContextExternalToolModule - - + + - + CommonToolModule->ToolApiModule - - + + - + CommonToolModule->ToolLaunchModule - - + + - + CommonToolService CommonToolService - + CommonToolService->ToolModule - + CommonToolService->CommonToolModule - + CommonToolValidationService CommonToolValidationService - + CommonToolValidationService->CommonToolModule - + ContextExternalToolRepo ContextExternalToolRepo - + ContextExternalToolRepo->CommonToolModule - + ToolPermissionHelper ToolPermissionHelper - + ToolPermissionHelper->CommonToolModule - + ConsoleWriterService - -ConsoleWriterService + +ConsoleWriterService - + ConsoleWriterService->ConsoleWriterModule - - + + - + ConsoleWriterService->ManagementModule - - + + - + ExternalToolModule->ToolModule - - + + - + ExternalToolModule->SchoolExternalToolModule - - + + - + ExternalToolModule->ContextExternalToolModule - - + + - + ExternalToolConfigurationService - -ExternalToolConfigurationService + +ExternalToolConfigurationService - + ExternalToolModule->ExternalToolConfigurationService - - + + - + ExternalToolLogoService - -ExternalToolLogoService + +ExternalToolLogoService - + ExternalToolModule->ExternalToolLogoService - - + + - + ExternalToolService - -ExternalToolService + +ExternalToolService - + ExternalToolModule->ExternalToolService - - + + - + ExternalToolValidationService - -ExternalToolValidationService + +ExternalToolValidationService - + ExternalToolModule->ExternalToolValidationService - - + + - + ExternalToolVersionService - -ExternalToolVersionService + +ExternalToolVersionService - + ExternalToolModule->ExternalToolVersionService - - + + - + ExternalToolModule->ToolLaunchModule - - + + - + SchoolExternalToolModule->ToolModule - - + + - + SchoolExternalToolModule->ContextExternalToolModule - - + + - + SchoolExternalToolService - -SchoolExternalToolService + +SchoolExternalToolService - + SchoolExternalToolModule->SchoolExternalToolService - - + + - + SchoolExternalToolValidationService - -SchoolExternalToolValidationService + +SchoolExternalToolValidationService - + SchoolExternalToolModule->SchoolExternalToolValidationService - - + + - + SchoolExternalToolModule->ToolLaunchModule - - + + - + ContextExternalToolModule->ToolModule - - + + - + ContextExternalToolAuthorizableService - -ContextExternalToolAuthorizableService + +ContextExternalToolAuthorizableService - + ContextExternalToolModule->ContextExternalToolAuthorizableService - - + + - + ContextExternalToolService - -ContextExternalToolService + +ContextExternalToolService - + ContextExternalToolModule->ContextExternalToolService - - + + - + ContextExternalToolValidationService - -ContextExternalToolValidationService + +ContextExternalToolValidationService - + ContextExternalToolModule->ContextExternalToolValidationService - - + + - + ToolReferenceService - -ToolReferenceService + +ToolReferenceService - + ContextExternalToolModule->ToolReferenceService - - + + - + ContextExternalToolModule->ToolLaunchModule - - + + - + ContextExternalToolAuthorizableService - -ContextExternalToolAuthorizableService + +ContextExternalToolAuthorizableService - + ContextExternalToolAuthorizableService->ContextExternalToolModule - - + + - + ContextExternalToolService - -ContextExternalToolService + +ContextExternalToolService - + ContextExternalToolService->ContextExternalToolModule - - + + - + ContextExternalToolValidationService - -ContextExternalToolValidationService + +ContextExternalToolValidationService - + ContextExternalToolValidationService->ContextExternalToolModule - - + + - + ToolReferenceService - -ToolReferenceService + +ToolReferenceService - + ToolReferenceService->ContextExternalToolModule - - + + - + CopyHelperService - -CopyHelperService + +CopyHelperService - + CopyHelperModule - -CopyHelperModule + +CopyHelperModule - + CopyHelperModule->FilesStorageClientModule - - + + - + CopyHelperModule->LearnroomModule - - + + - + CopyHelperModule->CopyHelperService - - + + - + CopyHelperModule->LessonModule - - + + - + CopyHelperModule->LearnroomApiModule - - + + - + CopyHelperModule->TaskModule - - + + - + CopyHelperModule->TaskApiModule - - + + - + CopyHelperService - -CopyHelperService + +CopyHelperService - + CopyHelperService->CopyHelperModule - - + + - + ErrorModule->CoreModule - - + + - + InterceptorModule - -InterceptorModule + +InterceptorModule - + InterceptorModule->CoreModule - - + + - + ValidationModule - -ValidationModule + +ValidationModule - + ValidationModule->CoreModule - - + + - + LoggerModule - -LoggerModule + +LoggerModule - + CoreModule->LoggerModule - - + + - + CoreModule->FilesStorageModule - - + + - + CoreModule->FilesStorageAMQPModule - - + + - + CoreModule->FilesStorageApiModule - - + + - + CoreModule->FilesStorageTestModule - - + + - + CoreModule->FwuLearningContentsModule - - + + - + CoreModule->FwuLearningContentsTestModule - - + + - + CoreModule->H5PEditorModule - - + + - + CoreModule->H5PEditorTestModule - - + + - + CoreModule->ManagementModule - - + + - + CoreModule->ServerModule - - + + - + CoreModule->ServerTestModule - - + + - + DatabaseManagementService - -DatabaseManagementService + +DatabaseManagementService - + DatabaseManagementModule - -DatabaseManagementModule + +DatabaseManagementModule - + DatabaseManagementModule->DatabaseManagementService - - + + - + DatabaseManagementService - -DatabaseManagementService + +DatabaseManagementService - + DatabaseManagementService->DatabaseManagementModule - - + + - + DatabaseManagementService->ManagementModule - - + + - + EncryptionModule->IdentityManagementModule - - + + - + EncryptionModule->OauthModule - - + + - + EncryptionModule->ExternalToolModule - - + + - + EncryptionModule->KeycloakModule - - + + - + EncryptionModule->KeycloakConfigurationModule - - + + - + OauthProviderServiceModule - -OauthProviderServiceModule + +OauthProviderServiceModule - + OauthProviderServiceModule->ExternalToolModule - - + + - + OauthProviderServiceModule->OauthProviderModule - - + + - + OauthProviderServiceModule->OauthProviderApiModule - - + + - + OauthProviderService - -OauthProviderService + +OauthProviderService - + OauthProviderServiceModule->OauthProviderService - - + + - + ToolConfigModule - -ToolConfigModule + +ToolConfigModule - + ToolConfigModule->ToolModule - - + + - + ToolConfigModule->ExternalToolModule - - + + - + ToolConfigModule->OauthProviderModule - - + + - + ToolConfigModule->ToolApiModule - - + + - + ExternalToolConfigurationService - -ExternalToolConfigurationService + +ExternalToolConfigurationService - + ExternalToolConfigurationService->ExternalToolModule - - + + - + ExternalToolConfigurationService->ToolApiModule - - + + - + ExternalToolParameterValidationService - -ExternalToolParameterValidationService + +ExternalToolParameterValidationService - + ExternalToolParameterValidationService->ExternalToolModule - - + + - + ExternalToolRepo - -ExternalToolRepo + +ExternalToolRepo - + ExternalToolRepo->ExternalToolModule - - + + - + ExternalToolService - -ExternalToolService + +ExternalToolService - + ExternalToolService->ExternalToolModule - - + + - + ExternalToolServiceMapper - -ExternalToolServiceMapper + +ExternalToolServiceMapper - + ExternalToolServiceMapper->ExternalToolModule - - + + - + ExternalToolValidationService - -ExternalToolValidationService + +ExternalToolValidationService - + ExternalToolValidationService->ExternalToolModule - - + + - + ExternalToolVersionService - -ExternalToolVersionService + +ExternalToolVersionService - + ExternalToolVersionService->ExternalToolModule - - + + - + FeathersServiceProvider - -FeathersServiceProvider + +FeathersServiceProvider - + FeathersServiceProvider->FeathersModule - - + + - + FeathersServiceProvider->LessonModule - - + + - + FilesModule->ServerConsoleModule - - + + - + DeleteFilesUc - -DeleteFilesUc + +DeleteFilesUc - + DeleteFilesUc->FilesModule - - + + - + FilesRepo - -FilesRepo + +FilesRepo - + FilesRepo->FilesModule - - + + - + StorageProviderRepo - -StorageProviderRepo + +StorageProviderRepo - + StorageProviderRepo->FilesModule - - + + - + FilesStorageModule->FilesStorageAMQPModule - - + + - + FilesStorageModule->FilesStorageApiModule - - + + - + FilesStorageService - -FilesStorageService + +FilesStorageService - + FilesStorageModule->FilesStorageService - - + + - + PreviewService - -PreviewService + +PreviewService - + FilesStorageModule->PreviewService - - + + - + FilesStorageConsumer - -FilesStorageConsumer + +FilesStorageConsumer - + FilesStorageConsumer->FilesStorageAMQPModule - - + + - + FilesStorageApiModule->FilesStorageModule - - + + - + FilesStorageApiModule->FilesStorageTestModule - - + + - + FilesStorageApiModule->ManagementModule - - + + - + FilesStorageUC - -FilesStorageUC + +FilesStorageUC - + FilesStorageUC->FilesStorageApiModule - - + + - + CopyFilesService - -CopyFilesService + +CopyFilesService - + CopyFilesService->FilesStorageClientModule - - + + - + FilesStorageClientAdapterService - -FilesStorageClientAdapterService + +FilesStorageClientAdapterService - + FilesStorageClientAdapterService->FilesStorageClientModule - - + + - + FilesStorageProducer - -FilesStorageProducer + +FilesStorageProducer - + FilesStorageProducer->FilesStorageClientModule - - + + - + RabbitMQWrapperModule - -RabbitMQWrapperModule + +RabbitMQWrapperModule - + RabbitMQWrapperModule->FilesStorageModule - - + + - + RabbitMQWrapperModule->FwuLearningContentsModule - - + + - + RabbitMQWrapperModule->ServerModule - - + + - + RabbitMQWrapperTestModule - -RabbitMQWrapperTestModule + +RabbitMQWrapperTestModule - + RabbitMQWrapperTestModule->FilesStorageModule - - + + - + RabbitMQWrapperTestModule->FilesStorageTestModule - - + + - + RabbitMQWrapperTestModule->FwuLearningContentsTestModule - - + + - + RabbitMQWrapperTestModule->H5PEditorTestModule - - + + - + RabbitMQWrapperTestModule->ManagementModule - - + + - + RabbitMQWrapperTestModule->ServerTestModule - - + + - + FileRecordRepo - -FileRecordRepo + +FileRecordRepo - + FileRecordRepo->FilesStorageModule - - + + - + FilesStorageService - -FilesStorageService + +FilesStorageService - + FilesStorageService->FilesStorageModule - - + + - + PreviewService - -PreviewService + +PreviewService - + PreviewService->FilesStorageModule - - + + - + MongoMemoryDatabaseModule - -MongoMemoryDatabaseModule + +MongoMemoryDatabaseModule - + MongoMemoryDatabaseModule->FilesStorageTestModule - - + + - + MongoMemoryDatabaseModule->FwuLearningContentsTestModule - - + + - + MongoMemoryDatabaseModule->H5PEditorTestModule - - + + - + ManagementServerTestModule - -ManagementServerTestModule + +ManagementServerTestModule - + MongoMemoryDatabaseModule->ManagementServerTestModule - - + + - + MongoMemoryDatabaseModule->ServerTestModule - - + + - + FileSystemAdapter - -FileSystemAdapter + +FileSystemAdapter - + FileSystemModule - -FileSystemModule + +FileSystemModule - + FileSystemModule->FileSystemAdapter - - + + - + FileSystemAdapter - -FileSystemAdapter + +FileSystemAdapter - + FileSystemAdapter->FileSystemModule - - + + - + S3ClientModule - -S3ClientModule + +S3ClientModule - + S3ClientModule->FwuLearningContentsModule - - + + - + S3ClientModule->FwuLearningContentsTestModule - - + + - + FwuLearningContentsUc - -FwuLearningContentsUc + +FwuLearningContentsUc - + FwuLearningContentsUc->FwuLearningContentsModule - - + + - + FwuLearningContentsUc->FwuLearningContentsTestModule - - + + - + GroupModule - -GroupModule + +GroupModule - + GroupModule->GroupApiModule - - + + - + GroupService - -GroupService + +GroupService - + GroupModule->GroupService - - + + - + GroupModule->ProvisioningModule - - + + - + GroupApiModule->ServerModule - - + + - + GroupApiModule->ServerTestModule - - + + - + GroupUc - -GroupUc + +GroupUc - + GroupUc->GroupApiModule - - + + - + GroupRepo - -GroupRepo + +GroupRepo - + GroupRepo->GroupModule - - + + - + GroupService - -GroupService + +GroupService - + GroupService->GroupModule - - + + - + H5PEditorModule->H5PEditorTestModule - - + + - + Logger - -Logger + +Logger - + Logger->LoggerModule - - + + - + Logger->H5PEditorModule - - + + - + KeycloakAdministrationModule - -KeycloakAdministrationModule + +KeycloakAdministrationModule - + KeycloakAdministrationModule->IdentityManagementModule - + - + KeycloakAdministrationModule->KeycloakModule - - + + - + KeycloakAdministrationService - -KeycloakAdministrationService + +KeycloakAdministrationService - + KeycloakAdministrationModule->KeycloakAdministrationService - - + + - + KeycloakAdministrationModule->KeycloakConfigurationModule - - + + - + KeycloakModule->IdentityManagementModule - + - + KeycloakIdentityManagementOauthService - -KeycloakIdentityManagementOauthService + +KeycloakIdentityManagementOauthService - + KeycloakModule->KeycloakIdentityManagementOauthService - - + + - + KeycloakIdentityManagementService - -KeycloakIdentityManagementService + +KeycloakIdentityManagementService - + KeycloakModule->KeycloakIdentityManagementService - - + + - + ImportUserModule->ServerModule - - + + - + ImportUserModule->ServerTestModule - - + + - + ImportUserRepo - -ImportUserRepo + +ImportUserRepo - + ImportUserRepo->ImportUserModule - - + + - + UserImportUc - -UserImportUc + +UserImportUc - + UserImportUc->ImportUserModule - - + + - + KeycloakAdministrationService - -KeycloakAdministrationService + +KeycloakAdministrationService - + KeycloakAdministrationService->KeycloakAdministrationModule - - + + - + KeycloakConfigurationService - -KeycloakConfigurationService + +KeycloakConfigurationService - + KeycloakConfigurationModule->KeycloakConfigurationService - - + + - + KeycloakConsole - -KeycloakConsole + +KeycloakConsole - + KeycloakConfigurationModule->KeycloakConsole - - + + - + KeycloakSeedService - -KeycloakSeedService + +KeycloakSeedService - + KeycloakConfigurationModule->KeycloakSeedService - - + + - + KeycloakConfigurationService - -KeycloakConfigurationService + +KeycloakConfigurationService - + KeycloakConfigurationService->KeycloakConfigurationModule - - + + - + KeycloakConfigurationUc - -KeycloakConfigurationUc + +KeycloakConfigurationUc - + KeycloakConfigurationUc->KeycloakConfigurationModule - - + + - + KeycloakMigrationService - -KeycloakMigrationService + +KeycloakMigrationService - + KeycloakMigrationService->KeycloakConfigurationModule - - + + - + KeycloakIdentityManagementOauthService - -KeycloakIdentityManagementOauthService + +KeycloakIdentityManagementOauthService - + KeycloakIdentityManagementOauthService->KeycloakModule - - + + - + KeycloakIdentityManagementService - -KeycloakIdentityManagementService + +KeycloakIdentityManagementService - + KeycloakIdentityManagementService->KeycloakModule - - + + - + LessonModule->LearnroomModule - - + + - + LessonModule->LearnroomApiModule - - + + - + LessonModule->LessonApiModule - + - + LessonCopyService - -LessonCopyService + +LessonCopyService - + LessonModule->LessonCopyService - - + + - + LessonService - -LessonService + +LessonService - + LessonModule->LessonService - - + + - + LessonModule->SharingApiModule - + - + LessonModule->SharingModule - + - + LearnroomApiModule->ServerModule - - + + - + LearnroomApiModule->ServerTestModule - - + + - + BoardRepo - -BoardRepo + +BoardRepo - + BoardRepo->LearnroomModule - - + + - + BoardRepo->LearnroomApiModule - - + + - + CourseCopyUC - -CourseCopyUC + +CourseCopyUC - + CourseCopyUC->LearnroomApiModule - - + + - + CourseExportUc - -CourseExportUc + +CourseExportUc - + CourseExportUc->LearnroomApiModule - - + + - + CourseUc - -CourseUc + +CourseUc - + CourseUc->LearnroomApiModule - - + + - + DashboardModelMapper - -DashboardModelMapper + +DashboardModelMapper - + DashboardModelMapper->LearnroomModule - - + + - + DashboardModelMapper->LearnroomApiModule - - + + - + DashboardUc - -DashboardUc + +DashboardUc - + DashboardUc->LearnroomApiModule - - + + - + LessonCopyUC - -LessonCopyUC + +LessonCopyUC - + LessonCopyUC->LearnroomApiModule - - + + - + RoomBoardDTOFactory - -RoomBoardDTOFactory + +RoomBoardDTOFactory - + RoomBoardDTOFactory->LearnroomApiModule - - + + - + RoomBoardResponseMapper - -RoomBoardResponseMapper + +RoomBoardResponseMapper - + RoomBoardResponseMapper->LearnroomApiModule - - + + - + RoomsAuthorisationService - -RoomsAuthorisationService + +RoomsAuthorisationService - + RoomsAuthorisationService->LearnroomApiModule - - + + - + RoomsUc - -RoomsUc + +RoomsUc - + RoomsUc->LearnroomApiModule - - + + - + TaskModule->LearnroomModule - - + + - + TaskModule->LessonModule - - + + - + TaskModule->SharingApiModule - + - + TaskModule->TaskApiModule - - + + - + TaskModule->SharingModule - + - + SubmissionService - -SubmissionService + +SubmissionService - + TaskModule->SubmissionService - - + + - + TaskCopyService - -TaskCopyService + +TaskCopyService - + TaskModule->TaskCopyService - - + + - + TaskService - -TaskService + +TaskService - + TaskModule->TaskService - - + + - + BoardCopyService - -BoardCopyService + +BoardCopyService - + BoardCopyService->LearnroomModule - - + + - + ColumnBoardTargetService - -ColumnBoardTargetService + +ColumnBoardTargetService - + ColumnBoardTargetService->LearnroomModule - - + + - + CommonCartridgeExportService - -CommonCartridgeExportService + +CommonCartridgeExportService - + CommonCartridgeExportService->LearnroomModule - - + + - + CourseCopyService - -CourseCopyService + +CourseCopyService - + CourseCopyService->LearnroomModule - - + + - + CourseService - -CourseService + +CourseService - + CourseService->LearnroomModule - - + + - + RoomsService - -RoomsService + +RoomsService - + RoomsService->LearnroomModule - - + + - + UserLoginMigrationModule->OauthModule - + - + UserLoginMigrationModule->LegacySchoolApiModule - - + + - + UserLoginMigrationModule->OauthApiModule - + UserLoginMigrationModule->UserLoginMigrationApiModule - - + + - + MigrationCheckService - -MigrationCheckService + +MigrationCheckService - + UserLoginMigrationModule->MigrationCheckService - - + + - + SchoolMigrationService - -SchoolMigrationService + +SchoolMigrationService - + UserLoginMigrationModule->SchoolMigrationService - - + + - + UserLoginMigrationRevertService - -UserLoginMigrationRevertService + +UserLoginMigrationRevertService - + UserLoginMigrationModule->UserLoginMigrationRevertService - - + + - + UserLoginMigrationService - -UserLoginMigrationService + +UserLoginMigrationService - + UserLoginMigrationModule->UserLoginMigrationService - - + + - + UserMigrationService - -UserMigrationService + +UserMigrationService - + UserLoginMigrationModule->UserMigrationService - - + + - + LegacySchoolApiModule->ServerModule - - + + - + LegacySchoolApiModule->ServerTestModule - - + + - + LegacySchoolUc LegacySchoolUc - + LegacySchoolUc->LegacySchoolApiModule - + MigrationMapper MigrationMapper - + MigrationMapper->LegacySchoolApiModule - + FederalStateRepo - -FederalStateRepo + +FederalStateRepo - + FederalStateRepo->LegacySchoolModule - - + + - + FederalStateService - -FederalStateService + +FederalStateService - + FederalStateService->LegacySchoolModule - - + + - + LegacySchoolService - -LegacySchoolService + +LegacySchoolService - + LegacySchoolService->LegacySchoolModule - - + + - + SchoolValidationService - -SchoolValidationService + +SchoolValidationService - + SchoolValidationService->LegacySchoolModule - - + + - + SchoolYearRepo - -SchoolYearRepo + +SchoolYearRepo - + SchoolYearRepo->LegacySchoolModule - - + + - + SchoolYearService - -SchoolYearService + +SchoolYearService - + SchoolYearService->LegacySchoolModule - - + + - + LessonApiModule->ServerModule - - + + - + LessonApiModule->ServerTestModule - - + + - + LessonUC LessonUC - + LessonUC->LessonApiModule - + EtherpadService - -EtherpadService + +EtherpadService - + EtherpadService->LessonModule - - + + - + LessonCopyService - -LessonCopyService + +LessonCopyService - + LessonCopyService->LessonModule - - + + - + LessonService - -LessonService + +LessonService - + LessonService->LessonModule - - + + - + NexboardService - -NexboardService + +NexboardService - + NexboardService->LessonModule - - + + - + ErrorLogger ErrorLogger - + ErrorLogger->LoggerModule - - + + - + LegacyLogger LegacyLogger - + LegacyLogger->LoggerModule - - + + - + LegacyLogger->PseudonymModule - - + + - + LegacyLogger->LtiToolModule - - + + - + LtiToolService - -LtiToolService + +LtiToolService - + LtiToolModule->LtiToolService - - + + - + LtiToolModule->OauthProviderModule - - + + - + LtiToolService - -LtiToolService + +LtiToolService - + LtiToolService->LtiToolModule - - + + - + ManagementServerModule - -ManagementServerModule + +ManagementServerModule - + ManagementModule->ManagementServerModule - - + + - + ManagementModule->ManagementServerTestModule - - + + - + ManagementModule->ServerConsoleModule - - + + - + BoardManagementUc - -BoardManagementUc + +BoardManagementUc - + BoardManagementUc->ManagementModule - - + + - + BsonConverter - -BsonConverter + +BsonConverter - + BsonConverter->ManagementModule - - + + - + DatabaseManagementUc - -DatabaseManagementUc + +DatabaseManagementUc - + DatabaseManagementUc->ManagementModule - - + + - + NewsUc - -NewsUc + +NewsUc - + NewsModule->NewsUc - - + + - + NewsModule->ServerModule - - + + - + NewsModule->ServerTestModule - - + + - + NewsRepo - -NewsRepo + +NewsRepo - + NewsRepo->NewsModule - - + + - + NewsUc - -NewsUc + +NewsUc - + NewsUc->NewsModule - - + + - + ProvisioningModule->OauthModule - - + + - + ProvisioningModule->OauthApiModule - + ProvisioningService - -ProvisioningService + +ProvisioningService - + ProvisioningModule->ProvisioningService - - + + - + ProvisioningModule->UserLoginMigrationApiModule - - + + - + OauthApiModule->ServerModule - - + + - + OauthApiModule->ServerTestModule - - + + - + HydraOauthUc HydraOauthUc - + HydraOauthUc->OauthApiModule - + OauthUc OauthUc - + OauthUc->OauthApiModule - + HydraSsoService HydraSsoService - + HydraSsoService->OauthModule - + - + OAuthService OAuthService - + OAuthService->OauthModule - + OauthAdapterService OauthAdapterService - + OauthAdapterService->OauthModule - + OauthProviderModule->OauthProviderApiModule - - + + - + IdTokenService - -IdTokenService + +IdTokenService - + OauthProviderModule->IdTokenService - - + + - + OauthProviderLoginFlowService - -OauthProviderLoginFlowService + +OauthProviderLoginFlowService - + OauthProviderModule->OauthProviderLoginFlowService - - + + - + OauthProviderApiModule->ServerModule - - + + - + OauthProviderApiModule->ServerTestModule - - + + - + OauthProviderClientCrudUc - -OauthProviderClientCrudUc + +OauthProviderClientCrudUc - + OauthProviderClientCrudUc->OauthProviderApiModule - - + + - + OauthProviderConsentFlowUc - -OauthProviderConsentFlowUc + +OauthProviderConsentFlowUc - + OauthProviderConsentFlowUc->OauthProviderApiModule - - + + - + OauthProviderLoginFlowUc - -OauthProviderLoginFlowUc + +OauthProviderLoginFlowUc - + OauthProviderLoginFlowUc->OauthProviderApiModule - - + + - + OauthProviderLogoutFlowUc - -OauthProviderLogoutFlowUc + +OauthProviderLogoutFlowUc - + OauthProviderLogoutFlowUc->OauthProviderApiModule - - + + - + OauthProviderResponseMapper - -OauthProviderResponseMapper + +OauthProviderResponseMapper - + OauthProviderResponseMapper->OauthProviderApiModule - - + + - + OauthProviderUc - -OauthProviderUc + +OauthProviderUc - + OauthProviderUc->OauthProviderApiModule - - + + - + IdTokenService - -IdTokenService + +IdTokenService - + IdTokenService->OauthProviderModule - - + + - + OauthProviderLoginFlowService - -OauthProviderLoginFlowService + +OauthProviderLoginFlowService - + OauthProviderLoginFlowService->OauthProviderModule - - + + - + IservProvisioningStrategy - -IservProvisioningStrategy + +IservProvisioningStrategy - + IservProvisioningStrategy->ProvisioningModule - - + + - + OidcMockProvisioningStrategy - -OidcMockProvisioningStrategy + +OidcMockProvisioningStrategy - + OidcMockProvisioningStrategy->ProvisioningModule - - + + - + OidcProvisioningService - -OidcProvisioningService + +OidcProvisioningService - + OidcProvisioningService->ProvisioningModule - - + + - + ProvisioningService - -ProvisioningService + +ProvisioningService - + ProvisioningService->ProvisioningModule - + - + SanisProvisioningStrategy - -SanisProvisioningStrategy + +SanisProvisioningStrategy - + SanisProvisioningStrategy->ProvisioningModule - + - + SanisResponseMapper - -SanisResponseMapper + +SanisResponseMapper - + SanisResponseMapper->ProvisioningModule - + - + PseudonymApiModule->ServerModule - - + + - + PseudonymApiModule->ServerTestModule - + PseudonymUc PseudonymUc - + PseudonymUc->PseudonymApiModule - - + + - + ExternalToolPseudonymRepo ExternalToolPseudonymRepo - + ExternalToolPseudonymRepo->PseudonymModule - - + + - + FeathersRosterService FeathersRosterService - + FeathersRosterService->PseudonymModule - - + + - + PseudonymService PseudonymService - + PseudonymService->PseudonymModule - - + + - + PseudonymsRepo PseudonymsRepo - + PseudonymsRepo->PseudonymModule - - + + - + RedisModule->ServerModule - - + + - + RedisModule->ServerTestModule - - + + - + RoleRepo - -RoleRepo + +RoleRepo - + RoleRepo->RoleModule - - + + - + RoleService - -RoleService + +RoleService - + RoleService->RoleModule - - + + - + RoleUc - -RoleUc + +RoleUc - + RoleUc->RoleModule - - + + - + SchoolExternalToolService - -SchoolExternalToolService + +SchoolExternalToolService - + SchoolExternalToolService->SchoolExternalToolModule - - + + - + SchoolExternalToolValidationService - -SchoolExternalToolValidationService + +SchoolExternalToolValidationService - + SchoolExternalToolValidationService->SchoolExternalToolModule - - + + - + SharingApiModule->ServerModule - + SharingApiModule->ServerTestModule - - + + - + SystemApiModule->ServerModule - + SystemApiModule->ServerTestModule - - + + - + TaskApiModule->ServerModule - + TaskApiModule->ServerTestModule - - + + - + TeamsApiModule TeamsApiModule - + TeamsApiModule->ServerModule - + TeamsApiModule->ServerTestModule - - + + - + ToolApiModule->ServerModule - + ToolApiModule->ServerTestModule - - + + - + UserApiModule->ServerModule - + UserApiModule->ServerTestModule - - + + - + UserLoginMigrationApiModule->ServerModule - - + + - + UserLoginMigrationApiModule->ServerTestModule - - + + - + VideoConferenceApiModule->ServerModule - + VideoConferenceApiModule->ServerTestModule - - + + - + SharingModule->SharingApiModule - - + + - + ShareTokenService - -ShareTokenService + +ShareTokenService - + SharingModule->ShareTokenService - - + + - + ShareTokenUC ShareTokenUC - + ShareTokenUC->SharingApiModule - + ShareTokenRepo - -ShareTokenRepo + +ShareTokenRepo - + ShareTokenRepo->SharingModule - + - + ShareTokenService - -ShareTokenService + +ShareTokenService - + ShareTokenService->SharingModule - + - + TokenGenerator - -TokenGenerator + +TokenGenerator - + TokenGenerator->SharingModule - + - + SystemUc SystemUc - + SystemUc->SystemApiModule - - + + - + SystemOidcService - -SystemOidcService + +SystemOidcService - + SystemOidcService->SystemModule - - + + - + SystemService - -SystemService + +SystemService - + SystemService->SystemModule - + - + SubmissionUc SubmissionUc - + SubmissionUc->TaskApiModule - - + + - + TaskCopyUC TaskCopyUC - + TaskCopyUC->TaskApiModule - - + + - + TaskUC TaskUC - + TaskUC->TaskApiModule - - + + - + SubmissionService - -SubmissionService + +SubmissionService - + SubmissionService->TaskModule - - + + - + TaskCopyService - -TaskCopyService + +TaskCopyService - + TaskCopyService->TaskModule - - + + - + TaskService - -TaskService + +TaskService - + TaskService->TaskModule - - + + - + TeamsModule->TeamsApiModule - - + + - + TeamService - -TeamService + +TeamService - + TeamsModule->TeamService - - + + - + TeamService - -TeamService + +TeamService - + TeamService->TeamsModule - - + + - + ContextExternalToolUc ContextExternalToolUc - + ContextExternalToolUc->ToolApiModule - - + + - + ExternalToolConfigurationUc ExternalToolConfigurationUc - + ExternalToolConfigurationUc->ToolApiModule - - + + - + ExternalToolRequestMapper ExternalToolRequestMapper - + ExternalToolRequestMapper->ToolApiModule - - + + - + ExternalToolResponseMapper ExternalToolResponseMapper - + ExternalToolResponseMapper->ToolApiModule - - + + - + ExternalToolUc ExternalToolUc - + ExternalToolUc->ToolApiModule - - + + - + SchoolExternalToolRequestMapper SchoolExternalToolRequestMapper - + SchoolExternalToolRequestMapper->ToolApiModule - - + + - + SchoolExternalToolResponseMapper SchoolExternalToolResponseMapper - + SchoolExternalToolResponseMapper->ToolApiModule - - + + - + SchoolExternalToolUc SchoolExternalToolUc - + SchoolExternalToolUc->ToolApiModule - - + + - + ToolLaunchUc ToolLaunchUc - + ToolLaunchUc->ToolApiModule - - + + - + ToolReferenceUc ToolReferenceUc - + ToolReferenceUc->ToolApiModule - - + + - + ToolLaunchModule->ToolModule - + - + ToolLaunchService - -ToolLaunchService + +ToolLaunchService - + ToolLaunchModule->ToolLaunchService - - + + - + BasicToolLaunchStrategy - -BasicToolLaunchStrategy + +BasicToolLaunchStrategy - + BasicToolLaunchStrategy->ToolLaunchModule - - + + - + Lti11EncryptionService - -Lti11EncryptionService + +Lti11EncryptionService - + Lti11EncryptionService->ToolLaunchModule - - + + - + Lti11ToolLaunchStrategy - -Lti11ToolLaunchStrategy + +Lti11ToolLaunchStrategy - + Lti11ToolLaunchStrategy->ToolLaunchModule - - + + - + OAuth2ToolLaunchStrategy - -OAuth2ToolLaunchStrategy + +OAuth2ToolLaunchStrategy - + OAuth2ToolLaunchStrategy->ToolLaunchModule - - + + - + ToolLaunchService - -ToolLaunchService + +ToolLaunchService - + ToolLaunchService->ToolLaunchModule - - + + - + UserUc UserUc - + UserUc->UserApiModule - + CloseUserLoginMigrationUc CloseUserLoginMigrationUc - + CloseUserLoginMigrationUc->UserLoginMigrationApiModule - - + + - + PageContentMapper PageContentMapper - + PageContentMapper->UserLoginMigrationApiModule - - + + - + RestartUserLoginMigrationUc RestartUserLoginMigrationUc - + RestartUserLoginMigrationUc->UserLoginMigrationApiModule - - + + - + StartUserLoginMigrationUc StartUserLoginMigrationUc - + StartUserLoginMigrationUc->UserLoginMigrationApiModule - - + + - + ToggleUserLoginMigrationUc ToggleUserLoginMigrationUc - + ToggleUserLoginMigrationUc->UserLoginMigrationApiModule - - + + - + UserLoginMigrationUc UserLoginMigrationUc - + UserLoginMigrationUc->UserLoginMigrationApiModule - - + + - + MigrationCheckService - -MigrationCheckService + +MigrationCheckService - + MigrationCheckService->UserLoginMigrationModule - - + + - + SchoolMigrationService - -SchoolMigrationService + +SchoolMigrationService - + SchoolMigrationService->UserLoginMigrationModule - - + + - + UserLoginMigrationRepo - -UserLoginMigrationRepo + +UserLoginMigrationRepo - + UserLoginMigrationRepo->UserLoginMigrationModule - - + + - + UserLoginMigrationRevertService - -UserLoginMigrationRevertService + +UserLoginMigrationRevertService - + UserLoginMigrationRevertService->UserLoginMigrationModule - - + + - + UserLoginMigrationService - -UserLoginMigrationService + +UserLoginMigrationService - + UserLoginMigrationService->UserLoginMigrationModule - - + + - + UserMigrationService - -UserMigrationService + +UserMigrationService - + UserMigrationService->UserLoginMigrationModule - - + + - + UserDORepo UserDORepo - + UserDORepo->UserModule - - + + - + UserService UserService - + UserService->UserModule - + - + VideoConferenceModule->VideoConferenceApiModule - - + + - + BBBService - -BBBService + +BBBService - + VideoConferenceModule->BBBService - - + + - + VideoConferenceService - -VideoConferenceService + +VideoConferenceService - + VideoConferenceModule->VideoConferenceService - - + + - + VideoConferenceCreateUc VideoConferenceCreateUc - + VideoConferenceCreateUc->VideoConferenceApiModule - - + + - + VideoConferenceEndUc VideoConferenceEndUc - + VideoConferenceEndUc->VideoConferenceApiModule - + VideoConferenceInfoUc VideoConferenceInfoUc - + VideoConferenceInfoUc->VideoConferenceApiModule - - + + - + VideoConferenceJoinUc VideoConferenceJoinUc - + VideoConferenceJoinUc->VideoConferenceApiModule - - + + - + BBBService - -BBBService + +BBBService - + BBBService->VideoConferenceModule - - + + - + ConverterUtil - -ConverterUtil + +ConverterUtil - + ConverterUtil->VideoConferenceModule - - + + - + VideoConferenceDeprecatedUc - -VideoConferenceDeprecatedUc + +VideoConferenceDeprecatedUc - + VideoConferenceDeprecatedUc->VideoConferenceModule - - + + - + VideoConferenceRepo - -VideoConferenceRepo + +VideoConferenceRepo - + VideoConferenceRepo->VideoConferenceModule - - + + - + VideoConferenceService - -VideoConferenceService + +VideoConferenceService - + VideoConferenceService->VideoConferenceModule - - + + diff --git a/injectables/GroupRule.html b/injectables/GroupRule.html new file mode 100644 index 00000000000..9182202e0f5 --- /dev/null +++ b/injectables/GroupRule.html @@ -0,0 +1,440 @@ + + + + + + schulcloud-server documentation + + + + + + + + + + + + + +
            +
            + + +
            +
            + + + + + + + + + + + + +
            +
            +

            +

            File

            +

            +

            + apps/server/src/modules/authorization/domain/rules/group.rule.ts +

            + + + + + +
            +

            Index

            + + + + + + + + + + + + + + + +
            +
            Methods
            +
            + +
            +
            + +
            +

            Constructor

            + + + + + + + + + + + + + +
            +constructor(authorizationHelper: AuthorizationHelper) +
            + +
            +
            + Parameters : + + + + + + + + + + + + + + + + + + +
            NameTypeOptional
            authorizationHelper + AuthorizationHelper + + No +
            +
            +
            +
            + +
            + +

            + Methods +

            + + + + + + + + + + + + + + + + + + + +
            + + + Public + hasPermission + + +
            + + hasPermission(user: User, domainObject: Group, context: AuthorizationContext) +
            + +
            + +
            + Parameters : + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
            NameTypeOptional
            user + User + + No +
            domainObject + Group + + No +
            context + AuthorizationContext + + No +
            +
            +
            + Returns : boolean + +
            +
            + +
            +
            + + + + + + + + + + + + + + + + + + + +
            + + + Public + isApplicable + + +
            + + isApplicable(user: User, domainObject: Group) +
            + +
            + +
            + Parameters : + + + + + + + + + + + + + + + + + + + + + + + + + + + +
            NameTypeOptional
            user + User + + No +
            domainObject + Group + + No +
            +
            +
            + Returns : boolean + +
            +
            + +
            +
            +
            + +
            + + +
            +
            import { Injectable } from '@nestjs/common';
            +import { User } from '@shared/domain';
            +import { Group } from '@src/modules/group';
            +import { AuthorizationContext, Rule } from '../type';
            +import { AuthorizationHelper } from '../service/authorization.helper';
            +
            +@Injectable()
            +export class GroupRule implements Rule<Group> {
            +	constructor(private readonly authorizationHelper: AuthorizationHelper) {}
            +
            +	public isApplicable(user: User, domainObject: Group): boolean {
            +		const isMatched: boolean = domainObject instanceof Group;
            +
            +		return isMatched;
            +	}
            +
            +	public hasPermission(user: User, domainObject: Group, context: AuthorizationContext): boolean {
            +		const hasPermission: boolean =
            +			this.authorizationHelper.hasAllPermissions(user, context.requiredPermissions) &&
            +			(domainObject.organizationId ? user.school.id === domainObject.organizationId : true);
            +
            +		return hasPermission;
            +	}
            +}
            +
            +
            + +
            + + + + + + + + + + + + + +
            +
            +

            results matching ""

            +
              +
              +
              +

              No results matching ""

              +
              +
              +
              + +
              +
              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/injectables/GroupUc.html b/injectables/GroupUc.html index ccd75918c2e..d531dd7287e 100644 --- a/injectables/GroupUc.html +++ b/injectables/GroupUc.html @@ -88,6 +88,11 @@
              Methods
              Private applyPagination +
            • + Private + Async + checkPermission +
            • Public Async @@ -118,6 +123,11 @@
              Methods
              Async findUsersForGroup
            • +
            • + Public + Async + getGroup +
            • @@ -290,8 +300,8 @@

              - + @@ -361,6 +371,88 @@

              + + + + + + + + + + + + + + + + + + + +
              + + + Private + Async + checkPermission + + +
              + + checkPermission(userId: EntityId, group: Group) +
              + +
              + +
              + Parameters : + + + + + + + + + + + + + + + + + + + + + + + + + + + +
              NameTypeOptional
              userId + EntityId + + No +
              group + Group + + No +
              +
              +
              + Returns : Promise<void> + +
              +
              + +
              +
              @@ -529,8 +621,8 @@

              @@ -599,8 +691,8 @@

              @@ -669,8 +761,8 @@

              @@ -739,8 +831,8 @@

              @@ -809,8 +901,8 @@

              @@ -856,6 +948,88 @@

              - +
              - +
              - +
              - +
              - +
              + + + + + + + + + + + + + + + + + + + +
              + + + Public + Async + getGroup + + +
              + + getGroup(userId: EntityId, groupId: EntityId) +
              + +
              + +
              + Parameters : + + + + + + + + + + + + + + + + + + + + + + + + + + + +
              NameTypeOptional
              userId + EntityId + + No +
              groupId + EntityId + + No +
              +
              +
              + Returns : Promise<ResolvedGroupDto> + +
              +
              + +
              +
              @@ -875,7 +1049,7 @@

              import { Group, GroupUser } from '../domain'; import { GroupService } from '../service'; import { SortHelper } from '../util'; -import { ClassInfoDto, ResolvedGroupUser } from './dto'; +import { ClassInfoDto, ResolvedGroupDto, ResolvedGroupUser } from './dto'; import { GroupUcMapper } from './mapper/group-uc.mapper'; @Injectable() @@ -902,7 +1076,11 @@

              const school: LegacySchoolDo = await this.schoolService.getSchoolById(schoolId); const user: User = await this.authorizationService.getUserWithPermissions(userId); - this.authorizationService.checkPermission(user, school, AuthorizationContextBuilder.read([Permission.CLASS_LIST])); + this.authorizationService.checkPermission( + user, + school, + AuthorizationContextBuilder.read([Permission.CLASS_LIST, Permission.GROUP_LIST]) + ); const combinedClassInfo: ClassInfoDto[] = await this.findCombinedClassListForSchool(schoolId); @@ -1017,6 +1195,26 @@

              return page; } + + public async getGroup(userId: EntityId, groupId: EntityId): Promise<ResolvedGroupDto> { + const group: Group = await this.groupService.findById(groupId); + + await this.checkPermission(userId, group); + + const resolvedUsers: ResolvedGroupUser[] = await this.findUsersForGroup(group); + const resolvedGroup: ResolvedGroupDto = GroupUcMapper.mapToResolvedGroupDto(group, resolvedUsers); + + return resolvedGroup; + } + + private async checkPermission(userId: EntityId, group: Group): Promise<void> { + const user: User = await this.authorizationService.getUserWithPermissions(userId); + return this.authorizationService.checkPermission( + user, + group, + AuthorizationContextBuilder.read([Permission.GROUP_VIEW]) + ); + } } diff --git a/injectables/RuleManager.html b/injectables/RuleManager.html index d081bc2f769..4ba61871cdf 100644 --- a/injectables/RuleManager.html +++ b/injectables/RuleManager.html @@ -126,12 +126,12 @@

              Constructor

              -constructor(courseRule: CourseRule, courseGroupRule: CourseGroupRule, lessonRule: LessonRule, legaySchoolRule: LegacySchoolRule, taskRule: TaskRule, userRule: UserRule, teamRule: TeamRule, submissionRule: SubmissionRule, schoolExternalToolRule: SchoolExternalToolRule, boardDoRule: BoardDoRule, contextExternalToolRule: ContextExternalToolRule, userLoginMigrationRule: UserLoginMigrationRule) +constructor(courseRule: CourseRule, courseGroupRule: CourseGroupRule, lessonRule: LessonRule, legaySchoolRule: LegacySchoolRule, taskRule: TaskRule, userRule: UserRule, teamRule: TeamRule, submissionRule: SubmissionRule, schoolExternalToolRule: SchoolExternalToolRule, boardDoRule: BoardDoRule, contextExternalToolRule: ContextExternalToolRule, userLoginMigrationRule: UserLoginMigrationRule, groupRule: GroupRule) - + @@ -292,6 +292,18 @@

              Constructor

              + + groupRule + + + GroupRule + + + + No + + + @@ -328,8 +340,8 @@

              - + @@ -397,8 +409,8 @@

              - + @@ -495,7 +507,7 @@

              - + @@ -525,6 +537,7 @@

              TeamRule, UserLoginMigrationRule, UserRule, + GroupRule, } from '../rules'; @Injectable() @@ -543,7 +556,8 @@

              private readonly schoolExternalToolRule: SchoolExternalToolRule, private readonly boardDoRule: BoardDoRule, private readonly contextExternalToolRule: ContextExternalToolRule, - private readonly userLoginMigrationRule: UserLoginMigrationRule + private readonly userLoginMigrationRule: UserLoginMigrationRule, + private readonly groupRule: GroupRule ) { this.rules = [ this.courseRule, @@ -558,6 +572,7 @@

              this.boardDoRule, this.contextExternalToolRule, this.userLoginMigrationRule, + this.groupRule, ]; } diff --git a/interfaces/GroupProps.html b/interfaces/GroupProps.html index 28d678c437a..1d36b2a44ff 100644 --- a/interfaces/GroupProps.html +++ b/interfaces/GroupProps.html @@ -487,6 +487,10 @@

              Properties

              return this.props.organizationId; } + get type(): GroupTypes { + return this.props.type; + } + removeUser(user: UserDO): void { this.props.users = this.props.users.filter((groupUser: GroupUser): boolean => groupUser.userId !== user.id); } diff --git a/js/menu-wc.js b/js/menu-wc.js index 375529b5033..2b5d4556a3d 100644 --- a/js/menu-wc.js +++ b/js/menu-wc.js @@ -291,13 +291,13 @@ customElements.define('compodoc-menu', class extends HTMLElement { AuthorizationModule
            • -