add admin settings
All checks were successful
delpoy / build-and-deploy (push) Successful in 40s

This commit is contained in:
2023-11-30 19:15:00 +01:00
parent 44454f445f
commit 235dfe3094
12 changed files with 176 additions and 9 deletions

View File

@@ -5,6 +5,8 @@ export class Permissions {
static readonly UserWrite = 16;
static readonly ReportRead = 32;
static readonly ReportWrite = 64;
static readonly SettingsRead = 128;
static readonly SettingsWrite = 256;
readonly value: number;
@@ -33,7 +35,9 @@ export class Permissions {
Permissions.UserRead,
Permissions.UserWrite,
Permissions.ReportRead,
Permissions.ReportWrite
Permissions.ReportWrite,
Permissions.SettingsRead,
Permissions.SettingsWrite
];
}
@@ -55,6 +59,12 @@ export class Permissions {
reportWrite(): boolean {
return (this.value & Permissions.ReportWrite) != 0;
}
settingsRead(): boolean {
return (this.value & Permissions.SettingsRead) != 0;
}
settingsWrite(): boolean {
return (this.value & Permissions.SettingsWrite) != 0;
}
asArray(): number[] {
const array = [];

View File

@@ -103,8 +103,23 @@ export class Admin extends Model {
}
}
@Table({ modelName: 'settings', underscored: true })
export class Settings extends Model {
@Column({ type: DataTypes.STRING, allowNull: false, unique: true })
declare key: string;
@Column({
type: DataTypes.STRING,
allowNull: false,
get(this: Settings): any {
const value = this.getDataValue('value');
return value != null ? JSON.parse(value) : null;
}
})
declare value: string;
}
export const sequelize = new Sequelize(building ? 'sqlite::memory:' : env.DATABASE_URI, {
// only log sql queries in dev mode
logging: dev ? console.log : false,
models: [User, Report, Admin]
models: [User, Report, Admin, Settings]
});