UI to prevent suspended users viewing the application
This commit is contained in:
@@ -75,7 +75,9 @@ export default function auth() {
|
||||
}
|
||||
}
|
||||
|
||||
if (user.isSuspended) throw new UserSuspendedError();
|
||||
if (user.isSuspended) {
|
||||
throw new UserSuspendedError();
|
||||
}
|
||||
|
||||
ctx.state.token = token;
|
||||
ctx.state.user = user;
|
||||
|
||||
@@ -22,7 +22,9 @@ export function AdminRequiredError(
|
||||
export function UserSuspendedError(
|
||||
message: string = 'Your access has been suspended by the team admin'
|
||||
) {
|
||||
return httpErrors(403, message, { id: 'user_suspended' });
|
||||
return httpErrors(403, message, {
|
||||
id: 'user_suspended',
|
||||
});
|
||||
}
|
||||
|
||||
export function InvalidRequestError(message: string = 'Request invalid') {
|
||||
|
||||
@@ -2,6 +2,10 @@ module.exports = {
|
||||
up: async (queryInterface, Sequelize) => {
|
||||
await queryInterface.addColumn('users', 'suspendedById', {
|
||||
type: Sequelize.UUID,
|
||||
allowNull: true,
|
||||
references: {
|
||||
model: 'users',
|
||||
},
|
||||
});
|
||||
await queryInterface.addColumn('users', 'suspendedAt', {
|
||||
type: Sequelize.DATE,
|
||||
|
||||
@@ -49,10 +49,6 @@ User.associate = models => {
|
||||
User.hasMany(models.ApiKey, { as: 'apiKeys' });
|
||||
User.hasMany(models.Document, { as: 'documents' });
|
||||
User.hasMany(models.View, { as: 'views' });
|
||||
User.belongsTo(models.User, {
|
||||
as: 'suspendedBy',
|
||||
foreignKey: 'suspendedById',
|
||||
});
|
||||
};
|
||||
|
||||
// Instance methods
|
||||
|
||||
Reference in New Issue
Block a user