@flink-app/generic-auth-plugin 0.7.0-alpha.0 → 0.11.0

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.
Files changed (61) hide show
  1. package/.flink/generatedHandlers.ts +24 -1
  2. package/.flink/generatedJobs.ts +1 -1
  3. package/.flink/generatedRepos.ts +1 -1
  4. package/.flink/schemas/schemas.json +607 -1
  5. package/.flink/schemas/schemas.ts +1 -1
  6. package/.flink/start.ts +1 -1
  7. package/dist/.flink/generatedHandlers.js +1 -1
  8. package/dist/.flink/generatedJobs.js +1 -1
  9. package/dist/.flink/generatedRepos.js +1 -1
  10. package/dist/.flink/schemas/schemas.json +607 -1
  11. package/dist/.flink/start.js +1 -1
  12. package/dist/src/coreFunctions.js +8 -3
  13. package/dist/src/handlers/Management/DeleteUserByUserid.d.ts +2 -0
  14. package/dist/src/handlers/Management/DeleteUserByUserid.js +3 -0
  15. package/dist/src/handlers/Management/GetSchema.d.ts +2 -0
  16. package/dist/src/handlers/Management/GetSchema.js +3 -0
  17. package/dist/src/handlers/Management/GetUser.d.ts +2 -0
  18. package/dist/src/handlers/Management/GetUser.js +3 -0
  19. package/dist/src/handlers/Management/GetUserByUserid.d.ts +2 -0
  20. package/dist/src/handlers/Management/GetUserByUserid.js +3 -0
  21. package/dist/src/handlers/Management/GetUserViewByUserid.d.ts +2 -0
  22. package/dist/src/handlers/Management/GetUserViewByUserid.js +3 -0
  23. package/dist/src/handlers/Management/PutUserPasswordByUserid.d.ts +2 -0
  24. package/dist/src/handlers/Management/PutUserPasswordByUserid.js +3 -0
  25. package/dist/src/handlers/Management/PutUserProfileByUserid.d.ts +2 -0
  26. package/dist/src/handlers/Management/PutUserProfileByUserid.js +3 -0
  27. package/dist/src/handlers/Management/PutUserProfileByUseridAppend.d.ts +2 -0
  28. package/dist/src/handlers/Management/PutUserProfileByUseridAppend.js +3 -0
  29. package/dist/src/handlers/Management/PutUserRolesByUserid.d.ts +2 -0
  30. package/dist/src/handlers/Management/PutUserRolesByUserid.js +3 -0
  31. package/dist/src/handlers/Management/PutUserUsernameByUserid.d.ts +2 -0
  32. package/dist/src/handlers/Management/PutUserUsernameByUserid.js +3 -0
  33. package/dist/src/handlers/UserCreate.d.ts +2 -0
  34. package/dist/src/handlers/UserCreate.js +3 -0
  35. package/dist/src/handlers/UserLogin.d.ts +2 -0
  36. package/dist/src/handlers/UserLogin.js +3 -0
  37. package/dist/src/handlers/UserLoginByToken.d.ts +2 -0
  38. package/dist/src/handlers/UserLoginByToken.js +3 -0
  39. package/dist/src/handlers/UserPasswordPut.d.ts +2 -0
  40. package/dist/src/handlers/UserPasswordPut.js +3 -0
  41. package/dist/src/handlers/UserPasswordResetComplete.d.ts +2 -0
  42. package/dist/src/handlers/UserPasswordResetComplete.js +3 -0
  43. package/dist/src/handlers/UserPasswordResetForm.d.ts +1 -0
  44. package/dist/src/handlers/UserPasswordResetForm.js +2 -1
  45. package/dist/src/handlers/UserPasswordResetStart.d.ts +2 -0
  46. package/dist/src/handlers/UserPasswordResetStart.js +14 -7
  47. package/dist/src/handlers/UserProfileGet.d.ts +2 -0
  48. package/dist/src/handlers/UserProfileGet.js +3 -0
  49. package/dist/src/handlers/UserProfilePut.d.ts +2 -0
  50. package/dist/src/handlers/UserProfilePut.js +3 -0
  51. package/dist/src/handlers/UserPushRegisterToken.d.ts +2 -0
  52. package/dist/src/handlers/UserPushRegisterToken.js +3 -0
  53. package/dist/src/handlers/UserPushRemoveToken.d.ts +2 -0
  54. package/dist/src/handlers/UserPushRemoveToken.js +3 -0
  55. package/dist/src/handlers/UserToken.d.ts +2 -0
  56. package/dist/src/handlers/UserToken.js +3 -0
  57. package/dist/src/schemas/UserPasswordResetSettings.d.ts +14 -5
  58. package/package.json +7 -7
  59. package/src/coreFunctions.ts +11 -2
  60. package/src/handlers/UserPasswordResetStart.ts +41 -49
  61. package/src/schemas/UserPasswordResetSettings.ts +21 -10
@@ -7,67 +7,59 @@ import { UserPasswordResetStartReq } from "../schemas/UserPasswordResetStartReq"
7
7
  import { UserPasswordResetStartResPublic } from "../schemas/UserPasswordResetStartResPublic";
8
8
 
9
9
  const postPasswordResetStartHandler: Handler<
