@spinajs/rbac 2.0.185 → 2.0.187
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/actions.d.ts +75 -0
- package/lib/cjs/actions.d.ts.map +1 -0
- package/lib/cjs/actions.js +266 -0
- package/lib/cjs/actions.js.map +1 -0
- package/lib/cjs/auth.d.ts +5 -5
- package/lib/cjs/auth.d.ts.map +1 -1
- package/lib/cjs/auth.js +24 -51
- package/lib/cjs/auth.js.map +1 -1
- package/lib/cjs/cli/ActivateUser.d.ts.map +1 -1
- package/lib/cjs/cli/ActivateUser.js +6 -11
- package/lib/cjs/cli/ActivateUser.js.map +1 -1
- package/lib/cjs/cli/BanUser.d.ts +1 -3
- package/lib/cjs/cli/BanUser.d.ts.map +1 -1
- package/lib/cjs/cli/BanUser.js +9 -34
- package/lib/cjs/cli/BanUser.js.map +1 -1
- package/lib/cjs/cli/ChangeUserPassword.d.ts +0 -5
- package/lib/cjs/cli/ChangeUserPassword.d.ts.map +1 -1
- package/lib/cjs/cli/ChangeUserPassword.js +8 -29
- package/lib/cjs/cli/ChangeUserPassword.js.map +1 -1
- package/lib/cjs/cli/CreateUser.d.ts +0 -4
- package/lib/cjs/cli/CreateUser.d.ts.map +1 -1
- package/lib/cjs/cli/CreateUser.js +6 -37
- package/lib/cjs/cli/CreateUser.js.map +1 -1
- package/lib/cjs/cli/DeleteUser.d.ts.map +1 -1
- package/lib/cjs/cli/DeleteUser.js +13 -6
- package/lib/cjs/cli/DeleteUser.js.map +1 -1
- package/lib/cjs/cli/FindUser.d.ts +1 -7
- package/lib/cjs/cli/FindUser.d.ts.map +1 -1
- package/lib/cjs/cli/FindUser.js +8 -18
- package/lib/cjs/cli/FindUser.js.map +1 -1
- package/lib/cjs/cli/GrantUserRole.d.ts +0 -2
- package/lib/cjs/cli/GrantUserRole.d.ts.map +1 -1
- package/lib/cjs/cli/GrantUserRole.js +13 -18
- package/lib/cjs/cli/GrantUserRole.js.map +1 -1
- package/lib/cjs/cli/RevokeUserRole.d.ts +0 -2
- package/lib/cjs/cli/RevokeUserRole.d.ts.map +1 -1
- package/lib/cjs/cli/RevokeUserRole.js +13 -17
- package/lib/cjs/cli/RevokeUserRole.js.map +1 -1
- package/lib/cjs/cli/UnbanUserSchedule.d.ts.map +1 -1
- package/lib/cjs/cli/UnbanUserSchedule.js +1 -15
- package/lib/cjs/cli/UnbanUserSchedule.js.map +1 -1
- package/lib/cjs/config/rbac.d.ts +45 -16
- package/lib/cjs/config/rbac.d.ts.map +1 -1
- package/lib/cjs/config/rbac.js +44 -10
- package/lib/cjs/config/rbac.js.map +1 -1
- package/lib/cjs/events/UserActivated.d.ts +2 -4
- package/lib/cjs/events/UserActivated.d.ts.map +1 -1
- package/lib/cjs/events/UserActivated.js +3 -10
- package/lib/cjs/events/UserActivated.js.map +1 -1
- package/lib/cjs/events/UserBanned.d.ts +2 -5
- package/lib/cjs/events/UserBanned.d.ts.map +1 -1
- package/lib/cjs/events/UserBanned.js +3 -11
- package/lib/cjs/events/UserBanned.js.map +1 -1
- package/lib/{mjs/events/NewUser.d.ts → cjs/events/UserCreated.d.ts} +4 -3
- package/lib/cjs/events/UserCreated.d.ts.map +1 -0
- package/lib/cjs/events/{UserMetadataDeleted.js → UserCreated.js} +10 -10
- package/lib/cjs/events/UserCreated.js.map +1 -0
- package/lib/cjs/events/UserDeactivated.d.ts +2 -4
- package/lib/cjs/events/UserDeactivated.d.ts.map +1 -1
- package/lib/cjs/events/UserDeactivated.js +3 -10
- package/lib/cjs/events/UserDeactivated.js.map +1 -1
- package/lib/cjs/events/UserDeleted.d.ts +2 -4
- package/lib/cjs/events/UserDeleted.d.ts.map +1 -1
- package/lib/cjs/events/UserDeleted.js +3 -10
- package/lib/cjs/events/UserDeleted.js.map +1 -1
- package/lib/cjs/events/UserEvent.d.ts +7 -0
- package/lib/cjs/events/UserEvent.d.ts.map +1 -0
- package/lib/cjs/events/{UserMetadataAdded.js → UserEvent.js} +10 -9
- package/lib/cjs/events/UserEvent.js.map +1 -0
- package/lib/cjs/events/UserLogged.d.ts +4 -0
- package/lib/cjs/events/UserLogged.d.ts.map +1 -0
- package/lib/cjs/events/{NewUser.js → UserLogged.js} +7 -6
- package/lib/cjs/events/UserLogged.js.map +1 -0
- package/lib/cjs/events/UserLoginFailed.d.ts +7 -0
- package/lib/cjs/events/UserLoginFailed.d.ts.map +1 -0
- package/lib/cjs/events/{UserMetadataChanged.js → UserLoginFailed.js} +12 -10
- package/lib/cjs/events/UserLoginFailed.js.map +1 -0
- package/lib/cjs/events/UserMetadataChange.d.ts +14 -0
- package/lib/cjs/events/UserMetadataChange.d.ts.map +1 -0
- package/lib/cjs/events/UserMetadataChange.js +28 -0
- package/lib/cjs/events/UserMetadataChange.js.map +1 -0
- package/lib/cjs/events/UserPasswordChangeRequest.d.ts +4 -0
- package/lib/cjs/events/UserPasswordChangeRequest.d.ts.map +1 -0
- package/lib/cjs/events/UserPasswordChangeRequest.js +18 -0
- package/lib/cjs/events/UserPasswordChangeRequest.js.map +1 -0
- package/lib/cjs/events/UserPasswordChanged.d.ts +2 -4
- package/lib/cjs/events/UserPasswordChanged.d.ts.map +1 -1
- package/lib/cjs/events/UserPasswordChanged.js +3 -10
- package/lib/cjs/events/UserPasswordChanged.js.map +1 -1
- package/lib/cjs/events/UserPropertyChanged.d.ts +2 -6
- package/lib/cjs/events/UserPropertyChanged.d.ts.map +1 -1
- package/lib/cjs/events/UserPropertyChanged.js +6 -5
- package/lib/cjs/events/UserPropertyChanged.js.map +1 -1
- package/lib/cjs/events/UserRoleGranted.d.ts +5 -4
- package/lib/cjs/events/UserRoleGranted.d.ts.map +1 -1
- package/lib/cjs/events/UserRoleGranted.js +7 -5
- package/lib/cjs/events/UserRoleGranted.js.map +1 -1
- package/lib/cjs/events/UserRoleRevoked.d.ts +5 -4
- package/lib/cjs/events/UserRoleRevoked.d.ts.map +1 -1
- package/lib/cjs/events/UserRoleRevoked.js +7 -5
- package/lib/cjs/events/UserRoleRevoked.js.map +1 -1
- package/lib/cjs/events/UserUnbanned.d.ts +2 -4
- package/lib/cjs/events/UserUnbanned.d.ts.map +1 -1
- package/lib/cjs/events/UserUnbanned.js +3 -10
- package/lib/cjs/events/UserUnbanned.js.map +1 -1
- package/lib/cjs/events/index.d.ts +4 -4
- package/lib/cjs/events/index.d.ts.map +1 -1
- package/lib/cjs/events/index.js +4 -4
- package/lib/cjs/events/index.js.map +1 -1
- package/lib/cjs/index.d.ts +1 -1
- package/lib/cjs/index.d.ts.map +1 -1
- package/lib/cjs/index.js +1 -1
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/interfaces.d.ts +11 -33
- package/lib/cjs/interfaces.d.ts.map +1 -1
- package/lib/cjs/interfaces.js +4 -4
- package/lib/cjs/interfaces.js.map +1 -1
- package/lib/cjs/migrations/RBACInitial_2022_06_28_01_13_00.d.ts.map +1 -1
- package/lib/cjs/migrations/RBACInitial_2022_06_28_01_13_00.js +3 -14
- package/lib/cjs/migrations/RBACInitial_2022_06_28_01_13_00.js.map +1 -1
- package/lib/cjs/models/User.d.ts +94 -28
- package/lib/cjs/models/User.d.ts.map +1 -1
- package/lib/cjs/models/User.js +150 -105
- package/lib/cjs/models/User.js.map +1 -1
- package/lib/cjs/models/UserMetadata.d.ts +2 -6
- package/lib/cjs/models/UserMetadata.d.ts.map +1 -1
- package/lib/cjs/models/UserMetadata.js +1 -9
- package/lib/cjs/models/UserMetadata.js.map +1 -1
- package/lib/cjs/session.d.ts +1 -1
- package/lib/cjs/session.d.ts.map +1 -1
- package/lib/cjs/session.js +6 -6
- package/lib/cjs/session.js.map +1 -1
- package/lib/mjs/actions.d.ts +75 -0
- package/lib/mjs/actions.d.ts.map +1 -0
- package/lib/mjs/actions.js +242 -0
- package/lib/mjs/actions.js.map +1 -0
- package/lib/mjs/auth.d.ts +5 -5
- package/lib/mjs/auth.d.ts.map +1 -1
- package/lib/mjs/auth.js +24 -51
- package/lib/mjs/auth.js.map +1 -1
- package/lib/mjs/cli/ActivateUser.d.ts.map +1 -1
- package/lib/mjs/cli/ActivateUser.js +6 -11
- package/lib/mjs/cli/ActivateUser.js.map +1 -1
- package/lib/mjs/cli/BanUser.d.ts +1 -3
- package/lib/mjs/cli/BanUser.d.ts.map +1 -1
- package/lib/mjs/cli/BanUser.js +9 -34
- package/lib/mjs/cli/BanUser.js.map +1 -1
- package/lib/mjs/cli/ChangeUserPassword.d.ts +0 -5
- package/lib/mjs/cli/ChangeUserPassword.d.ts.map +1 -1
- package/lib/mjs/cli/ChangeUserPassword.js +8 -29
- package/lib/mjs/cli/ChangeUserPassword.js.map +1 -1
- package/lib/mjs/cli/CreateUser.d.ts +0 -4
- package/lib/mjs/cli/CreateUser.d.ts.map +1 -1
- package/lib/mjs/cli/CreateUser.js +6 -37
- package/lib/mjs/cli/CreateUser.js.map +1 -1
- package/lib/mjs/cli/DeleteUser.d.ts.map +1 -1
- package/lib/mjs/cli/DeleteUser.js +13 -6
- package/lib/mjs/cli/DeleteUser.js.map +1 -1
- package/lib/mjs/cli/FindUser.d.ts +1 -7
- package/lib/mjs/cli/FindUser.d.ts.map +1 -1
- package/lib/mjs/cli/FindUser.js +8 -18
- package/lib/mjs/cli/FindUser.js.map +1 -1
- package/lib/mjs/cli/GrantUserRole.d.ts +0 -2
- package/lib/mjs/cli/GrantUserRole.d.ts.map +1 -1
- package/lib/mjs/cli/GrantUserRole.js +13 -15
- package/lib/mjs/cli/GrantUserRole.js.map +1 -1
- package/lib/mjs/cli/RevokeUserRole.d.ts +0 -2
- package/lib/mjs/cli/RevokeUserRole.d.ts.map +1 -1
- package/lib/mjs/cli/RevokeUserRole.js +13 -14
- package/lib/mjs/cli/RevokeUserRole.js.map +1 -1
- package/lib/mjs/cli/UnbanUserSchedule.d.ts.map +1 -1
- package/lib/mjs/cli/UnbanUserSchedule.js +1 -15
- package/lib/mjs/cli/UnbanUserSchedule.js.map +1 -1
- package/lib/mjs/config/rbac.d.ts +45 -16
- package/lib/mjs/config/rbac.d.ts.map +1 -1
- package/lib/mjs/config/rbac.js +44 -10
- package/lib/mjs/config/rbac.js.map +1 -1
- package/lib/mjs/events/UserActivated.d.ts +2 -4
- package/lib/mjs/events/UserActivated.d.ts.map +1 -1
- package/lib/mjs/events/UserActivated.js +4 -11
- package/lib/mjs/events/UserActivated.js.map +1 -1
- package/lib/mjs/events/UserBanned.d.ts +2 -5
- package/lib/mjs/events/UserBanned.d.ts.map +1 -1
- package/lib/mjs/events/UserBanned.js +4 -12
- package/lib/mjs/events/UserBanned.js.map +1 -1
- package/lib/{cjs/events/NewUser.d.ts → mjs/events/UserCreated.d.ts} +4 -3
- package/lib/mjs/events/UserCreated.d.ts.map +1 -0
- package/lib/mjs/events/{UserMetadataChanged.js → UserCreated.js} +10 -10
- package/lib/mjs/events/UserCreated.js.map +1 -0
- package/lib/mjs/events/UserDeactivated.d.ts +2 -4
- package/lib/mjs/events/UserDeactivated.d.ts.map +1 -1
- package/lib/mjs/events/UserDeactivated.js +4 -11
- package/lib/mjs/events/UserDeactivated.js.map +1 -1
- package/lib/mjs/events/UserDeleted.d.ts +2 -4
- package/lib/mjs/events/UserDeleted.d.ts.map +1 -1
- package/lib/mjs/events/UserDeleted.js +4 -11
- package/lib/mjs/events/UserDeleted.js.map +1 -1
- package/lib/mjs/events/UserEvent.d.ts +7 -0
- package/lib/mjs/events/UserEvent.d.ts.map +1 -0
- package/lib/mjs/events/{UserMetadataAdded.js → UserEvent.js} +9 -8
- package/lib/mjs/events/UserEvent.js.map +1 -0
- package/lib/mjs/events/UserLogged.d.ts +4 -0
- package/lib/mjs/events/UserLogged.d.ts.map +1 -0
- package/lib/mjs/events/{NewUser.js → UserLogged.js} +7 -6
- package/lib/mjs/events/UserLogged.js.map +1 -0
- package/lib/mjs/events/UserLoginFailed.d.ts +7 -0
- package/lib/mjs/events/UserLoginFailed.d.ts.map +1 -0
- package/lib/mjs/events/{UserMetadataDeleted.js → UserLoginFailed.js} +12 -10
- package/lib/mjs/events/UserLoginFailed.js.map +1 -0
- package/lib/mjs/events/UserMetadataChange.d.ts +14 -0
- package/lib/mjs/events/UserMetadataChange.d.ts.map +1 -0
- package/lib/mjs/events/UserMetadataChange.js +25 -0
- package/lib/mjs/events/UserMetadataChange.js.map +1 -0
- package/lib/mjs/events/UserPasswordChangeRequest.d.ts +4 -0
- package/lib/mjs/events/UserPasswordChangeRequest.d.ts.map +1 -0
- package/lib/mjs/events/UserPasswordChangeRequest.js +15 -0
- package/lib/mjs/events/UserPasswordChangeRequest.js.map +1 -0
- package/lib/mjs/events/UserPasswordChanged.d.ts +2 -4
- package/lib/mjs/events/UserPasswordChanged.d.ts.map +1 -1
- package/lib/mjs/events/UserPasswordChanged.js +4 -11
- package/lib/mjs/events/UserPasswordChanged.js.map +1 -1
- package/lib/mjs/events/UserPropertyChanged.d.ts +2 -6
- package/lib/mjs/events/UserPropertyChanged.d.ts.map +1 -1
- package/lib/mjs/events/UserPropertyChanged.js +6 -5
- package/lib/mjs/events/UserPropertyChanged.js.map +1 -1
- package/lib/mjs/events/UserRoleGranted.d.ts +5 -4
- package/lib/mjs/events/UserRoleGranted.d.ts.map +1 -1
- package/lib/mjs/events/UserRoleGranted.js +8 -6
- package/lib/mjs/events/UserRoleGranted.js.map +1 -1
- package/lib/mjs/events/UserRoleRevoked.d.ts +5 -4
- package/lib/mjs/events/UserRoleRevoked.d.ts.map +1 -1
- package/lib/mjs/events/UserRoleRevoked.js +8 -6
- package/lib/mjs/events/UserRoleRevoked.js.map +1 -1
- package/lib/mjs/events/UserUnbanned.d.ts +2 -4
- package/lib/mjs/events/UserUnbanned.d.ts.map +1 -1
- package/lib/mjs/events/UserUnbanned.js +4 -11
- package/lib/mjs/events/UserUnbanned.js.map +1 -1
- package/lib/mjs/events/index.d.ts +4 -4
- package/lib/mjs/events/index.d.ts.map +1 -1
- package/lib/mjs/events/index.js +4 -4
- package/lib/mjs/events/index.js.map +1 -1
- package/lib/mjs/index.d.ts +1 -1
- package/lib/mjs/index.d.ts.map +1 -1
- package/lib/mjs/index.js +1 -1
- package/lib/mjs/index.js.map +1 -1
- package/lib/mjs/interfaces.d.ts +11 -33
- package/lib/mjs/interfaces.d.ts.map +1 -1
- package/lib/mjs/interfaces.js +4 -4
- package/lib/mjs/interfaces.js.map +1 -1
- package/lib/mjs/migrations/RBACInitial_2022_06_28_01_13_00.d.ts.map +1 -1
- package/lib/mjs/migrations/RBACInitial_2022_06_28_01_13_00.js +3 -14
- package/lib/mjs/migrations/RBACInitial_2022_06_28_01_13_00.js.map +1 -1
- package/lib/mjs/models/User.d.ts +94 -28
- package/lib/mjs/models/User.d.ts.map +1 -1
- package/lib/mjs/models/User.js +150 -105
- package/lib/mjs/models/User.js.map +1 -1
- package/lib/mjs/models/UserMetadata.d.ts +2 -6
- package/lib/mjs/models/UserMetadata.d.ts.map +1 -1
- package/lib/mjs/models/UserMetadata.js +2 -10
- package/lib/mjs/models/UserMetadata.js.map +1 -1
- package/lib/mjs/session.d.ts +1 -1
- package/lib/mjs/session.d.ts.map +1 -1
- package/lib/mjs/session.js +5 -5
- 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 +16 -18
- package/lib/cjs/cli/ClearUserTimelineSchedule.d.ts +0 -9
- package/lib/cjs/cli/ClearUserTimelineSchedule.d.ts.map +0 -1
- package/lib/cjs/cli/ClearUserTimelineSchedule.js +0 -55
- package/lib/cjs/cli/ClearUserTimelineSchedule.js.map +0 -1
- package/lib/cjs/cli/LatestUserEvents.d.ts +0 -7
- package/lib/cjs/cli/LatestUserEvents.d.ts.map +0 -1
- package/lib/cjs/cli/LatestUserEvents.js +0 -38
- package/lib/cjs/cli/LatestUserEvents.js.map +0 -1
- package/lib/cjs/events/NewUser.d.ts.map +0 -1
- package/lib/cjs/events/NewUser.js.map +0 -1
- package/lib/cjs/events/UserMetadataAdded.d.ts +0 -6
- package/lib/cjs/events/UserMetadataAdded.d.ts.map +0 -1
- package/lib/cjs/events/UserMetadataAdded.js.map +0 -1
- package/lib/cjs/events/UserMetadataChanged.d.ts +0 -6
- package/lib/cjs/events/UserMetadataChanged.d.ts.map +0 -1
- package/lib/cjs/events/UserMetadataChanged.js.map +0 -1
- package/lib/cjs/events/UserMetadataDeleted.d.ts +0 -6
- package/lib/cjs/events/UserMetadataDeleted.d.ts.map +0 -1
- package/lib/cjs/events/UserMetadataDeleted.js.map +0 -1
- package/lib/cjs/jobs/UnbanUser.d.ts +0 -10
- package/lib/cjs/jobs/UnbanUser.d.ts.map +0 -1
- package/lib/cjs/jobs/UnbanUser.js +0 -44
- package/lib/cjs/jobs/UnbanUser.js.map +0 -1
- package/lib/cjs/models/UserTimeline.d.ts +0 -29
- package/lib/cjs/models/UserTimeline.d.ts.map +0 -1
- package/lib/cjs/models/UserTimeline.js +0 -47
- package/lib/cjs/models/UserTimeline.js.map +0 -1
- package/lib/mjs/cli/ClearUserTimelineSchedule.d.ts +0 -9
- package/lib/mjs/cli/ClearUserTimelineSchedule.d.ts.map +0 -1
- package/lib/mjs/cli/ClearUserTimelineSchedule.js +0 -52
- package/lib/mjs/cli/ClearUserTimelineSchedule.js.map +0 -1
- package/lib/mjs/cli/LatestUserEvents.d.ts +0 -7
- package/lib/mjs/cli/LatestUserEvents.d.ts.map +0 -1
- package/lib/mjs/cli/LatestUserEvents.js +0 -35
- package/lib/mjs/cli/LatestUserEvents.js.map +0 -1
- package/lib/mjs/events/NewUser.d.ts.map +0 -1
- package/lib/mjs/events/NewUser.js.map +0 -1
- package/lib/mjs/events/UserMetadataAdded.d.ts +0 -6
- package/lib/mjs/events/UserMetadataAdded.d.ts.map +0 -1
- package/lib/mjs/events/UserMetadataAdded.js.map +0 -1
- package/lib/mjs/events/UserMetadataChanged.d.ts +0 -6
- package/lib/mjs/events/UserMetadataChanged.d.ts.map +0 -1
- package/lib/mjs/events/UserMetadataChanged.js.map +0 -1
- package/lib/mjs/events/UserMetadataDeleted.d.ts +0 -6
- package/lib/mjs/events/UserMetadataDeleted.d.ts.map +0 -1
- package/lib/mjs/events/UserMetadataDeleted.js.map +0 -1
- package/lib/mjs/jobs/UnbanUser.d.ts +0 -10
- package/lib/mjs/jobs/UnbanUser.d.ts.map +0 -1
- package/lib/mjs/jobs/UnbanUser.js +0 -41
- package/lib/mjs/jobs/UnbanUser.js.map +0 -1
- package/lib/mjs/models/UserTimeline.d.ts +0 -29
- package/lib/mjs/models/UserTimeline.d.ts.map +0 -1
- package/lib/mjs/models/UserTimeline.js +0 -44
- package/lib/mjs/models/UserTimeline.js.map +0 -1
package/lib/cjs/session.js
CHANGED
|
@@ -12,7 +12,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
12
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.MemorySessionStore = exports.
|
|
15
|
+
exports.MemorySessionStore = exports.UserSession = void 0;
|
|
16
16
|
const luxon_1 = require("luxon");
|
|
17
17
|
const interfaces_js_1 = require("./interfaces.js");
|
|
18
18
|
const di_1 = require("@spinajs/di");
|
|
@@ -22,7 +22,7 @@ const lodash_1 = __importDefault(require("lodash"));
|
|
|
22
22
|
/**
|
|
23
23
|
* Session base class
|
|
24
24
|
*/
|
|
25
|
-
let
|
|
25
|
+
let UserSession = class UserSession {
|
|
26
26
|
constructor(session) {
|
|
27
27
|
this.SessionId = (0, uuid_1.v4)();
|
|
28
28
|
/**
|
|
@@ -44,15 +44,15 @@ let Session = class Session {
|
|
|
44
44
|
this.Expiration = luxon_1.DateTime.now().plus({ seconds: seconds ? seconds : this.SessionExpirationTime });
|
|
45
45
|
}
|
|
46
46
|
};
|
|
47
|
-
exports.
|
|
47
|
+
exports.UserSession = UserSession;
|
|
48
48
|
__decorate([
|
|
49
49
|
(0, configuration_1.Config)('rbac.session.expiration'),
|
|
50
50
|
__metadata("design:type", Number)
|
|
51
|
-
],
|
|
52
|
-
exports.
|
|
51
|
+
], UserSession.prototype, "SessionExpirationTime", void 0);
|
|
52
|
+
exports.UserSession = UserSession = __decorate([
|
|
53
53
|
(0, di_1.NewInstance)(),
|
|
54
54
|
__metadata("design:paramtypes", [Object])
|
|
55
|
-
],
|
|
55
|
+
], UserSession);
|
|
56
56
|
/**
|
|
57
57
|
* Simple session storage in memory, for testing or rapid prototyping
|
|
58
58
|
*/
|
package/lib/cjs/session.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/session.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,iCAAiC;AACjC,mDAA4D;AAC5D,oCAAsD;AACtD,0DAAgD;AAChD,+BAAoC;AACpC,oDAAuB;AAEvB;;GAEG;AAEI,IAAM,
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/session.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,iCAAiC;AACjC,mDAA4D;AAC5D,oCAAsD;AACtD,0DAAgD;AAChD,+BAAoC;AACpC,oDAAuB;AAEvB;;GAEG;AAEI,IAAM,WAAW,GAAjB,MAAM,WAAW;IAetB,YAAY,OAA2B;QAXhC,cAAS,GAAW,IAAA,SAAM,GAAE,CAAC;QAEpC;;WAEG;QACI,eAAU,GAAa,IAAI,CAAC;QAE5B,SAAI,GAAyB,IAAI,GAAG,EAAE,CAAC;QAEvC,aAAQ,GAAa,gBAAQ,CAAC,GAAG,EAAE,CAAC;QAGzC,IAAI,OAAO,EAAE;YACX,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;SAC9B;IACH,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,OAAgB;QAC5B,IAAI,CAAC,UAAU,GAAG,gBAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC;IACrG,CAAC;CACF,CAAA;AA7BY,kCAAW;AAEZ;IADT,IAAA,sBAAM,EAAC,yBAAyB,CAAC;;0DACM;sBAF7B,WAAW;IADvB,IAAA,gBAAW,GAAE;;GACD,WAAW,CA6BvB;AAED;;GAEG;AAEI,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,+BAAyB;IAA1D;;QACK,aAAQ,GAA0B,IAAI,GAAG,EAAoB,CAAC;IAuC1E,CAAC;IArCQ,KAAK,CAAC,QAAQ;QACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC9C,CAAC;IAEM,KAAK,CAAC,KAAK,CAAC,OAAiB;QAClC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,SAAiB;QACpC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;YAChC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC7C,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,GAAG,gBAAQ,CAAC,GAAG,EAAE,EAAE;gBAC9D,OAAO,OAAO,CAAC;aAChB;YACD,OAAO,IAAI,CAAC;SACb;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,SAAiB;QACnC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;YAChC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;SACjC;IACH,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,WAA8B,EAAE,IAAa;QAC7D,IAAI,gBAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;YAC3B,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YAEzC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;gBACtB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAG,IAAY,CAAC,GAAG,CAAC,CAAC,CAAC;aACrC;SACF;aAAM;YACL,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;SACvD;IACH,CAAC;CACF,CAAA;AAxCY,gDAAkB;6BAAlB,kBAAkB;IAD9B,IAAA,eAAU,EAAC,+BAAe,CAAC;GACf,kBAAkB,CAwC9B"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { User } from './models/User.js';
|
|
2
|
+
import { Constructor } from '@spinajs/di';
|
|
3
|
+
import { UserEvent } from './events/UserEvent.js';
|
|
4
|
+
export declare enum E_CODES {
|
|
5
|
+
E_TOKEN_EXPIRED = 0,
|
|
6
|
+
E_TOKEN_INVALID = 1,
|
|
7
|
+
E_PASSWORD_DOES_NOT_MEET_REQUIREMENTS = 2,
|
|
8
|
+
E_USER_NOT_FOUND = 3,
|
|
9
|
+
E_USER_ALREADY_EXISTS = 4,
|
|
10
|
+
E_USER_NOT_ACTIVE = 5,
|
|
11
|
+
E_USER_BANNED = 6,
|
|
12
|
+
E_METADATA_NOT_FOUND = 7,
|
|
13
|
+
E_METADATA_NOT_POPULATED = 8,
|
|
14
|
+
E_EMAIL_NOT_CONFIGURED = 9,
|
|
15
|
+
E_NO_EMAIL_TEMPLATE = 10,
|
|
16
|
+
E_NOT_LOGGED = 11
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* ===============================================
|
|
20
|
+
* HELPER FUNCTIONS
|
|
21
|
+
* ===============================================
|
|
22
|
+
*/
|
|
23
|
+
export declare function _set_user_meta(meta: string | {
|
|
24
|
+
key: string;
|
|
25
|
+
value: any;
|
|
26
|
+
}[], value?: any): (u: User) => Promise<User>;
|
|
27
|
+
export declare function _get_user_meta(key: string): (u: User) => Promise<any>;
|
|
28
|
+
/**
|
|
29
|
+
* Helper function for sending user notification emails
|
|
30
|
+
* Templates are defined in rbac configuration
|
|
31
|
+
*
|
|
32
|
+
* @param cfgTemplate
|
|
33
|
+
* @returns
|
|
34
|
+
*/
|
|
35
|
+
export declare function _user_email(cfgTemplate: 'changePassword' | 'created' | 'confirm' | 'deactivated' | 'activated' | 'deleted' | 'unbanned' | 'banned'): (u: User) => Promise<void>;
|
|
36
|
+
export declare function _user_ev(event: Constructor<UserEvent>, ...args: any[]): (u: User) => Promise<User>;
|
|
37
|
+
export declare function _user_update(data?: Partial<User>): (u: User) => Promise<User>;
|
|
38
|
+
export declare function _user(identifier: number | string | User): () => Promise<User>;
|
|
39
|
+
/**
|
|
40
|
+
* ===============================================
|
|
41
|
+
* USER ACTIONS
|
|
42
|
+
* ===============================================
|
|
43
|
+
*/
|
|
44
|
+
export declare function activate(identifier: number | string | User): Promise<unknown>;
|
|
45
|
+
export declare function deactivate(identifier: number | string): Promise<void>;
|
|
46
|
+
export declare function create(email: string, login: string, password: string, roles: string[]): Promise<{
|
|
47
|
+
User: User;
|
|
48
|
+
Password: string;
|
|
49
|
+
}>;
|
|
50
|
+
export declare function deleteUser(identifier: number | string | User): Promise<void>;
|
|
51
|
+
export declare function grant(identifier: number | string, role: string): Promise<User>;
|
|
52
|
+
export declare function revoke(identifier: number | string | User, role: string): Promise<User>;
|
|
53
|
+
/**
|
|
54
|
+
*
|
|
55
|
+
* Bans user for specified time. If duration is 0 user is banned for 24h
|
|
56
|
+
*
|
|
57
|
+
* @param identifier user identifier one of : id, uuid, email, login
|
|
58
|
+
* @param reason reson for ban
|
|
59
|
+
* @param duration duration in seconds
|
|
60
|
+
* @returns
|
|
61
|
+
*/
|
|
62
|
+
export declare function ban(identifier: number | string | User, reason?: string, duration?: number): Promise<User>;
|
|
63
|
+
/**
|
|
64
|
+
*
|
|
65
|
+
* Unban user
|
|
66
|
+
*
|
|
67
|
+
* @param identifier
|
|
68
|
+
* @returns
|
|
69
|
+
*/
|
|
70
|
+
export declare function unban(identifier: number | string | User): Promise<User>;
|
|
71
|
+
export declare function passwordChangeRequest(identifier: number | string | User): Promise<unknown>;
|
|
72
|
+
export declare function confirmPasswordReset(identifier: number | string | User, newPassword: string, token: string): Promise<unknown>;
|
|
73
|
+
export declare function changePassword(password: string): Promise<(u: User) => Promise<User>>;
|
|
74
|
+
export declare function auth(identifier: number | string | User, password: string): Promise<User>;
|
|
75
|
+
//# sourceMappingURL=actions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../src/actions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
import { _insert, _update } from '@spinajs/orm';
|
|
2
|
+
import { _use, _zip, _tap, _chain, _catch, _check_arg, _gt, _non_nil, _is_email, _non_empty, _trim, _is_number, _is_string, _default, _max_length, _to_array } from '@spinajs/util';
|
|
3
|
+
import _ from 'lodash';
|
|
4
|
+
import { _email_deferred } from '@spinajs/email';
|
|
5
|
+
import { _ev } from '@spinajs/queue';
|
|
6
|
+
import { USER_COMMON_METADATA, User } from './models/User.js';
|
|
7
|
+
import { _cfg, _service } from '@spinajs/configuration';
|
|
8
|
+
import { UserActivated, UserBanned, UserChanged, UserCreated, UserDeactivated, UserDeleted, UserLogged, UserPasswordChangeRequest, UserPasswordChanged, UserRoleGranted, UserRoleRevoked, UserUnbanned } from './events/index.js';
|
|
9
|
+
import { AuthProvider, PasswordProvider, PasswordValidationProvider } from './interfaces.js';
|
|
10
|
+
import { DateTime } from 'luxon';
|
|
11
|
+
import { ErrorCode } from '@spinajs/exceptions';
|
|
12
|
+
import { v4 as uuidv4 } from 'uuid';
|
|
13
|
+
import { UserLoginFailed } from './events/UserLoginFailed.js';
|
|
14
|
+
import { UserMetadataChange } from './events/UserMetadataChange.js';
|
|
15
|
+
export var E_CODES;
|
|
16
|
+
(function (E_CODES) {
|
|
17
|
+
E_CODES[E_CODES["E_TOKEN_EXPIRED"] = 0] = "E_TOKEN_EXPIRED";
|
|
18
|
+
E_CODES[E_CODES["E_TOKEN_INVALID"] = 1] = "E_TOKEN_INVALID";
|
|
19
|
+
E_CODES[E_CODES["E_PASSWORD_DOES_NOT_MEET_REQUIREMENTS"] = 2] = "E_PASSWORD_DOES_NOT_MEET_REQUIREMENTS";
|
|
20
|
+
E_CODES[E_CODES["E_USER_NOT_FOUND"] = 3] = "E_USER_NOT_FOUND";
|
|
21
|
+
E_CODES[E_CODES["E_USER_ALREADY_EXISTS"] = 4] = "E_USER_ALREADY_EXISTS";
|
|
22
|
+
E_CODES[E_CODES["E_USER_NOT_ACTIVE"] = 5] = "E_USER_NOT_ACTIVE";
|
|
23
|
+
E_CODES[E_CODES["E_USER_BANNED"] = 6] = "E_USER_BANNED";
|
|
24
|
+
E_CODES[E_CODES["E_METADATA_NOT_FOUND"] = 7] = "E_METADATA_NOT_FOUND";
|
|
25
|
+
E_CODES[E_CODES["E_METADATA_NOT_POPULATED"] = 8] = "E_METADATA_NOT_POPULATED";
|
|
26
|
+
E_CODES[E_CODES["E_EMAIL_NOT_CONFIGURED"] = 9] = "E_EMAIL_NOT_CONFIGURED";
|
|
27
|
+
E_CODES[E_CODES["E_NO_EMAIL_TEMPLATE"] = 10] = "E_NO_EMAIL_TEMPLATE";
|
|
28
|
+
E_CODES[E_CODES["E_NOT_LOGGED"] = 11] = "E_NOT_LOGGED";
|
|
29
|
+
})(E_CODES || (E_CODES = {}));
|
|
30
|
+
/**
|
|
31
|
+
* ===============================================
|
|
32
|
+
* HELPER FUNCTIONS
|
|
33
|
+
* ===============================================
|
|
34
|
+
*/
|
|
35
|
+
export function _set_user_meta(meta, value = null) {
|
|
36
|
+
return async (u) => {
|
|
37
|
+
const mArgs = _check_arg(_non_nil(new ErrorCode(E_CODES.E_METADATA_NOT_POPULATED, 'User metadata not loaded', { user: u })), _to_array())(meta, 'Metadata');
|
|
38
|
+
mArgs.forEach((m) => {
|
|
39
|
+
_.isString(m) ? (u.Metadata[m] = value) : (u.Metadata[m.key] = m.value);
|
|
40
|
+
});
|
|
41
|
+
await _chain(u, _tap(() => u.Metadata.sync()), _user_ev(UserMetadataChange, () => {
|
|
42
|
+
return mArgs.map((m) => {
|
|
43
|
+
return _.isString(m) ? { key: m, value } : m;
|
|
44
|
+
});
|
|
45
|
+
}));
|
|
46
|
+
return u;
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
export function _get_user_meta(key) {
|
|
50
|
+
return async (u) => {
|
|
51
|
+
_check_arg(_non_nil(new ErrorCode(E_CODES.E_METADATA_NOT_POPULATED, 'User metadata not loaded', { user: u, key })))(u.Metadata, 'Metadata');
|
|
52
|
+
_check_arg(_non_nil(new ErrorCode(E_CODES.E_METADATA_NOT_FOUND, 'Metadata not found in user data', { user: u, key })))(u.Metadata[key], `Metadata.${key}`);
|
|
53
|
+
return u.Metadata[key];
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Helper function for sending user notification emails
|
|
58
|
+
* Templates are defined in rbac configuration
|
|
59
|
+
*
|
|
60
|
+
* @param cfgTemplate
|
|
61
|
+
* @returns
|
|
62
|
+
*/
|
|
63
|
+
export function _user_email(cfgTemplate) {
|
|
64
|
+
return async (u) => {
|
|
65
|
+
return _chain(_use(_cfg('rbac.email.connection', 'default'), 'connection'), _use(_cfg(`rbac.email.${cfgTemplate}`), 'template'), ({ connection, template }) => {
|
|
66
|
+
_check_arg(_non_nil(new ErrorCode(E_CODES.E_NO_EMAIL_TEMPLATE, `Email template ${cfgTemplate} not configured. Check rbac.email in config`)))(template, 'template');
|
|
67
|
+
_check_arg(_is_string(_non_empty(), _max_length(128)))(template.template, 'email.template');
|
|
68
|
+
_check_arg(_is_string(_non_empty(), _max_length(128)))(template.subject, 'email.subject');
|
|
69
|
+
return (template.enabled &&
|
|
70
|
+
_email_deferred({
|
|
71
|
+
to: [u.Email],
|
|
72
|
+
connection,
|
|
73
|
+
model: u.toJSON(),
|
|
74
|
+
tag: `rbac-user-${cfgTemplate}`,
|
|
75
|
+
template: template.template,
|
|
76
|
+
subject: template.subject,
|
|
77
|
+
}));
|
|
78
|
+
});
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
export function _user_ev(event, ...args) {
|
|
82
|
+
return async (u) => {
|
|
83
|
+
await _ev(new event(u, ...args))();
|
|
84
|
+
return u;
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
export function _user_update(data) {
|
|
88
|
+
return async (u) => {
|
|
89
|
+
await _chain(u, _update(data), _user_ev(UserChanged));
|
|
90
|
+
return u;
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
export function _user(identifier) {
|
|
94
|
+
const id = _check_arg(_trim(), _non_nil())(identifier, 'identifier');
|
|
95
|
+
if (id instanceof User) {
|
|
96
|
+
return () => Promise.resolve(id);
|
|
97
|
+
}
|
|
98
|
+
return () => User.query().whereAnything(id).populate('Metadata').firstOrFail();
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* ===============================================
|
|
102
|
+
* USER ACTIONS
|
|
103
|
+
* ===============================================
|
|
104
|
+
*/
|
|
105
|
+
export async function activate(identifier) {
|
|
106
|
+
return _chain(_user(identifier), _user_update({ IsActive: true }), _user_ev(UserActivated), _user_email('activated'));
|
|
107
|
+
}
|
|
108
|
+
export async function deactivate(identifier) {
|
|
109
|
+
return _chain(_user(identifier), _user_update({ IsActive: false }), _user_ev(UserDeactivated), _user_email('deactivated'));
|
|
110
|
+
}
|
|
111
|
+
export async function create(email, login, password, roles) {
|
|
112
|
+
const sPassword = await _service('rbac.password', PasswordProvider)();
|
|
113
|
+
email = _check_arg(_trim(), _non_empty(), _is_email(), _max_length(64))(email, 'email');
|
|
114
|
+
login = _check_arg(_trim(), _non_empty(), _max_length(32))(login, 'login');
|
|
115
|
+
password = _check_arg(_trim(), _default(() => sPassword.generate()))(password, 'password');
|
|
116
|
+
const hPassword = await sPassword.hash(password);
|
|
117
|
+
return _chain(
|
|
118
|
+
// create user
|
|
119
|
+
() => Promise.resolve(new User({
|
|
120
|
+
Email: email,
|
|
121
|
+
Login: login,
|
|
122
|
+
Password: hPassword,
|
|
123
|
+
Role: roles,
|
|
124
|
+
RegisteredAt: DateTime.now(),
|
|
125
|
+
IsActive: false,
|
|
126
|
+
Uuid: uuidv4(),
|
|
127
|
+
})),
|
|
128
|
+
// insert to db
|
|
129
|
+
_insert(),
|
|
130
|
+
// send event
|
|
131
|
+
_user_ev(UserCreated, (u) => u.toJSON()),
|
|
132
|
+
// send email if needed
|
|
133
|
+
_tap(_user_email('confirm')), // send email
|
|
134
|
+
// return user & password - if generated we want to know not hashed password
|
|
135
|
+
(u) => {
|
|
136
|
+
return { User: u, Password: password };
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
export async function deleteUser(identifier) {
|
|
140
|
+
return _chain(_user(identifier), _tap((u) => u.destroy()), _user_ev(UserDeleted), _user_email('deleted'));
|
|
141
|
+
}
|
|
142
|
+
export async function grant(identifier, role) {
|
|
143
|
+
role = _check_arg(_trim(), _non_empty())(role, 'role');
|
|
144
|
+
return _chain(_user(identifier), _tap(async (u) => (u.Role = _.uniq([...u.Role, role]))), _user_update(), _user_ev(UserRoleGranted, role));
|
|
145
|
+
}
|
|
146
|
+
export async function revoke(identifier, role) {
|
|
147
|
+
role = _check_arg(_trim(), _non_empty())(role, 'role');
|
|
148
|
+
return _chain(_user(identifier), _tap(async (u) => (u.Role = u.Role.filter((r) => r !== role))), _user_update(), _user_ev(UserRoleRevoked, role));
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
*
|
|
152
|
+
* Bans user for specified time. If duration is 0 user is banned for 24h
|
|
153
|
+
*
|
|
154
|
+
* @param identifier user identifier one of : id, uuid, email, login
|
|
155
|
+
* @param reason reson for ban
|
|
156
|
+
* @param duration duration in seconds
|
|
157
|
+
* @returns
|
|
158
|
+
*/
|
|
159
|
+
export async function ban(identifier, reason, duration) {
|
|
160
|
+
duration = _check_arg(_default(24 * 60 * 60), _is_number(_gt(0)))(duration, 'duration');
|
|
161
|
+
reason = _check_arg(_default('NO_REASON'), _max_length(255))(reason, 'reason');
|
|
162
|
+
return _chain(_user(identifier), (u) => {
|
|
163
|
+
if (u.Metadata[USER_COMMON_METADATA.USER_BAN_IS_BANNED]) {
|
|
164
|
+
throw new ErrorCode(E_CODES.E_USER_BANNED, `User is already banned`, { user: u });
|
|
165
|
+
}
|
|
166
|
+
return u;
|
|
167
|
+
}, _set_user_meta([
|
|
168
|
+
{ key: USER_COMMON_METADATA.USER_BAN_DURATION, value: duration },
|
|
169
|
+
{ key: USER_COMMON_METADATA.USER_BAN_REASON, value: reason },
|
|
170
|
+
{ key: USER_COMMON_METADATA.USER_BAN_IS_BANNED, value: true },
|
|
171
|
+
{ key: USER_COMMON_METADATA.USER_BAN_START_DATE, value: DateTime.now() },
|
|
172
|
+
]), _user_ev(UserBanned), _user_email('banned'));
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
*
|
|
176
|
+
* Unban user
|
|
177
|
+
*
|
|
178
|
+
* @param identifier
|
|
179
|
+
* @returns
|
|
180
|
+
*/
|
|
181
|
+
export async function unban(identifier) {
|
|
182
|
+
return _chain(_user(identifier), (u) => {
|
|
183
|
+
if (!u.Metadata[USER_COMMON_METADATA.USER_BAN_IS_BANNED]) {
|
|
184
|
+
throw new ErrorCode(E_CODES.E_USER_BANNED, `User is already unbanned`, { user: u });
|
|
185
|
+
}
|
|
186
|
+
}, _set_user_meta('/^user:ban/', null), _user_ev(UserUnbanned), _user_email('unbanned'));
|
|
187
|
+
}
|
|
188
|
+
export async function passwordChangeRequest(identifier) {
|
|
189
|
+
const pwdWaitTime = await _cfg('rbac.password.reset_wait_time')();
|
|
190
|
+
return _chain(_user(identifier), _set_user_meta([
|
|
191
|
+
{ key: USER_COMMON_METADATA.USER_PWD_RESET_START_DATE, value: DateTime.now() },
|
|
192
|
+
{ key: USER_COMMON_METADATA.USER_PWD_RESET_TOKEN, value: uuidv4() },
|
|
193
|
+
{ key: USER_COMMON_METADATA.USER_PWD_RESET_WAIT_TIME, value: pwdWaitTime },
|
|
194
|
+
]), _user_ev(UserPasswordChangeRequest), _user_email('changePassword'));
|
|
195
|
+
}
|
|
196
|
+
export async function confirmPasswordReset(identifier, newPassword, token) {
|
|
197
|
+
return _chain(_user(identifier), _tap((u) => _chain(u, _zip(_get_user_meta(USER_COMMON_METADATA.USER_PWD_RESET_START_DATE), _get_user_meta(USER_COMMON_METADATA.USER_PWD_RESET_WAIT_TIME)), ([dueDate, waitTime]) => {
|
|
198
|
+
if (dueDate.plus(waitTime) < DateTime.now()) {
|
|
199
|
+
throw new ErrorCode(E_CODES.E_TOKEN_EXPIRED, `Password change token expired, token expiration date is: ${dueDate.toISO()}`, {
|
|
200
|
+
dueDate,
|
|
201
|
+
waitTime,
|
|
202
|
+
time: DateTime.now(),
|
|
203
|
+
user: u,
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
})), _tap((u) => _chain(u, _get_user_meta(USER_COMMON_METADATA.USER_PWD_RESET_TOKEN), async (resetToken) => {
|
|
207
|
+
if (resetToken !== token) {
|
|
208
|
+
throw new ErrorCode(E_CODES.E_TOKEN_INVALID, `Password change token invalid, operation not permitted`, {
|
|
209
|
+
token,
|
|
210
|
+
resetToken,
|
|
211
|
+
user: u,
|
|
212
|
+
});
|
|
213
|
+
}
|
|
214
|
+
})), changePassword(newPassword));
|
|
215
|
+
}
|
|
216
|
+
export async function changePassword(password) {
|
|
217
|
+
password = _check_arg(_trim(), _non_empty())(password, 'password');
|
|
218
|
+
return async (u) => {
|
|
219
|
+
return _chain(_use(_service('rbac.password', PasswordProvider), 'pwd'), _use(_service('rbac.password.validation', PasswordValidationProvider), 'validator'), _tap(async ({ validator }) => {
|
|
220
|
+
if (!validator.check(password)) {
|
|
221
|
+
throw new Error('Password does not meet requirements');
|
|
222
|
+
}
|
|
223
|
+
}),
|
|
224
|
+
// update password
|
|
225
|
+
({ pwd }) => pwd.hash(password), (hPassword) => _chain(u, _update({ Password: hPassword }), _set_user_meta('/^user:pwd_reset/'), _user_ev(UserPasswordChanged)));
|
|
226
|
+
};
|
|
227
|
+
}
|
|
228
|
+
export async function auth(identifier, password) {
|
|
229
|
+
password = _check_arg(_trim(), _non_empty())(password, 'password');
|
|
230
|
+
return await _chain(_user(identifier), _catch((u) => {
|
|
231
|
+
return _chain(_service('rbac.auth', AuthProvider), async (sAuth) => sAuth.authenticate(u.Email, password), _update({ LastLoginAt: DateTime.now() }), _user_ev(UserLogged));
|
|
232
|
+
}, (err, u) => {
|
|
233
|
+
return _chain(() => u,
|
|
234
|
+
// send event of failed login
|
|
235
|
+
_user_ev(UserLoginFailed, err),
|
|
236
|
+
// rethrow error for caller
|
|
237
|
+
() => {
|
|
238
|
+
throw err;
|
|
239
|
+
});
|
|
240
|
+
}));
|
|
241
|
+
}
|
|
242
|
+
//# sourceMappingURL=actions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"actions.js","sourceRoot":"","sources":["../../src/actions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ,EAAW,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAO,UAAU,EAAW,QAAQ,EAAY,WAAW,EAA0B,SAAS,EAAE,MAAM,eAAe,CAAC;AAC7O,OAAO,CAAC,MAAM,QAAQ,CAAC;AACvB,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,EAAE,oBAAoB,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,eAAe,EAAE,WAAW,EAAE,UAAU,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,eAAe,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGlO,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAC7F,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEpE,MAAM,CAAN,IAAY,OAwBX;AAxBD,WAAY,OAAO;IACjB,2DAAe,CAAA;IAEf,2DAAe,CAAA;IAEf,uGAAqC,CAAA;IAErC,6DAAgB,CAAA;IAEhB,uEAAqB,CAAA;IAErB,+DAAiB,CAAA;IAEjB,uDAAa,CAAA;IAEb,qEAAoB,CAAA;IAEpB,6EAAwB,CAAA;IAExB,yEAAsB,CAAA;IAEtB,oEAAmB,CAAA;IAEnB,sDAAY,CAAA;AACd,CAAC,EAxBW,OAAO,KAAP,OAAO,QAwBlB;AAED;;;;GAIG;AAEH,MAAM,UAAU,cAAc,CAAC,IAA4C,EAAE,QAAa,IAAI;IAC5F,OAAO,KAAK,EAAE,CAAO,EAAE,EAAE;QACvB,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC,wBAAwB,EAAE,0BAA0B,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAE5J,KAAK,CAAC,OAAO,CAAC,CAAC,CAAuC,EAAE,EAAE;YACxD,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QAC1E,CAAC,CAAC,CAAC;QAEH,MAAM,MAAM,CACV,CAAC,EACD,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,EAC7B,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;YAChC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAuC,EAAE,EAAE;gBAC3D,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/C,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CACH,CAAC;QAEF,OAAO,CAAC,CAAC;IACX,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,GAAW;IACxC,OAAO,KAAK,EAAE,CAAO,EAAE,EAAE;QACvB,UAAU,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC,wBAAwB,EAAE,0BAA0B,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAC5I,UAAU,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC,oBAAoB,EAAE,iCAAiC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,YAAY,GAAG,EAAE,CAAC,CAAC;QAE3J,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,WAAuH;IAOjJ,OAAO,KAAK,EAAE,CAAO,EAAE,EAAE;QACvB,OAAO,MAAM,CAAO,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,SAAS,CAAC,EAAE,YAAY,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,WAAW,EAAE,CAAC,EAAE,UAAU,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,QAAQ,EAA2C,EAAE,EAAE;YAC3M,UAAU,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC,mBAAmB,EAAE,kBAAkB,WAAW,6CAA6C,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;YACnK,UAAU,CAAC,UAAU,CAAC,UAAU,EAAE,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;YAC5F,UAAU,CAAC,UAAU,CAAC,UAAU,EAAE,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;YAE1F,OAAO,CACL,QAAQ,CAAC,OAAO;gBAChB,eAAe,CAAC;oBACd,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;oBACb,UAAU;oBACV,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;oBACjB,GAAG,EAAE,aAAa,WAAW,EAAE;oBAC/B,QAAQ,EAAE,QAAQ,CAAC,QAAQ;oBAC3B,OAAO,EAAE,QAAQ,CAAC,OAAO;iBAC1B,CAAC,CACH,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAA6B,EAAE,GAAG,IAAW;IACpE,OAAO,KAAK,EAAE,CAAO,EAAE,EAAE;QACvB,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC;QACnC,OAAO,CAAC,CAAC;IACX,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAoB;IAC/C,OAAO,KAAK,EAAE,CAAO,EAAE,EAAE;QACvB,MAAM,MAAM,CAAC,CAAC,EAAE,OAAO,CAAO,IAAI,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;QAC5D,OAAO,CAAC,CAAC;IACX,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,UAAkC;IACtD,MAAM,EAAE,GAAG,UAAU,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IAErE,IAAI,EAAE,YAAY,IAAI,EAAE;QACtB,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;KAClC;IAED,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC;AACjF,CAAC;AAED;;;;GAIG;AAEH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,UAAkC;IAC/D,OAAO,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,YAAY,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,CAAC,aAAa,CAAC,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC;AACxH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,UAA2B;IAC1D,OAAO,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,YAAY,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC;AAC7H,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,KAAa,EAAE,KAAa,EAAE,QAAgB,EAAE,KAAe;IAC1F,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,eAAe,EAAE,gBAAgB,CAAC,EAAE,CAAC;IAEtE,KAAK,GAAG,UAAU,CAAC,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACxF,KAAK,GAAG,UAAU,CAAC,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC3E,QAAQ,GAAG,UAAU,CACnB,KAAK,EAAE,EACP,QAAQ,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CACrC,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAExB,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAEjD,OAAO,MAAM;IACX,cAAc;IACd,GAAG,EAAE,CACH,OAAO,CAAC,OAAO,CACb,IAAI,IAAI,CAAC;QACP,KAAK,EAAE,KAAK;QACZ,KAAK,EAAE,KAAK;QACZ,QAAQ,EAAE,SAAS;QACnB,IAAI,EAAE,KAAK;QACX,YAAY,EAAE,QAAQ,CAAC,GAAG,EAAE;QAC5B,QAAQ,EAAE,KAAK;QACf,IAAI,EAAE,MAAM,EAAE;KACf,CAAC,CACH;IAEH,eAAe;IACf,OAAO,EAAE;IAET,aAAa;IACb,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAO,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAE9C,uBAAuB;IACvB,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,aAAa;IAE3C,4EAA4E;IAC5E,CAAC,CAAO,EAAE,EAAE;QACV,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;IACzC,CAAC,CACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,UAAkC;IACjE,OAAO,MAAM,CACX,KAAK,CAAC,UAAU,CAAC,EACjB,IAAI,CAAC,CAAC,CAAO,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,EAC9B,QAAQ,CAAC,WAAW,CAAC,EACrB,WAAW,CAAC,SAAS,CAAC,CACvB,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,KAAK,CAAC,UAA2B,EAAE,IAAY;IACnE,IAAI,GAAG,UAAU,CAAC,KAAK,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAEvD,OAAO,MAAM,CACX,KAAK,CAAC,UAAU,CAAC,EACjB,IAAI,CAAC,KAAK,EAAE,CAAO,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAC7D,YAAY,EAAE,EACd,QAAQ,CAAC,eAAe,EAAE,IAAI,CAAC,CAChC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,UAAkC,EAAE,IAAY;IAC3E,IAAI,GAAG,UAAU,CAAC,KAAK,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAEvD,OAAO,MAAM,CACX,KAAK,CAAC,UAAU,CAAC,EACjB,IAAI,CAAC,KAAK,EAAE,CAAO,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,EACpE,YAAY,EAAE,EACd,QAAQ,CAAC,eAAe,EAAE,IAAI,CAAC,CAChC,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,UAAkC,EAAE,MAAe,EAAE,QAAiB;IAC9F,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACxF,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAE/E,OAAO,MAAM,CACX,KAAK,CAAC,UAAU,CAAC,EACjB,CAAC,CAAO,EAAE,EAAE;QACV,IAAI,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,EAAE;YACvD,MAAM,IAAI,SAAS,CAAC,OAAO,CAAC,aAAa,EAAE,wBAAwB,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;SACnF;QAED,OAAO,CAAC,CAAC;IACX,CAAC,EACD,cAAc,CAAC;QACb,EAAE,GAAG,EAAE,oBAAoB,CAAC,iBAAiB,EAAE,KAAK,EAAE,QAAQ,EAAE;QAChE,EAAE,GAAG,EAAE,oBAAoB,CAAC,eAAe,EAAE,KAAK,EAAE,MAAM,EAAE;QAC5D,EAAE,GAAG,EAAE,oBAAoB,CAAC,kBAAkB,EAAE,KAAK,EAAE,IAAI,EAAE;QAC7D,EAAE,GAAG,EAAE,oBAAoB,CAAC,mBAAmB,EAAE,KAAK,EAAE,QAAQ,CAAC,GAAG,EAAE,EAAE;KACzE,CAAC,EACF,QAAQ,CAAC,UAAU,CAAC,EACpB,WAAW,CAAC,QAAQ,CAAC,CACtB,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,KAAK,CAAC,UAAkC;IAC5D,OAAO,MAAM,CACX,KAAK,CAAC,UAAU,CAAC,EACjB,CAAC,CAAO,EAAE,EAAE;QACV,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,EAAE;YACxD,MAAM,IAAI,SAAS,CAAC,OAAO,CAAC,aAAa,EAAE,0BAA0B,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;SACrF;IACH,CAAC,EACD,cAAc,CAAC,aAAa,EAAE,IAAI,CAAC,EACnC,QAAQ,CAAC,YAAY,CAAC,EACtB,WAAW,CAAC,UAAU,CAAC,CACxB,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,UAAkC;IAC5E,MAAM,WAAW,GAAG,MAAM,IAAI,CAAS,+BAA+B,CAAC,EAAE,CAAC;IAE1E,OAAO,MAAM,CACX,KAAK,CAAC,UAAU,CAAC,EACjB,cAAc,CAAC;QACb,EAAE,GAAG,EAAE,oBAAoB,CAAC,yBAAyB,EAAE,KAAK,EAAE,QAAQ,CAAC,GAAG,EAAE,EAAE;QAC9E,EAAE,GAAG,EAAE,oBAAoB,CAAC,oBAAoB,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QACnE,EAAE,GAAG,EAAE,oBAAoB,CAAC,wBAAwB,EAAE,KAAK,EAAE,WAAW,EAAE;KAC3E,CAAC,EACF,QAAQ,CAAC,yBAAyB,CAAC,EACnC,WAAW,CAAC,gBAAgB,CAAC,CAC9B,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,UAAkC,EAAE,WAAmB,EAAE,KAAa;IAC/G,OAAO,MAAM,CACX,KAAK,CAAC,UAAU,CAAC,EACjB,IAAI,CAAC,CAAC,CAAO,EAAE,EAAE,CACf,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,yBAAyB,CAAC,EAAE,cAAc,CAAC,oBAAoB,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAqB,EAAE,EAAE;QACzL,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE;YAC3C,MAAM,IAAI,SAAS,CAAC,OAAO,CAAC,eAAe,EAAE,4DAA4D,OAAO,CAAC,KAAK,EAAE,EAAE,EAAE;gBAC1H,OAAO;gBACP,QAAQ;gBACR,IAAI,EAAE,QAAQ,CAAC,GAAG,EAAE;gBACpB,IAAI,EAAE,CAAC;aACR,CAAC,CAAC;SACJ;IACH,CAAC,CAAC,CACH,EACD,IAAI,CAAC,CAAC,CAAO,EAAE,EAAE,CACf,MAAM,CAAC,CAAC,EAAE,cAAc,CAAC,oBAAoB,CAAC,oBAAoB,CAAC,EAAE,KAAK,EAAE,UAAkB,EAAE,EAAE;QAChG,IAAI,UAAU,KAAK,KAAK,EAAE;YACxB,MAAM,IAAI,SAAS,CAAC,OAAO,CAAC,eAAe,EAAE,wDAAwD,EAAE;gBACrG,KAAK;gBACL,UAAU;gBACV,IAAI,EAAE,CAAC;aACR,CAAC,CAAC;SACJ;IACH,CAAC,CAAC,CACH,EACD,cAAc,CAAC,WAAW,CAAC,CAC5B,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,QAAgB;IACnD,QAAQ,GAAG,UAAU,CAAC,KAAK,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAEnE,OAAO,KAAK,EAAE,CAAO,EAAE,EAAE;QACvB,OAAO,MAAM,CACX,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,gBAAgB,CAAC,EAAE,KAAK,CAAC,EACxD,IAAI,CAAC,QAAQ,CAAC,0BAA0B,EAAE,0BAA0B,CAAC,EAAE,WAAW,CAAC,EAEnF,IAAI,CAAC,KAAK,EAAE,EAAE,SAAS,EAA6C,EAAE,EAAE;YACtE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE;gBAC9B,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;aACxD;QACH,CAAC,CAAC;QAEF,kBAAkB;QAClB,CAAC,EAAE,GAAG,EAA6B,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,EAC1D,CAAC,SAAiB,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE,cAAc,CAAC,mBAAmB,CAAC,EAAE,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAC7I,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,UAAkC,EAAE,QAAgB;IAC7E,QAAQ,GAAG,UAAU,CAAC,KAAK,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAEnE,OAAO,MAAM,MAAM,CACjB,KAAK,CAAC,UAAU,CAAC,EACjB,MAAM,CACJ,CAAC,CAAO,EAAE,EAAE;QACV,OAAO,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,YAAY,CAAC,EAAE,KAAK,EAAE,KAAmB,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,OAAO,CAAO,EAAE,WAAW,EAAE,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;IACjM,CAAC,EACD,CAAC,GAAG,EAAE,CAAO,EAAE,EAAE;QACf,OAAO,MAAM,CACX,GAAG,EAAE,CAAC,CAAC;QAEP,6BAA6B;QAC7B,QAAQ,CAAC,eAAe,EAAE,GAAG,CAAC;QAE9B,2BAA2B;QAC3B,GAAG,EAAE;YACH,MAAM,GAAG,CAAC;QACZ,CAAC,CACF,CAAC;IACJ,CAAC,CACF,CACF,CAAC;AACJ,CAAC"}
|
package/lib/mjs/auth.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AuthProvider,
|
|
1
|
+
import { AuthProvider, PasswordProvider } from './interfaces.js';
|
|
2
2
|
import { User } from './models/User.js';
|
|
3
3
|
import { IContainer } from '@spinajs/di';
|
|
4
4
|
export declare class SimpleDbAuthProvider implements AuthProvider<User> {
|
|
@@ -8,9 +8,9 @@ export declare class SimpleDbAuthProvider implements AuthProvider<User> {
|
|
|
8
8
|
getByLogin(login: string): Promise<User>;
|
|
9
9
|
getByEmail(email: string): Promise<User>;
|
|
10
10
|
getByUUID(uuid: string): Promise<User>;
|
|
11
|
-
authenticate(email: string, password: string): Promise<
|
|
12
|
-
isBanned(
|
|
13
|
-
isActive(
|
|
14
|
-
isDeleted(
|
|
11
|
+
authenticate(email: string, password: string): Promise<User>;
|
|
12
|
+
isBanned(userOrEmail: User | string): Promise<boolean>;
|
|
13
|
+
isActive(userOrEmail: User | string): Promise<boolean>;
|
|
14
|
+
isDeleted(userOrEmail: User | string): Promise<boolean>;
|
|
15
15
|
}
|
|
16
16
|
//# sourceMappingURL=auth.d.ts.map
|
package/lib/mjs/auth.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAC1F,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAyB,UAAU,EAAc,MAAM,aAAa,CAAC;AAK5E,qBACa,oBAAqB,YAAW,YAAY,CAAC,IAAI,CAAC;IAE7D,SAAS,CAAC,SAAS,EAAE,UAAU,CAAC;IAGhC,SAAS,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAEhC,MAAM,CAAC,WAAW,EAAE,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IASpD,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxC,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxC,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAItC,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAsB5D,QAAQ,CAAC,WAAW,EAAE,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKtD,QAAQ,CAAC,WAAW,EAAE,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKtD,SAAS,CAAC,WAAW,EAAE,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAIrE"}
|
package/lib/mjs/auth.js
CHANGED
|
@@ -11,6 +11,8 @@ import { AthenticationErrorCodes, AuthProvider, PasswordProvider } from './inter
|
|
|
11
11
|
import { User } from './models/User.js';
|
|
12
12
|
import { Autoinject, Container, Injectable } from '@spinajs/di';
|
|
13
13
|
import { AutoinjectService } from '@spinajs/configuration';
|
|
14
|
+
import { _check_arg, _is_email, _max_length, _non_empty, _trim } from '@spinajs/util';
|
|
15
|
+
import { ErrorCode } from '@spinajs/exceptions';
|
|
14
16
|
let SimpleDbAuthProvider = class SimpleDbAuthProvider {
|
|
15
17
|
async exists(userOrEmail) {
|
|
16
18
|
const result = await User.where('Email', userOrEmail instanceof User ? userOrEmail.Email : userOrEmail).first();
|
|
@@ -20,70 +22,41 @@ let SimpleDbAuthProvider = class SimpleDbAuthProvider {
|
|
|
20
22
|
return false;
|
|
21
23
|
}
|
|
22
24
|
async getByLogin(login) {
|
|
23
|
-
|
|
24
|
-
return result;
|
|
25
|
+
return await User.getByLogin(login);
|
|
25
26
|
}
|
|
26
27
|
async getByEmail(email) {
|
|
27
|
-
|
|
28
|
-
return result;
|
|
28
|
+
return User.getByEmail(email);
|
|
29
29
|
}
|
|
30
30
|
async getByUUID(uuid) {
|
|
31
|
-
|
|
32
|
-
return result;
|
|
31
|
+
return User.getByUuid(uuid);
|
|
33
32
|
}
|
|
34
33
|
async authenticate(email, password) {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
Message: 'Invalid user credentials, or user not exist.',
|
|
40
|
-
},
|
|
41
|
-
};
|
|
42
|
-
/**
|
|
43
|
-
* If user not exists, is deleted, or password dont match
|
|
44
|
-
* return E_INVALID_CREDENTIALS for security reasons ( so attaker wont now if email is valid, or password don match)
|
|
45
|
-
*/
|
|
46
|
-
if (!result) {
|
|
47
|
-
return eInvalidCredentials;
|
|
48
|
-
}
|
|
49
|
-
const valid = await this.PasswordProvider.verify(result.Password, password);
|
|
34
|
+
_check_arg(_trim(), _non_empty(), _is_email(), _max_length(64))(email, 'email');
|
|
35
|
+
_check_arg(_trim(), _non_empty(), _max_length(64))(password, 'password');
|
|
36
|
+
const user = await User.query().whereEmail(email).notDeleted().populate('Metadata').firstOrThrow(new ErrorCode(AthenticationErrorCodes.E_INVALID_CREDENTIALS));
|
|
37
|
+
const valid = await this.PasswordProvider.verify(user.Password, password);
|
|
50
38
|
if (!valid) {
|
|
51
|
-
|
|
52
|
-
User: undefined,
|
|
53
|
-
...eInvalidCredentials,
|
|
54
|
-
};
|
|
39
|
+
throw new ErrorCode(AthenticationErrorCodes.E_INVALID_CREDENTIALS);
|
|
55
40
|
}
|
|
56
|
-
if (
|
|
57
|
-
|
|
58
|
-
User: result,
|
|
59
|
-
Error: {
|
|
60
|
-
Code: AthenticationErrorCodes.E_USER_BANNED,
|
|
61
|
-
},
|
|
62
|
-
};
|
|
41
|
+
if (user.IsBanned) {
|
|
42
|
+
throw new ErrorCode(AthenticationErrorCodes.E_USER_BANNED);
|
|
63
43
|
}
|
|
64
|
-
if (
|
|
65
|
-
|
|
66
|
-
User: result,
|
|
67
|
-
Error: {
|
|
68
|
-
Code: AthenticationErrorCodes.E_USER_NOT_ACTIVE,
|
|
69
|
-
},
|
|
70
|
-
};
|
|
44
|
+
if (!user.IsActive) {
|
|
45
|
+
throw new ErrorCode(AthenticationErrorCodes.E_USER_NOT_ACTIVE);
|
|
71
46
|
}
|
|
72
|
-
return
|
|
73
|
-
User: result,
|
|
74
|
-
};
|
|
47
|
+
return user;
|
|
75
48
|
}
|
|
76
|
-
async isBanned(
|
|
77
|
-
const result = await User.
|
|
78
|
-
return result
|
|
49
|
+
async isBanned(userOrEmail) {
|
|
50
|
+
const result = await User.query().whereUser(userOrEmail).checkIsBanned();
|
|
51
|
+
return result;
|
|
79
52
|
}
|
|
80
|
-
async isActive(
|
|
81
|
-
const result = await User.
|
|
82
|
-
return result
|
|
53
|
+
async isActive(userOrEmail) {
|
|
54
|
+
const result = await User.query().whereUser(userOrEmail).checkIsActive();
|
|
55
|
+
return result;
|
|
83
56
|
}
|
|
84
|
-
async isDeleted(
|
|
85
|
-
const result = await User.
|
|
86
|
-
return result
|
|
57
|
+
async isDeleted(userOrEmail) {
|
|
58
|
+
const result = await User.query().whereUser(userOrEmail).notDeleted().first();
|
|
59
|
+
return result === undefined;
|
|
87
60
|
}
|
|
88
61
|
};
|
|
89
62
|
__decorate([
|
package/lib/mjs/auth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/auth.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,uBAAuB,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActivateUser.d.ts","sourceRoot":"","sources":["../../../src/cli/ActivateUser.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ActivateUser.d.ts","sourceRoot":"","sources":["../../../src/cli/ActivateUser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,GAAG,EAAU,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAY,UAAU,EAAW,MAAM,cAAc,CAAC;AAI7D,qBAGa,YAAa,SAAQ,UAAU;IAE1C,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC;IAGnB,SAAS,CAAC,KAAK,EAAE,YAAY,CAAC;IAEjB,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CASvE"}
|
|
@@ -7,24 +7,19 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
8
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
9
|
};
|
|
10
|
-
import { UserDeactivated } from './../events/UserDeactivated.js';
|
|
11
|
-
//import { UserBannedMessage } from './../messages/UserBanned';
|
|
12
10
|
import { QueueService } from '@spinajs/Queue';
|
|
13
11
|
import { Log, Logger } from '@spinajs/log';
|
|
14
12
|
import { Argument, CliCommand, Command } from '@spinajs/cli';
|
|
15
13
|
import { Autoinject } from '@spinajs/di';
|
|
16
|
-
import {
|
|
17
|
-
import { UserActivated } from '../events/UserActivated.js';
|
|
14
|
+
import { activate, deactivate } from '../actions.js';
|
|
18
15
|
let ActivateUser = class ActivateUser extends CliCommand {
|
|
19
16
|
async execute(idOrUuid, active) {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
this.Queue.emit(event);
|
|
24
|
-
this.Log.success(`User activation status changed to ${active}`);
|
|
17
|
+
try {
|
|
18
|
+
await active ? activate(idOrUuid) : deactivate(idOrUuid);
|
|
19
|
+
this.Log.success(`User ${idOrUuid} ${active ? 'activated' : 'deactivated'}`);
|
|
25
20
|
}
|
|
26
|
-
|
|
27
|
-
this.Log.
|
|
21
|
+
catch (e) {
|
|
22
|
+
this.Log.error(`Error while activating user user ${idOrUuid} ${e.message}`);
|
|
28
23
|
}
|
|
29
24
|
}
|
|
30
25
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActivateUser.js","sourceRoot":"","sources":["../../../src/cli/ActivateUser.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"ActivateUser.js","sourceRoot":"","sources":["../../../src/cli/ActivateUser.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAK9C,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,UAAU;IAOnC,KAAK,CAAC,OAAO,CAAC,QAAgB,EAAE,MAAe;QACpD,IAAI;YACF,MAAM,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAEzD,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC;SAC9E;QAAC,OAAO,CAAC,EAAE;YACV,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,oCAAoC,QAAQ,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;SAC7E;IACH,CAAC;CACF,CAAA;AAdW;IADT,MAAM,CAAC,MAAM,CAAC;8BACA,GAAG;yCAAC;AAGT;IADT,UAAU,CAAC,YAAY,CAAC;8BACR,YAAY;2CAAC;AALnB,YAAY;IAHxB,OAAO,CAAC,oBAAoB,EAAE,8BAA8B,CAAC;IAC7D,QAAQ,CAAC,UAAU,EAAE,oBAAoB,CAAC;IAC1C,QAAQ,CAAC,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,CAgBxB"}
|
package/lib/mjs/cli/BanUser.d.ts
CHANGED
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
import { QueueService } from '@spinajs/Queue';
|
|
2
1
|
import { Log } from '@spinajs/log';
|
|
3
2
|
import { CliCommand } from '@spinajs/cli';
|
|
4
3
|
export declare class BanUser extends CliCommand {
|
|
5
4
|
protected Log: Log;
|
|
6
|
-
|
|
7
|
-
execute(idOrUuid: string, ban: boolean, duration: number): Promise<void>;
|
|
5
|
+
execute(idOrUuid: string, banOrUnban: boolean, duration: number, reason: string): Promise<void>;
|
|
8
6
|
}
|
|
9
7
|
//# sourceMappingURL=BanUser.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BanUser.d.ts","sourceRoot":"","sources":["../../../src/cli/BanUser.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"BanUser.d.ts","sourceRoot":"","sources":["../../../src/cli/BanUser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAU,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAY,UAAU,EAAW,MAAM,cAAc,CAAC;AAG7D,qBAKa,OAAQ,SAAQ,UAAU;IAErC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC;IAEN,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAU7G"}
|