This commit is contained in:
@@ -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 = [];
|
||||
|
||||
@@ -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]
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user