@spinajs/rbac 2.0.179 → 2.0.181
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/auth.d.ts +15 -15
- package/lib/cjs/auth.js +103 -103
- package/lib/cjs/auth.js.map +1 -1
- package/lib/cjs/cli/ActivateUser.d.ts +8 -8
- package/lib/cjs/cli/ActivateUser.js +47 -47
- package/lib/cjs/cli/ActivateUser.js.map +1 -1
- package/lib/cjs/cli/BanUser.d.ts +8 -8
- package/lib/cjs/cli/BanUser.js +63 -63
- package/lib/cjs/cli/BanUser.js.map +1 -1
- package/lib/cjs/cli/ChangeUserPassword.d.ts +11 -11
- package/lib/cjs/cli/ChangeUserPassword.js +58 -58
- package/lib/cjs/cli/ChangeUserPassword.js.map +1 -1
- package/lib/cjs/cli/ClearUserTimelineSchedule.d.ts +8 -8
- package/lib/cjs/cli/ClearUserTimelineSchedule.js +54 -54
- package/lib/cjs/cli/ClearUserTimelineSchedule.js.map +1 -1
- package/lib/cjs/cli/CreateUser.d.ts +17 -17
- package/lib/cjs/cli/CreateUser.js +69 -69
- package/lib/cjs/cli/CreateUser.js.map +1 -1
- package/lib/cjs/cli/DeleteUser.d.ts +8 -8
- package/lib/cjs/cli/DeleteUser.js +40 -40
- package/lib/cjs/cli/DeleteUser.js.map +1 -1
- package/lib/cjs/cli/FindUser.d.ts +12 -12
- package/lib/cjs/cli/FindUser.js +44 -44
- package/lib/cjs/cli/FindUser.js.map +1 -1
- package/lib/cjs/cli/GrantUserRole.d.ts +8 -8
- package/lib/cjs/cli/GrantUserRole.js +47 -47
- package/lib/cjs/cli/GrantUserRole.js.map +1 -1
- package/lib/cjs/cli/LatestUserEvents.d.ts +6 -6
- package/lib/cjs/cli/LatestUserEvents.js +37 -37
- package/lib/cjs/cli/LatestUserEvents.js.map +1 -1
- package/lib/cjs/cli/RevokeUserRole.d.ts +8 -8
- package/lib/cjs/cli/RevokeUserRole.js +46 -46
- package/lib/cjs/cli/RevokeUserRole.js.map +1 -1
- package/lib/cjs/cli/UnbanUserSchedule.d.ts +8 -8
- package/lib/cjs/cli/UnbanUserSchedule.js +54 -54
- package/lib/cjs/cli/UnbanUserSchedule.js.map +1 -1
- package/lib/cjs/config/rbac.d.ts +115 -115
- package/lib/cjs/config/rbac.js +120 -120
- package/lib/cjs/decorators/Resource.d.ts +8 -8
- package/lib/cjs/decorators/Resource.js +17 -17
- package/lib/cjs/events/NewUser.d.ts +12 -12
- package/lib/cjs/events/NewUser.js +16 -16
- package/lib/cjs/events/NewUser.js.map +1 -1
- package/lib/cjs/events/UserActivated.d.ts +5 -5
- package/lib/cjs/events/UserActivated.js +24 -24
- package/lib/cjs/events/UserActivated.js.map +1 -1
- package/lib/cjs/events/UserBanned.d.ts +6 -6
- package/lib/cjs/events/UserBanned.js +25 -25
- package/lib/cjs/events/UserBanned.js.map +1 -1
- package/lib/cjs/events/UserDeactivated.d.ts +5 -5
- package/lib/cjs/events/UserDeactivated.js +24 -24
- package/lib/cjs/events/UserDeactivated.js.map +1 -1
- package/lib/cjs/events/UserDeleted.d.ts +5 -5
- package/lib/cjs/events/UserDeleted.js +24 -24
- package/lib/cjs/events/UserDeleted.js.map +1 -1
- package/lib/cjs/events/UserMetadataAdded.d.ts +5 -5
- package/lib/cjs/events/UserMetadataAdded.js +24 -24
- package/lib/cjs/events/UserMetadataAdded.js.map +1 -1
- package/lib/cjs/events/UserMetadataChanged.d.ts +5 -5
- package/lib/cjs/events/UserMetadataChanged.js +24 -24
- package/lib/cjs/events/UserMetadataChanged.js.map +1 -1
- package/lib/cjs/events/UserMetadataDeleted.d.ts +5 -5
- package/lib/cjs/events/UserMetadataDeleted.js +24 -24
- package/lib/cjs/events/UserMetadataDeleted.js.map +1 -1
- package/lib/cjs/events/UserPasswordChanged.d.ts +5 -5
- package/lib/cjs/events/UserPasswordChanged.js +24 -24
- package/lib/cjs/events/UserPasswordChanged.js.map +1 -1
- package/lib/cjs/events/UserPropertyChanged.d.ts +7 -7
- package/lib/cjs/events/UserPropertyChanged.js +16 -16
- package/lib/cjs/events/UserPropertyChanged.js.map +1 -1
- package/lib/cjs/events/UserRoleGranted.d.ts +6 -6
- package/lib/cjs/events/UserRoleGranted.js +25 -25
- package/lib/cjs/events/UserRoleGranted.js.map +1 -1
- package/lib/cjs/events/UserRoleRevoked.d.ts +6 -6
- package/lib/cjs/events/UserRoleRevoked.js +25 -25
- package/lib/cjs/events/UserRoleRevoked.js.map +1 -1
- package/lib/cjs/events/UserUnbanned.d.ts +5 -5
- package/lib/cjs/events/UserUnbanned.js +24 -24
- package/lib/cjs/events/UserUnbanned.js.map +1 -1
- package/lib/cjs/events/index.d.ts +13 -13
- package/lib/cjs/events/index.js +29 -29
- package/lib/cjs/index.d.ts +20 -20
- package/lib/cjs/index.js +85 -85
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/interfaces.d.ts +259 -259
- package/lib/cjs/interfaces.js +45 -45
- package/lib/cjs/interfaces.js.map +1 -1
- package/lib/cjs/jobs/UnbanUser.d.ts +9 -9
- package/lib/cjs/jobs/UnbanUser.js +43 -43
- package/lib/cjs/jobs/UnbanUser.js.map +1 -1
- package/lib/cjs/middleware.d.ts +5 -5
- package/lib/cjs/middleware.js +24 -24
- package/lib/cjs/middleware.js.map +1 -1
- package/lib/cjs/migrations/RBACInitial_2022_06_28_01_13_00.d.ts +5 -5
- package/lib/cjs/migrations/RBACInitial_2022_06_28_01_13_00.js +56 -56
- package/lib/cjs/migrations/RBACInitial_2022_06_28_01_13_00.js.map +1 -1
- package/lib/cjs/models/User.d.ts +96 -94
- package/lib/cjs/models/User.d.ts.map +1 -1
- package/lib/cjs/models/User.js +229 -219
- package/lib/cjs/models/User.js.map +1 -1
- package/lib/cjs/models/UserMetadata.d.ts +9 -9
- package/lib/cjs/models/UserMetadata.js +32 -32
- package/lib/cjs/models/UserMetadata.js.map +1 -1
- package/lib/cjs/models/UserTimeline.d.ts +28 -28
- package/lib/cjs/models/UserTimeline.js +46 -46
- package/lib/cjs/models/UserTimeline.js.map +1 -1
- package/lib/cjs/password.d.ts +25 -25
- package/lib/cjs/password.js +91 -91
- package/lib/cjs/password.js.map +1 -1
- package/lib/cjs/session.d.ts +33 -33
- package/lib/cjs/session.js +100 -100
- package/lib/cjs/session.js.map +1 -1
- package/lib/mjs/auth.d.ts +15 -15
- package/lib/mjs/auth.js +100 -100
- package/lib/mjs/auth.js.map +1 -1
- package/lib/mjs/cli/ActivateUser.d.ts +8 -8
- package/lib/mjs/cli/ActivateUser.js +44 -44
- package/lib/mjs/cli/ActivateUser.js.map +1 -1
- package/lib/mjs/cli/BanUser.d.ts +8 -8
- package/lib/mjs/cli/BanUser.js +60 -60
- package/lib/mjs/cli/BanUser.js.map +1 -1
- package/lib/mjs/cli/ChangeUserPassword.d.ts +11 -11
- package/lib/mjs/cli/ChangeUserPassword.js +55 -55
- package/lib/mjs/cli/ChangeUserPassword.js.map +1 -1
- package/lib/mjs/cli/ClearUserTimelineSchedule.d.ts +8 -8
- package/lib/mjs/cli/ClearUserTimelineSchedule.js +51 -51
- package/lib/mjs/cli/ClearUserTimelineSchedule.js.map +1 -1
- package/lib/mjs/cli/CreateUser.d.ts +17 -17
- package/lib/mjs/cli/CreateUser.js +66 -66
- package/lib/mjs/cli/CreateUser.js.map +1 -1
- package/lib/mjs/cli/DeleteUser.d.ts +8 -8
- package/lib/mjs/cli/DeleteUser.js +37 -37
- package/lib/mjs/cli/DeleteUser.js.map +1 -1
- package/lib/mjs/cli/FindUser.d.ts +12 -12
- package/lib/mjs/cli/FindUser.js +41 -41
- package/lib/mjs/cli/FindUser.js.map +1 -1
- package/lib/mjs/cli/GrantUserRole.d.ts +8 -8
- package/lib/mjs/cli/GrantUserRole.js +41 -41
- package/lib/mjs/cli/GrantUserRole.js.map +1 -1
- package/lib/mjs/cli/LatestUserEvents.d.ts +6 -6
- package/lib/mjs/cli/LatestUserEvents.js +34 -34
- package/lib/mjs/cli/LatestUserEvents.js.map +1 -1
- package/lib/mjs/cli/RevokeUserRole.d.ts +8 -8
- package/lib/mjs/cli/RevokeUserRole.js +40 -40
- package/lib/mjs/cli/RevokeUserRole.js.map +1 -1
- package/lib/mjs/cli/UnbanUserSchedule.d.ts +8 -8
- package/lib/mjs/cli/UnbanUserSchedule.js +51 -51
- package/lib/mjs/cli/UnbanUserSchedule.js.map +1 -1
- package/lib/mjs/config/rbac.d.ts +115 -115
- package/lib/mjs/config/rbac.js +118 -118
- package/lib/mjs/decorators/Resource.d.ts +8 -8
- package/lib/mjs/decorators/Resource.js +13 -13
- package/lib/mjs/events/NewUser.d.ts +12 -12
- package/lib/mjs/events/NewUser.js +13 -13
- package/lib/mjs/events/NewUser.js.map +1 -1
- package/lib/mjs/events/UserActivated.d.ts +5 -5
- package/lib/mjs/events/UserActivated.js +21 -21
- package/lib/mjs/events/UserActivated.js.map +1 -1
- package/lib/mjs/events/UserBanned.d.ts +6 -6
- package/lib/mjs/events/UserBanned.js +22 -22
- package/lib/mjs/events/UserBanned.js.map +1 -1
- package/lib/mjs/events/UserDeactivated.d.ts +5 -5
- package/lib/mjs/events/UserDeactivated.js +21 -21
- package/lib/mjs/events/UserDeactivated.js.map +1 -1
- package/lib/mjs/events/UserDeleted.d.ts +5 -5
- package/lib/mjs/events/UserDeleted.js +21 -21
- package/lib/mjs/events/UserDeleted.js.map +1 -1
- package/lib/mjs/events/UserMetadataAdded.d.ts +5 -5
- package/lib/mjs/events/UserMetadataAdded.js +21 -21
- package/lib/mjs/events/UserMetadataAdded.js.map +1 -1
- package/lib/mjs/events/UserMetadataChanged.d.ts +5 -5
- package/lib/mjs/events/UserMetadataChanged.js +21 -21
- package/lib/mjs/events/UserMetadataChanged.js.map +1 -1
- package/lib/mjs/events/UserMetadataDeleted.d.ts +5 -5
- package/lib/mjs/events/UserMetadataDeleted.js +21 -21
- package/lib/mjs/events/UserMetadataDeleted.js.map +1 -1
- package/lib/mjs/events/UserPasswordChanged.d.ts +5 -5
- package/lib/mjs/events/UserPasswordChanged.js +21 -21
- package/lib/mjs/events/UserPasswordChanged.js.map +1 -1
- package/lib/mjs/events/UserPropertyChanged.d.ts +7 -7
- package/lib/mjs/events/UserPropertyChanged.js +13 -13
- package/lib/mjs/events/UserPropertyChanged.js.map +1 -1
- package/lib/mjs/events/UserRoleGranted.d.ts +6 -6
- package/lib/mjs/events/UserRoleGranted.js +22 -22
- package/lib/mjs/events/UserRoleGranted.js.map +1 -1
- package/lib/mjs/events/UserRoleRevoked.d.ts +6 -6
- package/lib/mjs/events/UserRoleRevoked.js +22 -22
- package/lib/mjs/events/UserRoleRevoked.js.map +1 -1
- package/lib/mjs/events/UserUnbanned.d.ts +5 -5
- package/lib/mjs/events/UserUnbanned.js +21 -21
- package/lib/mjs/events/UserUnbanned.js.map +1 -1
- package/lib/mjs/events/index.d.ts +13 -13
- package/lib/mjs/events/index.js +13 -13
- package/lib/mjs/index.d.ts +20 -20
- package/lib/mjs/index.js +64 -64
- package/lib/mjs/index.js.map +1 -1
- package/lib/mjs/interfaces.d.ts +259 -259
- package/lib/mjs/interfaces.js +37 -37
- package/lib/mjs/interfaces.js.map +1 -1
- package/lib/mjs/jobs/UnbanUser.d.ts +9 -9
- package/lib/mjs/jobs/UnbanUser.js +40 -40
- package/lib/mjs/jobs/UnbanUser.js.map +1 -1
- package/lib/mjs/middleware.d.ts +5 -5
- package/lib/mjs/middleware.js +21 -21
- package/lib/mjs/middleware.js.map +1 -1
- package/lib/mjs/migrations/RBACInitial_2022_06_28_01_13_00.d.ts +5 -5
- package/lib/mjs/migrations/RBACInitial_2022_06_28_01_13_00.js +53 -53
- package/lib/mjs/migrations/RBACInitial_2022_06_28_01_13_00.js.map +1 -1
- package/lib/mjs/models/User.d.ts +96 -94
- package/lib/mjs/models/User.d.ts.map +1 -1
- package/lib/mjs/models/User.js +225 -215
- package/lib/mjs/models/User.js.map +1 -1
- package/lib/mjs/models/UserMetadata.d.ts +9 -9
- package/lib/mjs/models/UserMetadata.js +29 -29
- package/lib/mjs/models/UserMetadata.js.map +1 -1
- package/lib/mjs/models/UserTimeline.d.ts +28 -28
- package/lib/mjs/models/UserTimeline.js +43 -43
- package/lib/mjs/models/UserTimeline.js.map +1 -1
- package/lib/mjs/password.d.ts +25 -25
- package/lib/mjs/password.js +65 -65
- package/lib/mjs/password.js.map +1 -1
- package/lib/mjs/session.d.ts +33 -33
- package/lib/mjs/session.js +94 -94
- package/lib/mjs/session.js.map +1 -1
- package/lib/tsconfig.cjs.tsbuildinfo +1 -1
- package/lib/tsconfig.mjs.tsbuildinfo +1 -1
- package/package.json +10 -10
package/lib/cjs/auth.d.ts
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import { AuthProvider, IAuthenticationResult, PasswordProvider } from './interfaces.js';
|
|
2
|
-
import { User } from './models/User.js';
|
|
3
|
-
import { IContainer } from '@spinajs/di';
|
|
4
|
-
export declare class SimpleDbAuthProvider implements AuthProvider<User> {
|
|
5
|
-
protected Container: IContainer;
|
|
6
|
-
protected PasswordProvider: PasswordProvider;
|
|
7
|
-
exists(userOrEmail: User | string): Promise<boolean>;
|
|
8
|
-
getByLogin(login: string): Promise<User>;
|
|
9
|
-
getByEmail(email: string): Promise<User>;
|
|
10
|
-
getByUUID(uuid: string): Promise<User>;
|
|
11
|
-
authenticate(email: string, password: string): Promise<IAuthenticationResult<User>>;
|
|
12
|
-
isBanned(email: string): Promise<boolean>;
|
|
13
|
-
isActive(email: string): Promise<boolean>;
|
|
14
|
-
isDeleted(email: string): Promise<boolean>;
|
|
15
|
-
}
|
|
1
|
+
import { AuthProvider, IAuthenticationResult, PasswordProvider } from './interfaces.js';
|
|
2
|
+
import { User } from './models/User.js';
|
|
3
|
+
import { IContainer } from '@spinajs/di';
|
|
4
|
+
export declare class SimpleDbAuthProvider implements AuthProvider<User> {
|
|
5
|
+
protected Container: IContainer;
|
|
6
|
+
protected PasswordProvider: PasswordProvider;
|
|
7
|
+
exists(userOrEmail: User | string): Promise<boolean>;
|
|
8
|
+
getByLogin(login: string): Promise<User>;
|
|
9
|
+
getByEmail(email: string): Promise<User>;
|
|
10
|
+
getByUUID(uuid: string): Promise<User>;
|
|
11
|
+
authenticate(email: string, password: string): Promise<IAuthenticationResult<User>>;
|
|
12
|
+
isBanned(email: string): Promise<boolean>;
|
|
13
|
+
isActive(email: string): Promise<boolean>;
|
|
14
|
+
isDeleted(email: string): Promise<boolean>;
|
|
15
|
+
}
|
|
16
16
|
//# sourceMappingURL=auth.d.ts.map
|
package/lib/cjs/auth.js
CHANGED
|
@@ -1,104 +1,104 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.SimpleDbAuthProvider = void 0;
|
|
13
|
-
const interfaces_js_1 = require("./interfaces.js");
|
|
14
|
-
const User_js_1 = require("./models/User.js");
|
|
15
|
-
const di_1 = require("@spinajs/di");
|
|
16
|
-
const configuration_1 = require("@spinajs/configuration");
|
|
17
|
-
let SimpleDbAuthProvider = class SimpleDbAuthProvider {
|
|
18
|
-
async exists(userOrEmail) {
|
|
19
|
-
const result = await User_js_1.User.where('Email', userOrEmail instanceof User_js_1.User ? userOrEmail.Email : userOrEmail).first();
|
|
20
|
-
if (result) {
|
|
21
|
-
return true;
|
|
22
|
-
}
|
|
23
|
-
return false;
|
|
24
|
-
}
|
|
25
|
-
async getByLogin(login) {
|
|
26
|
-
const result = await User_js_1.User.where('Login', login).first();
|
|
27
|
-
return result;
|
|
28
|
-
}
|
|
29
|
-
async getByEmail(email) {
|
|
30
|
-
const result = await User_js_1.User.where('Email', email).first();
|
|
31
|
-
return result;
|
|
32
|
-
}
|
|
33
|
-
async getByUUID(uuid) {
|
|
34
|
-
const result = await User_js_1.User.where('Uuid', uuid).first();
|
|
35
|
-
return result;
|
|
36
|
-
}
|
|
37
|
-
async authenticate(email, password) {
|
|
38
|
-
const result = await User_js_1.User.where({ Email: email, DeletedAt: null }).first();
|
|
39
|
-
const eInvalidCredentials = {
|
|
40
|
-
Error: {
|
|
41
|
-
Code: interfaces_js_1.AthenticationErrorCodes.E_INVALID_CREDENTIALS,
|
|
42
|
-
Message: 'Invalid user credentials, or user not exist.',
|
|
43
|
-
},
|
|
44
|
-
};
|
|
45
|
-
/**
|
|
46
|
-
* If user not exists, is deleted, or password dont match
|
|
47
|
-
* return E_INVALID_CREDENTIALS for security reasons ( so attaker wont now if email is valid, or password don match)
|
|
48
|
-
*/
|
|
49
|
-
if (!result) {
|
|
50
|
-
return eInvalidCredentials;
|
|
51
|
-
}
|
|
52
|
-
const valid = await this.PasswordProvider.verify(result.Password, password);
|
|
53
|
-
if (!valid) {
|
|
54
|
-
return {
|
|
55
|
-
User: undefined,
|
|
56
|
-
...eInvalidCredentials,
|
|
57
|
-
};
|
|
58
|
-
}
|
|
59
|
-
if (result.IsBanned) {
|
|
60
|
-
return {
|
|
61
|
-
User: result,
|
|
62
|
-
Error: {
|
|
63
|
-
Code: interfaces_js_1.AthenticationErrorCodes.E_USER_BANNED,
|
|
64
|
-
},
|
|
65
|
-
};
|
|
66
|
-
}
|
|
67
|
-
if (result.IsActive) {
|
|
68
|
-
return {
|
|
69
|
-
User: result,
|
|
70
|
-
Error: {
|
|
71
|
-
Code: interfaces_js_1.AthenticationErrorCodes.E_USER_NOT_ACTIVE,
|
|
72
|
-
},
|
|
73
|
-
};
|
|
74
|
-
}
|
|
75
|
-
return {
|
|
76
|
-
User: result,
|
|
77
|
-
};
|
|
78
|
-
}
|
|
79
|
-
async isBanned(email) {
|
|
80
|
-
const result = await User_js_1.User.where({ Email: email, IsBanned: true }).first();
|
|
81
|
-
return result !== null;
|
|
82
|
-
}
|
|
83
|
-
async isActive(email) {
|
|
84
|
-
const result = await User_js_1.User.where({ Email: email, IsActive: true }).first();
|
|
85
|
-
return result !== null;
|
|
86
|
-
}
|
|
87
|
-
async isDeleted(email) {
|
|
88
|
-
const result = await User_js_1.User.where('Email', email).whereNotNull('DeletedAt').first();
|
|
89
|
-
return result !== null;
|
|
90
|
-
}
|
|
91
|
-
};
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
SimpleDbAuthProvider
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.SimpleDbAuthProvider = void 0;
|
|
13
|
+
const interfaces_js_1 = require("./interfaces.js");
|
|
14
|
+
const User_js_1 = require("./models/User.js");
|
|
15
|
+
const di_1 = require("@spinajs/di");
|
|
16
|
+
const configuration_1 = require("@spinajs/configuration");
|
|
17
|
+
let SimpleDbAuthProvider = class SimpleDbAuthProvider {
|
|
18
|
+
async exists(userOrEmail) {
|
|
19
|
+
const result = await User_js_1.User.where('Email', userOrEmail instanceof User_js_1.User ? userOrEmail.Email : userOrEmail).first();
|
|
20
|
+
if (result) {
|
|
21
|
+
return true;
|
|
22
|
+
}
|
|
23
|
+
return false;
|
|
24
|
+
}
|
|
25
|
+
async getByLogin(login) {
|
|
26
|
+
const result = await User_js_1.User.where('Login', login).first();
|
|
27
|
+
return result;
|
|
28
|
+
}
|
|
29
|
+
async getByEmail(email) {
|
|
30
|
+
const result = await User_js_1.User.where('Email', email).first();
|
|
31
|
+
return result;
|
|
32
|
+
}
|
|
33
|
+
async getByUUID(uuid) {
|
|
34
|
+
const result = await User_js_1.User.where('Uuid', uuid).first();
|
|
35
|
+
return result;
|
|
36
|
+
}
|
|
37
|
+
async authenticate(email, password) {
|
|
38
|
+
const result = await User_js_1.User.where({ Email: email, DeletedAt: null }).first();
|
|
39
|
+
const eInvalidCredentials = {
|
|
40
|
+
Error: {
|
|
41
|
+
Code: interfaces_js_1.AthenticationErrorCodes.E_INVALID_CREDENTIALS,
|
|
42
|
+
Message: 'Invalid user credentials, or user not exist.',
|
|
43
|
+
},
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* If user not exists, is deleted, or password dont match
|
|
47
|
+
* return E_INVALID_CREDENTIALS for security reasons ( so attaker wont now if email is valid, or password don match)
|
|
48
|
+
*/
|
|
49
|
+
if (!result) {
|
|
50
|
+
return eInvalidCredentials;
|
|
51
|
+
}
|
|
52
|
+
const valid = await this.PasswordProvider.verify(result.Password, password);
|
|
53
|
+
if (!valid) {
|
|
54
|
+
return {
|
|
55
|
+
User: undefined,
|
|
56
|
+
...eInvalidCredentials,
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
if (result.IsBanned) {
|
|
60
|
+
return {
|
|
61
|
+
User: result,
|
|
62
|
+
Error: {
|
|
63
|
+
Code: interfaces_js_1.AthenticationErrorCodes.E_USER_BANNED,
|
|
64
|
+
},
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
if (result.IsActive) {
|
|
68
|
+
return {
|
|
69
|
+
User: result,
|
|
70
|
+
Error: {
|
|
71
|
+
Code: interfaces_js_1.AthenticationErrorCodes.E_USER_NOT_ACTIVE,
|
|
72
|
+
},
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
return {
|
|
76
|
+
User: result,
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
async isBanned(email) {
|
|
80
|
+
const result = await User_js_1.User.where({ Email: email, IsBanned: true }).first();
|
|
81
|
+
return result !== null;
|
|
82
|
+
}
|
|
83
|
+
async isActive(email) {
|
|
84
|
+
const result = await User_js_1.User.where({ Email: email, IsActive: true }).first();
|
|
85
|
+
return result !== null;
|
|
86
|
+
}
|
|
87
|
+
async isDeleted(email) {
|
|
88
|
+
const result = await User_js_1.User.where('Email', email).whereNotNull('DeletedAt').first();
|
|
89
|
+
return result !== null;
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
exports.SimpleDbAuthProvider = SimpleDbAuthProvider;
|
|
93
|
+
__decorate([
|
|
94
|
+
(0, di_1.Autoinject)(di_1.Container),
|
|
95
|
+
__metadata("design:type", Object)
|
|
96
|
+
], SimpleDbAuthProvider.prototype, "Container", void 0);
|
|
97
|
+
__decorate([
|
|
98
|
+
(0, configuration_1.AutoinjectService)('rbac.password'),
|
|
99
|
+
__metadata("design:type", interfaces_js_1.PasswordProvider)
|
|
100
|
+
], SimpleDbAuthProvider.prototype, "PasswordProvider", void 0);
|
|
101
|
+
exports.SimpleDbAuthProvider = SimpleDbAuthProvider = __decorate([
|
|
102
|
+
(0, di_1.Injectable)(interfaces_js_1.AuthProvider)
|
|
103
|
+
], SimpleDbAuthProvider);
|
|
104
104
|
//# sourceMappingURL=auth.js.map
|
package/lib/cjs/auth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/auth.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { QueueService } from '@spinajs/Queue';
|
|
2
|
-
import { Log } from '@spinajs/log';
|
|
3
|
-
import { CliCommand } from '@spinajs/cli';
|
|
4
|
-
export declare class ActivateUser extends CliCommand {
|
|
5
|
-
protected Log: Log;
|
|
6
|
-
protected Queue: QueueService;
|
|
7
|
-
execute(idOrUuid: string, active: boolean): Promise<void>;
|
|
8
|
-
}
|
|
1
|
+
import { QueueService } from '@spinajs/Queue';
|
|
2
|
+
import { Log } from '@spinajs/log';
|
|
3
|
+
import { CliCommand } from '@spinajs/cli';
|
|
4
|
+
export declare class ActivateUser extends CliCommand {
|
|
5
|
+
protected Log: Log;
|
|
6
|
+
protected Queue: QueueService;
|
|
7
|
+
execute(idOrUuid: string, active: boolean): Promise<void>;
|
|
8
|
+
}
|
|
9
9
|
//# sourceMappingURL=ActivateUser.d.ts.map
|
|
@@ -1,48 +1,48 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.ActivateUser = void 0;
|
|
13
|
-
const UserDeactivated_js_1 = require("./../events/UserDeactivated.js");
|
|
14
|
-
//import { UserBannedMessage } from './../messages/UserBanned';
|
|
15
|
-
const Queue_1 = require("@spinajs/Queue");
|
|
16
|
-
const log_1 = require("@spinajs/log");
|
|
17
|
-
const cli_1 = require("@spinajs/cli");
|
|
18
|
-
const di_1 = require("@spinajs/di");
|
|
19
|
-
const User_js_1 = require("../models/User.js");
|
|
20
|
-
const UserActivated_js_1 = require("../events/UserActivated.js");
|
|
21
|
-
let ActivateUser = class ActivateUser extends cli_1.CliCommand {
|
|
22
|
-
async execute(idOrUuid, active) {
|
|
23
|
-
const result = await User_js_1.User.update({ IsActive: active }).where('Id', idOrUuid).orWhere('Uuid', idOrUuid);
|
|
24
|
-
if (result.RowsAffected > 0) {
|
|
25
|
-
const event = active ? new UserActivated_js_1.UserActivated(idOrUuid) : new UserDeactivated_js_1.UserDeactivated(idOrUuid);
|
|
26
|
-
this.Queue.emit(event);
|
|
27
|
-
this.Log.success(`User activation status changed to ${active}`);
|
|
28
|
-
}
|
|
29
|
-
else {
|
|
30
|
-
this.Log.warn(`No user with id: ${idOrUuid} found`);
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
ActivateUser
|
|
43
|
-
|
|
44
|
-
(0, cli_1.
|
|
45
|
-
(0, cli_1.Argument)('
|
|
46
|
-
|
|
47
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.ActivateUser = void 0;
|
|
13
|
+
const UserDeactivated_js_1 = require("./../events/UserDeactivated.js");
|
|
14
|
+
//import { UserBannedMessage } from './../messages/UserBanned';
|
|
15
|
+
const Queue_1 = require("@spinajs/Queue");
|
|
16
|
+
const log_1 = require("@spinajs/log");
|
|
17
|
+
const cli_1 = require("@spinajs/cli");
|
|
18
|
+
const di_1 = require("@spinajs/di");
|
|
19
|
+
const User_js_1 = require("../models/User.js");
|
|
20
|
+
const UserActivated_js_1 = require("../events/UserActivated.js");
|
|
21
|
+
let ActivateUser = class ActivateUser extends cli_1.CliCommand {
|
|
22
|
+
async execute(idOrUuid, active) {
|
|
23
|
+
const result = await User_js_1.User.update({ IsActive: active }).where('Id', idOrUuid).orWhere('Uuid', idOrUuid);
|
|
24
|
+
if (result.RowsAffected > 0) {
|
|
25
|
+
const event = active ? new UserActivated_js_1.UserActivated(idOrUuid) : new UserDeactivated_js_1.UserDeactivated(idOrUuid);
|
|
26
|
+
this.Queue.emit(event);
|
|
27
|
+
this.Log.success(`User activation status changed to ${active}`);
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
this.Log.warn(`No user with id: ${idOrUuid} found`);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
exports.ActivateUser = ActivateUser;
|
|
35
|
+
__decorate([
|
|
36
|
+
(0, log_1.Logger)('rbac'),
|
|
37
|
+
__metadata("design:type", log_1.Log)
|
|
38
|
+
], ActivateUser.prototype, "Log", void 0);
|
|
39
|
+
__decorate([
|
|
40
|
+
(0, di_1.Autoinject)(Queue_1.QueueService),
|
|
41
|
+
__metadata("design:type", Queue_1.QueueService)
|
|
42
|
+
], ActivateUser.prototype, "Queue", void 0);
|
|
43
|
+
exports.ActivateUser = ActivateUser = __decorate([
|
|
44
|
+
(0, cli_1.Command)('rbac:user-activate', 'Sets active or inactive user'),
|
|
45
|
+
(0, cli_1.Argument)('idOrUuid', 'numeric id or uuid'),
|
|
46
|
+
(0, cli_1.Argument)('active', ' true / false', false, (opt) => (opt.toLowerCase() === 'true' ? true : false))
|
|
47
|
+
], ActivateUser);
|
|
48
48
|
//# sourceMappingURL=ActivateUser.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActivateUser.js","sourceRoot":"","sources":["../../../src/cli/ActivateUser.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,uEAAiE;AACjE,+DAA+D;AAC/D,0CAA8C;AAC9C,sCAA2C;AAC3C,sCAA6D;AAC7D,oCAAyC;AACzC,+CAAyC;AACzC,iEAA2D;AAKpD,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,gBAAU;IAOnC,KAAK,CAAC,OAAO,CAAC,QAAgB,EAAE,MAAe;QACpD,MAAM,MAAM,GAAG,MAAM,cAAI,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAEvG,IAAI,MAAM,CAAC,YAAY,GAAG,CAAC,EAAE;YAC3B,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,gCAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,oCAAe,CAAC,QAAQ,CAAC,CAAC;YAEnF,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAEvB,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,qCAAqC,MAAM,EAAE,CAAC,CAAC;SACjE;aAAM;YACL,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,QAAQ,QAAQ,CAAC,CAAC;SACrD;IACH,CAAC;CACF,CAAA;
|
|
1
|
+
{"version":3,"file":"ActivateUser.js","sourceRoot":"","sources":["../../../src/cli/ActivateUser.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,uEAAiE;AACjE,+DAA+D;AAC/D,0CAA8C;AAC9C,sCAA2C;AAC3C,sCAA6D;AAC7D,oCAAyC;AACzC,+CAAyC;AACzC,iEAA2D;AAKpD,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,gBAAU;IAOnC,KAAK,CAAC,OAAO,CAAC,QAAgB,EAAE,MAAe;QACpD,MAAM,MAAM,GAAG,MAAM,cAAI,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAEvG,IAAI,MAAM,CAAC,YAAY,GAAG,CAAC,EAAE;YAC3B,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,gCAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,oCAAe,CAAC,QAAQ,CAAC,CAAC;YAEnF,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAEvB,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,qCAAqC,MAAM,EAAE,CAAC,CAAC;SACjE;aAAM;YACL,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,QAAQ,QAAQ,CAAC,CAAC;SACrD;IACH,CAAC;CACF,CAAA;AApBY,oCAAY;AAEb;IADT,IAAA,YAAM,EAAC,MAAM,CAAC;8BACA,SAAG;yCAAC;AAGT;IADT,IAAA,eAAU,EAAC,oBAAY,CAAC;8BACR,oBAAY;2CAAC;uBALnB,YAAY;IAHxB,IAAA,aAAO,EAAC,oBAAoB,EAAE,8BAA8B,CAAC;IAC7D,IAAA,cAAQ,EAAC,UAAU,EAAE,oBAAoB,CAAC;IAC1C,IAAA,cAAQ,EAAC,QAAQ,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;GAC9F,YAAY,CAoBxB"}
|
package/lib/cjs/cli/BanUser.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { QueueService } from '@spinajs/Queue';
|
|
2
|
-
import { Log } from '@spinajs/log';
|
|
3
|
-
import { CliCommand } from '@spinajs/cli';
|
|
4
|
-
export declare class BanUser extends CliCommand {
|
|
5
|
-
protected Log: Log;
|
|
6
|
-
protected Queue: QueueService;
|
|
7
|
-
execute(idOrUuid: string, ban: boolean, duration: number): Promise<void>;
|
|
8
|
-
}
|
|
1
|
+
import { QueueService } from '@spinajs/Queue';
|
|
2
|
+
import { Log } from '@spinajs/log';
|
|
3
|
+
import { CliCommand } from '@spinajs/cli';
|
|
4
|
+
export declare class BanUser extends CliCommand {
|
|
5
|
+
protected Log: Log;
|
|
6
|
+
protected Queue: QueueService;
|
|
7
|
+
execute(idOrUuid: string, ban: boolean, duration: number): Promise<void>;
|
|
8
|
+
}
|
|
9
9
|
//# sourceMappingURL=BanUser.d.ts.map
|
package/lib/cjs/cli/BanUser.js
CHANGED
|
@@ -1,64 +1,64 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.BanUser = void 0;
|
|
13
|
-
const UserUnbanned_js_1 = require("./../events/UserUnbanned.js");
|
|
14
|
-
const Queue_1 = require("@spinajs/Queue");
|
|
15
|
-
const log_1 = require("@spinajs/log");
|
|
16
|
-
const cli_1 = require("@spinajs/cli");
|
|
17
|
-
const di_1 = require("@spinajs/di");
|
|
18
|
-
const User_js_1 = require("../models/User.js");
|
|
19
|
-
const UserBanned_js_1 = require("../events/UserBanned.js");
|
|
20
|
-
const UserMetadata_js_1 = require("../models/UserMetadata.js");
|
|
21
|
-
const UnbanUser_js_1 = require("../jobs/UnbanUser.js");
|
|
22
|
-
const luxon_1 = require("luxon");
|
|
23
|
-
let BanUser = class BanUser extends cli_1.CliCommand {
|
|
24
|
-
async execute(idOrUuid, ban, duration) {
|
|
25
|
-
const user = await User_js_1.User.where('Id', idOrUuid).orWhere('Uuid', idOrUuid).firstOrThrow(new Error('User not found'));
|
|
26
|
-
user.IsBanned = ban;
|
|
27
|
-
await user.update();
|
|
28
|
-
if (ban) {
|
|
29
|
-
await (user.Metadata['ban:duration'] = duration);
|
|
30
|
-
await (user.Metadata['ban:issued'] = luxon_1.DateTime.now().toISO());
|
|
31
|
-
this.Queue.emit(new UserBanned_js_1.UserBanned(idOrUuid, duration));
|
|
32
|
-
if (duration !== 0) {
|
|
33
|
-
// schedule job with delay equals ban duration
|
|
34
|
-
// to automattically unban user after this time
|
|
35
|
-
const job = new UnbanUser_js_1.UnbanUser(idOrUuid);
|
|
36
|
-
job.ScheduleDelay = duration * 60 * 1000;
|
|
37
|
-
this.Queue.emit(job);
|
|
38
|
-
}
|
|
39
|
-
this.Log.success(`User ban status changed to ${ban}`);
|
|
40
|
-
}
|
|
41
|
-
else {
|
|
42
|
-
// cleanup meta
|
|
43
|
-
await UserMetadata_js_1.UserMetadata.destroy().where('Key', 'like', 'user:ban:%').andWhere('User', user);
|
|
44
|
-
this.Queue.emit(new UserUnbanned_js_1.UserUnbanned(idOrUuid));
|
|
45
|
-
this.Log.warn(`No user with id: ${idOrUuid} found`);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
BanUser
|
|
58
|
-
|
|
59
|
-
(0, cli_1.
|
|
60
|
-
(0, cli_1.Argument)('
|
|
61
|
-
(0, cli_1.Argument)('
|
|
62
|
-
|
|
63
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.BanUser = void 0;
|
|
13
|
+
const UserUnbanned_js_1 = require("./../events/UserUnbanned.js");
|
|
14
|
+
const Queue_1 = require("@spinajs/Queue");
|
|
15
|
+
const log_1 = require("@spinajs/log");
|
|
16
|
+
const cli_1 = require("@spinajs/cli");
|
|
17
|
+
const di_1 = require("@spinajs/di");
|
|
18
|
+
const User_js_1 = require("../models/User.js");
|
|
19
|
+
const UserBanned_js_1 = require("../events/UserBanned.js");
|
|
20
|
+
const UserMetadata_js_1 = require("../models/UserMetadata.js");
|
|
21
|
+
const UnbanUser_js_1 = require("../jobs/UnbanUser.js");
|
|
22
|
+
const luxon_1 = require("luxon");
|
|
23
|
+
let BanUser = class BanUser extends cli_1.CliCommand {
|
|
24
|
+
async execute(idOrUuid, ban, duration) {
|
|
25
|
+
const user = await User_js_1.User.where('Id', idOrUuid).orWhere('Uuid', idOrUuid).firstOrThrow(new Error('User not found'));
|
|
26
|
+
user.IsBanned = ban;
|
|
27
|
+
await user.update();
|
|
28
|
+
if (ban) {
|
|
29
|
+
await (user.Metadata['ban:duration'] = duration);
|
|
30
|
+
await (user.Metadata['ban:issued'] = luxon_1.DateTime.now().toISO());
|
|
31
|
+
this.Queue.emit(new UserBanned_js_1.UserBanned(idOrUuid, duration));
|
|
32
|
+
if (duration !== 0) {
|
|
33
|
+
// schedule job with delay equals ban duration
|
|
34
|
+
// to automattically unban user after this time
|
|
35
|
+
const job = new UnbanUser_js_1.UnbanUser(idOrUuid);
|
|
36
|
+
job.ScheduleDelay = duration * 60 * 1000;
|
|
37
|
+
this.Queue.emit(job);
|
|
38
|
+
}
|
|
39
|
+
this.Log.success(`User ban status changed to ${ban}`);
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
// cleanup meta
|
|
43
|
+
await UserMetadata_js_1.UserMetadata.destroy().where('Key', 'like', 'user:ban:%').andWhere('User', user);
|
|
44
|
+
this.Queue.emit(new UserUnbanned_js_1.UserUnbanned(idOrUuid));
|
|
45
|
+
this.Log.warn(`No user with id: ${idOrUuid} found`);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
exports.BanUser = BanUser;
|
|
50
|
+
__decorate([
|
|
51
|
+
(0, log_1.Logger)('rbac'),
|
|
52
|
+
__metadata("design:type", log_1.Log)
|
|
53
|
+
], BanUser.prototype, "Log", void 0);
|
|
54
|
+
__decorate([
|
|
55
|
+
(0, di_1.Autoinject)(Queue_1.QueueService),
|
|
56
|
+
__metadata("design:type", Queue_1.QueueService)
|
|
57
|
+
], BanUser.prototype, "Queue", void 0);
|
|
58
|
+
exports.BanUser = BanUser = __decorate([
|
|
59
|
+
(0, cli_1.Command)('rbac:user-ban', 'Sets active or inactive user'),
|
|
60
|
+
(0, cli_1.Argument)('idOrUuid', 'numeric id or uuid'),
|
|
61
|
+
(0, cli_1.Argument)('ban', ' true / false', false, (opt) => (opt.toLowerCase() === 'true' ? true : false)),
|
|
62
|
+
(0, cli_1.Argument)('duration', 'how long should ban last ( in minutes )', 24 * 60, (opt) => parseInt(opt))
|
|
63
|
+
], BanUser);
|
|
64
64
|
//# sourceMappingURL=BanUser.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BanUser.js","sourceRoot":"","sources":["../../../src/cli/BanUser.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iEAA2D;AAC3D,0CAA8C;AAC9C,sCAA2C;AAC3C,sCAA6D;AAC7D,oCAAyC;AACzC,+CAAyC;AACzC,2DAAqD;AACrD,+DAAyD;AACzD,uDAAiD;AACjD,iCAAiC;AAM1B,IAAM,OAAO,GAAb,MAAM,OAAQ,SAAQ,gBAAU;IAO9B,KAAK,CAAC,OAAO,CAAC,QAAgB,EAAE,GAAY,EAAE,QAAgB;QACnE,MAAM,IAAI,GAAG,MAAM,cAAI,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAClH,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;QAEpB,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QAEpB,IAAI,GAAG,EAAE;YACP,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,QAAQ,CAAC,CAAC;YACjD,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,GAAG,gBAAQ,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;YAE7D,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,0BAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;YAEpD,IAAI,QAAQ,KAAK,CAAC,EAAE;gBAClB,8CAA8C;gBAC9C,+CAA+C;gBAC/C,MAAM,GAAG,GAAG,IAAI,wBAAS,CAAC,QAAQ,CAAC,CAAC;gBACpC,GAAG,CAAC,aAAa,GAAG,QAAQ,GAAG,EAAE,GAAG,IAAI,CAAC;gBAEzC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aACtB;YAED,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,8BAA8B,GAAG,EAAE,CAAC,CAAC;SACvD;aAAM;YACL,eAAe;YACf,MAAM,8BAAY,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAEvF,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,8BAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC5C,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,QAAQ,QAAQ,CAAC,CAAC;SACrD;IACH,CAAC;CACF,CAAA;
|
|
1
|
+
{"version":3,"file":"BanUser.js","sourceRoot":"","sources":["../../../src/cli/BanUser.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iEAA2D;AAC3D,0CAA8C;AAC9C,sCAA2C;AAC3C,sCAA6D;AAC7D,oCAAyC;AACzC,+CAAyC;AACzC,2DAAqD;AACrD,+DAAyD;AACzD,uDAAiD;AACjD,iCAAiC;AAM1B,IAAM,OAAO,GAAb,MAAM,OAAQ,SAAQ,gBAAU;IAO9B,KAAK,CAAC,OAAO,CAAC,QAAgB,EAAE,GAAY,EAAE,QAAgB;QACnE,MAAM,IAAI,GAAG,MAAM,cAAI,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAClH,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;QAEpB,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QAEpB,IAAI,GAAG,EAAE;YACP,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,QAAQ,CAAC,CAAC;YACjD,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,GAAG,gBAAQ,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;YAE7D,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,0BAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;YAEpD,IAAI,QAAQ,KAAK,CAAC,EAAE;gBAClB,8CAA8C;gBAC9C,+CAA+C;gBAC/C,MAAM,GAAG,GAAG,IAAI,wBAAS,CAAC,QAAQ,CAAC,CAAC;gBACpC,GAAG,CAAC,aAAa,GAAG,QAAQ,GAAG,EAAE,GAAG,IAAI,CAAC;gBAEzC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aACtB;YAED,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,8BAA8B,GAAG,EAAE,CAAC,CAAC;SACvD;aAAM;YACL,eAAe;YACf,MAAM,8BAAY,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAEvF,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,8BAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC5C,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,QAAQ,QAAQ,CAAC,CAAC;SACrD;IACH,CAAC;CACF,CAAA;AArCY,0BAAO;AAER;IADT,IAAA,YAAM,EAAC,MAAM,CAAC;8BACA,SAAG;oCAAC;AAGT;IADT,IAAA,eAAU,EAAC,oBAAY,CAAC;8BACR,oBAAY;sCAAC;kBALnB,OAAO;IAJnB,IAAA,aAAO,EAAC,eAAe,EAAE,8BAA8B,CAAC;IACxD,IAAA,cAAQ,EAAC,UAAU,EAAE,oBAAoB,CAAC;IAC1C,IAAA,cAAQ,EAAC,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACvG,IAAA,cAAQ,EAAC,UAAU,EAAE,yCAAyC,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;GAC5F,OAAO,CAqCnB"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { QueueService } from '@spinajs/Queue';
|
|
2
|
-
import { Log } from '@spinajs/log';
|
|
3
|
-
import { CliCommand } from '@spinajs/cli';
|
|
4
|
-
import { PasswordProvider, PasswordValidationProvider } from '../interfaces.js';
|
|
5
|
-
export declare class ChangeUserPassword extends CliCommand {
|
|
6
|
-
protected Log: Log;
|
|
7
|
-
protected Queue: QueueService;
|
|
8
|
-
protected PasswordProvider: PasswordProvider;
|
|
9
|
-
protected PasswordValidation: PasswordValidationProvider;
|
|
10
|
-
execute(idOrUuid: string, newPassword: string): Promise<void>;
|
|
11
|
-
}
|
|
1
|
+
import { QueueService } from '@spinajs/Queue';
|
|
2
|
+
import { Log } from '@spinajs/log';
|
|
3
|
+
import { CliCommand } from '@spinajs/cli';
|
|
4
|
+
import { PasswordProvider, PasswordValidationProvider } from '../interfaces.js';
|
|
5
|
+
export declare class ChangeUserPassword extends CliCommand {
|
|
6
|
+
protected Log: Log;
|
|
7
|
+
protected Queue: QueueService;
|
|
8
|
+
protected PasswordProvider: PasswordProvider;
|
|
9
|
+
protected PasswordValidation: PasswordValidationProvider;
|
|
10
|
+
execute(idOrUuid: string, newPassword: string): Promise<void>;
|
|
11
|
+
}
|
|
12
12
|
//# sourceMappingURL=ChangeUserPassword.d.ts.map
|