mirror of
https://github.com/ToolJet/ToolJet
synced 2026-05-24 09:28:31 +00:00
Created repositories to interact with page_permissions and page_users tables
This commit is contained in:
parent
6923d7ef15
commit
c3b71a32ca
2 changed files with 87 additions and 0 deletions
|
|
@ -0,0 +1,42 @@
|
||||||
|
import { PagePermission } from '@entities/page_permissions.entity';
|
||||||
|
import { Injectable } from '@nestjs/common';
|
||||||
|
import { DataSource, EntityManager, Repository } from 'typeorm';
|
||||||
|
import { PageUsersRepository } from './page-users.repository';
|
||||||
|
import { dbTransactionWrap } from '@helpers/database.helper';
|
||||||
|
import { PAGE_PERMISSION_TYPE } from '../constants';
|
||||||
|
|
||||||
|
@Injectable()
|
||||||
|
export class PagePermissionsRepository extends Repository<PagePermission> {
|
||||||
|
constructor(private dataSource: DataSource, private readonly pageUsersRepository: PageUsersRepository) {
|
||||||
|
super(PagePermission, dataSource.createEntityManager());
|
||||||
|
}
|
||||||
|
|
||||||
|
async getPagePermissions(pageId: string, manager?: EntityManager): Promise<PagePermission[]> {
|
||||||
|
return dbTransactionWrap(async (manager: EntityManager) => {
|
||||||
|
return manager.find(PagePermission, {
|
||||||
|
where: { pageId },
|
||||||
|
relations: ['users', 'users.user'],
|
||||||
|
});
|
||||||
|
}, manager || this.manager);
|
||||||
|
}
|
||||||
|
|
||||||
|
async createPagePermissions(
|
||||||
|
pageId: string,
|
||||||
|
type: PAGE_PERMISSION_TYPE,
|
||||||
|
manager?: EntityManager
|
||||||
|
): Promise<PagePermission> {
|
||||||
|
return dbTransactionWrap(async (manager: EntityManager) => {
|
||||||
|
const pagePermission = manager.create(PagePermission, {
|
||||||
|
pageId,
|
||||||
|
type,
|
||||||
|
});
|
||||||
|
return manager.save(pagePermission);
|
||||||
|
}, manager || this.manager);
|
||||||
|
}
|
||||||
|
|
||||||
|
async deletePagePermissions(pageId: string, manager?: EntityManager): Promise<void> {
|
||||||
|
return dbTransactionWrap(async (manager: EntityManager) => {
|
||||||
|
await manager.delete(PagePermission, { pageId });
|
||||||
|
}, manager || this.manager);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,45 @@
|
||||||
|
import { PageUser } from '@entities/page_users.entity';
|
||||||
|
import { Injectable } from '@nestjs/common';
|
||||||
|
import { DataSource, EntityManager, Repository } from 'typeorm';
|
||||||
|
import { dbTransactionWrap } from '@helpers/database.helper';
|
||||||
|
|
||||||
|
@Injectable()
|
||||||
|
export class PageUsersRepository extends Repository<PageUser> {
|
||||||
|
constructor(private dataSource: DataSource) {
|
||||||
|
super(PageUser, dataSource.createEntityManager());
|
||||||
|
}
|
||||||
|
|
||||||
|
async createPageUsersWithSingle(
|
||||||
|
pagePermissionsId: string,
|
||||||
|
users: string[],
|
||||||
|
manager?: EntityManager
|
||||||
|
): Promise<PageUser[]> {
|
||||||
|
return dbTransactionWrap(async (manager: EntityManager) => {
|
||||||
|
const pageUsers = users.map((userId) => {
|
||||||
|
return manager.create(PageUser, {
|
||||||
|
pagePermissionsId,
|
||||||
|
userId,
|
||||||
|
permissionGroupsId: null,
|
||||||
|
});
|
||||||
|
});
|
||||||
|
return manager.save(pageUsers);
|
||||||
|
}, manager || this.manager);
|
||||||
|
}
|
||||||
|
|
||||||
|
async createPageUsersWithGroup(
|
||||||
|
pagePermissionsId: string,
|
||||||
|
groups: string[],
|
||||||
|
manager?: EntityManager
|
||||||
|
): Promise<PageUser[]> {
|
||||||
|
return dbTransactionWrap(async (manager: EntityManager) => {
|
||||||
|
const pageUsers = groups.map((permissionGroupsId) => {
|
||||||
|
return manager.create(PageUser, {
|
||||||
|
pagePermissionsId,
|
||||||
|
permissionGroupsId,
|
||||||
|
userId: null,
|
||||||
|
});
|
||||||
|
});
|
||||||
|
return manager.save(pageUsers);
|
||||||
|
}, manager || this.manager);
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in a new issue