10
- FlinkContext<genericAuthContext & emailPluginContext>,
11
- UserPasswordResetStartReq,
12
- UserPasswordResetStartResPublic
10
+ FlinkContext<genericAuthContext & emailPluginContext>,
11
+ UserPasswordResetStartReq,
12
+ UserPasswordResetStartResPublic
13
13
  > = async ({ ctx, req, origin }) => {
14
- let pluginName = origin || "genericAuthPlugin";
15
- let repo = ctx.repos[(<any>ctx.plugins)[pluginName].repoName];
14
+ let pluginName = origin || "genericAuthPlugin";
16
15
 
17
- if (ctx.plugins.emailPlugin?.client == null) {
18
- return internalServerError(
19
- "Email plugin have to be initialized to use /password/reset"
20
- );
21
- }
16
+ const genericAuthPlugin = (<any>ctx.plugins)[pluginName] as genericAuthContext["genericAuthPlugin"];
22
17
 
23
- if (ctx.plugins.genericAuthPlugin.passwordResetSettings == null) {
24
- return internalServerError(
25
- "Password reset settings is needed to use /password/reset"
26
- );
27
- }
18
+ let repo = ctx.repos[genericAuthPlugin.repoName];
28
19
 
29
- const { jwtSecret, numberOfDigits, lifeTime } =
30
- (<any>ctx.plugins)[pluginName].passwordResetSettings.code;
20
+ if (ctx.plugins.emailPlugin?.client == null) {
21
+ return internalServerError("Email plugin have to be initialized to use /password/reset");
22
+ }
31
23
 
32
-
24
+ if (!genericAuthPlugin.passwordResetSettings) {
25
+ return internalServerError("Password reset settings is needed to use /password/reset");
26
+ }
33
27
 
34
- const resp = await ctx.plugins.genericAuthPlugin.passwordResetStart(
35
- repo,
36
- <JwtAuthPlugin>ctx.auth,
37
- jwtSecret,
38
- req.body.username,
39
- numberOfDigits,
40
- lifeTime
41
- );
28
+ const { jwtSecret, numberOfDigits, lifeTime } = genericAuthPlugin.passwordResetSettings.code;
42
29
 
43
- if (resp.status != "success") {
44
- return { data: { status: resp.status } };
45
- }
30
+ const resp = await genericAuthPlugin.passwordResetStart(repo, <JwtAuthPlugin>ctx.auth, jwtSecret, req.body.username, numberOfDigits, lifeTime);
46
31
 
47
- const emailSettings =
48
- (<any>ctx.plugins)[pluginName].passwordResetSettings.email;
32
+ if (resp.status != "success") {
33
+ return { data: { status: "success", passwordResetToken: resp.passwordResetToken } };
34
+ }
49
35
 
50
- const emailCtx = {
51
- code: resp.code,
52
- passwordResetToken: resp.passwordResetToken,
53
- username: req.body.username,
54
- profile: resp.profile,
55
- };
36
+ const emailCtx = {
37
+ code: resp.code,
38
+ passwordResetToken: resp.passwordResetToken,
39
+ username: req.body.username,
40
+ profile: resp.profile,
41
+ };
56
42
 
57
- const subject = Handlebars.compile(emailSettings.subject)(emailCtx);
58
- const html = Handlebars.compile(emailSettings.html)(emailCtx);
59
- const email = req.body.username;
43
+ let emailSettings = genericAuthPlugin.passwordResetSettings.email;
60
44
 
61
- await ctx.plugins.emailPlugin.client.send({
62
- from: emailSettings.from_address,
63
- to: [email],
64
- subject,
65
- html,
66
- });
45
+ if (typeof emailSettings == "function") {
46
+ emailSettings = emailSettings(emailCtx);
47
+ }
67
48
 
68
- return {
69
- data: { status: "success", passwordResetToken: resp.passwordResetToken },
70
- };
49
+ const subject = Handlebars.compile(emailSettings.subject)(emailCtx);
50
+ const html = Handlebars.compile(emailSettings.html)(emailCtx);
51
+ const email = req.body.username;
52
+
53
+ await ctx.plugins.emailPlugin.client.send({
54
+ from: emailSettings.from_address,
55
+ to: [email],
56
+ subject,
57
+ html,
58
+ });
59
+
60
+ return {
61
+ data: { status: "success", passwordResetToken: resp.passwordResetToken },
62
+ };
71
63
  };
72
64
 
73
65
  export default postPasswordResetStartHandler;
@@ -1,14 +1,25 @@
1
- export interface UserPasswordResetSettings {
2
- email: {
1
+ import { UserProfile } from "./UserProfile";
2
+
3
+ interface EmailConfig {
3
4
  from_address: string;
4
5
  subject: string;
5
6
  html: string;
6
- };
7
- code: {
8
- numberOfDigits: number;
9
- lifeTime: string;
10
- jwtSecret: string;
11
- };
12
- enablePasswordResetForm?: boolean;
13
- passwordResetForm?: string;
7
+ }
8
+
9
+ interface EmailCtx {
10
+ code?: string;
11
+ passwordResetToken?: string;
12
+ username: string;
13
+ profile?: UserProfile;
14
+ }
15
+
16
+ export interface UserPasswordResetSettings {
17
+ email: EmailConfig | ((emailCtx: EmailCtx) => EmailConfig);
18
+ code: {
19
+ numberOfDigits: number;
20
+ lifeTime: string;
21
+ jwtSecret: string;
22
+ };
23
+ enablePasswordResetForm?: boolean;
24
+ passwordResetForm?: string;
14
25
  }