mirror of
https://github.com/hedgedoc/hedgedoc.git
synced 2025-05-21 02:35:23 -04:00
GroupsService: Create new GroupsService
This service is necessary as we plan to have functions to create and manipulate groups in the future. The GroupInfoDto was moved from the file note-permissions.dto.ts to mimic the UserInfoDto. Signed-off-by: Philip Molares <philip.molares@udo.edu>
This commit is contained in:
parent
577811be29
commit
34087561e7
16 changed files with 220 additions and 38 deletions
|
@ -6,6 +6,7 @@
|
|||
|
||||
import { IsArray, IsBoolean, IsString, ValidateNested } from 'class-validator';
|
||||
import { UserInfoDto } from '../users/user-info.dto';
|
||||
import { GroupInfoDto } from '../groups/group-info.dto';
|
||||
|
||||
export class NoteUserPermissionEntryDto {
|
||||
/**
|
||||
|
@ -38,30 +39,6 @@ export class NoteUserPermissionUpdateDto {
|
|||
canEdit: boolean;
|
||||
}
|
||||
|
||||
export class GroupInfoDto {
|
||||
/**
|
||||
* Name of the group
|
||||
* @example "superheroes"
|
||||
*/
|
||||
@IsString()
|
||||
name: string;
|
||||
|
||||
/**
|
||||
* Display name of this group
|
||||
* @example "Superheroes"
|
||||
*/
|
||||
@IsString()
|
||||
displayName: string;
|
||||
|
||||
/**
|
||||
* True if this group must be specially handled
|
||||
* Used for e.g. "everybody", "all logged in users"
|
||||
* @example false
|
||||
*/
|
||||
@IsBoolean()
|
||||
special: boolean;
|
||||
}
|
||||
|
||||
export class NoteGroupPermissionEntryDto {
|
||||
/**
|
||||
* Group this permission applies to
|
||||
|
|
|
@ -15,6 +15,7 @@ import { NotesService } from './notes.service';
|
|||
import { Tag } from './tag.entity';
|
||||
import { NoteGroupPermission } from '../permissions/note-group-permission.entity';
|
||||
import { NoteUserPermission } from '../permissions/note-user-permission.entity';
|
||||
import { GroupsModule } from '../groups/groups.module';
|
||||
|
||||
@Module({
|
||||
imports: [
|
||||
|
@ -27,6 +28,7 @@ import { NoteUserPermission } from '../permissions/note-user-permission.entity';
|
|||
]),
|
||||
forwardRef(() => RevisionsModule),
|
||||
UsersModule,
|
||||
GroupsModule,
|
||||
LoggerModule,
|
||||
],
|
||||
controllers: [],
|
||||
|
|
|
@ -17,9 +17,12 @@ import { UsersModule } from '../users/users.module';
|
|||
import { AuthorColor } from './author-color.entity';
|
||||
import { Note } from './note.entity';
|
||||
import { NotesService } from './notes.service';
|
||||
import { Repository } from 'typeorm';
|
||||
import { Tag } from './tag.entity';
|
||||
import { NoteGroupPermission } from '../permissions/note-group-permission.entity';
|
||||
import { NoteUserPermission } from '../permissions/note-user-permission.entity';
|
||||
import { GroupsModule } from '../groups/groups.module';
|
||||
import { Group } from '../groups/group.entity';
|
||||
|
||||
describe('NotesService', () => {
|
||||
let service: NotesService;
|
||||
|
@ -37,7 +40,7 @@ describe('NotesService', () => {
|
|||
useValue: {},
|
||||
},
|
||||
],
|
||||
imports: [UsersModule, RevisionsModule, LoggerModule],
|
||||
imports: [LoggerModule, UsersModule, GroupsModule, RevisionsModule],
|
||||
})
|
||||
.overrideProvider(getRepositoryToken(User))
|
||||
.useValue({})
|
||||
|
@ -59,7 +62,10 @@ describe('NotesService', () => {
|
|||
.useValue({})
|
||||
.overrideProvider(getRepositoryToken(NoteUserPermission))
|
||||
.useValue({})
|
||||
.overrideProvider(getRepositoryToken(Group))
|
||||
.useClass(Repository)
|
||||
.compile();
|
||||
|
||||
service = module.get<NotesService>(NotesService);
|
||||
});
|
||||
|
||||
|
|
|
@ -22,6 +22,9 @@ import { NoteDto } from './note.dto';
|
|||
import { Note } from './note.entity';
|
||||
import { Tag } from './tag.entity';
|
||||
import { HistoryEntry } from '../history/history-entry.entity';
|
||||
import { NoteUserPermission } from '../permissions/note-user-permission.entity';
|
||||
import { NoteGroupPermission } from '../permissions/note-group-permission.entity';
|
||||
import { GroupsService } from '../groups/groups.service';
|
||||
|
||||
@Injectable()
|
||||
export class NotesService {
|
||||
|
@ -30,6 +33,7 @@ export class NotesService {
|
|||
@InjectRepository(Note) private noteRepository: Repository<Note>,
|
||||
@InjectRepository(Tag) private tagRepository: Repository<Tag>,
|
||||
@Inject(UsersService) private usersService: UsersService,
|
||||
@Inject(GroupsService) private groupsService: GroupsService,
|
||||
@Inject(forwardRef(() => RevisionsService))
|
||||
private revisionsService: RevisionsService,
|
||||
) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue