aloux-iam 0.0.115 → 0.0.116

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.
@@ -1,115 +1,115 @@
1
- const mongoose = require("mongoose")
2
- const bcrypt = require("bcryptjs")
3
- const jwt = require("jsonwebtoken")
4
- const ObjectId = mongoose.Schema.Types.ObjectId
5
-
6
- const adminSchema = mongoose.Schema({
7
- name: { type: String, required: true, trim: true },
8
- lastName: { type: String, required: false, trim: true },
9
- email: { type: String, required: true, trim: true, unique: true, lowercase: true },
10
- pwd: { type: String, trim: true, minLength: 8 },
11
- phone: { type: String, trim: true, maxLength: 13 },
12
- phoneObj: {
13
- e164: { type: String, trim: true, maxLength: 13 },
14
- input: { type: String, trim: true, maxLength: 12 },
15
- international: { type: String, trim: true, maxLength: 20 },
16
- national: { type: String, trim: true, maxLength: 13 },
17
- rfc3966: { type: String, trim: true, maxLength: 30 },
18
- significant: { type: String, trim: true, maxLength: 10 },
19
- country: { type: String, trim: true, maxLength: 10 },
20
- dialCode: { type: String, trim: true, maxLength: 10 },
21
- icon: { type: String, trim: true, maxLength: 10 },
22
- regionCode: { type: String, trim: true, maxLength: 10 }
23
- },
24
- urlImg: { type: String },
25
- data: {
26
- type: Object,
27
- default: { changePwd: false }
28
- },
29
- validateKey: {
30
- failedAttempts: { type: Number, default: 0 },
31
- limitCodeTime: { type: Number },
32
- resetPassword: {
33
- resetCode: { type: Number },
34
- validCode: { type: Boolean, default: false },
35
- },
36
- validateEmail: {
37
- emailVerified: { type: Boolean, default: false },
38
- verifyMailToken: { type: String },
39
- },
40
- validatePhone: {
41
- codeVerifyPhone: { type: Number },
42
- validCodePhone: { type: Boolean, default: false },
43
- }
44
- },
45
- _functions: [
46
- {
47
- type: ObjectId, required: true, ref: 'Functions'
48
- }
49
- ],
50
- _business: [
51
- {
52
- type: ObjectId, ref: 'Business'
53
- }
54
- ],
55
- _client: [
56
- {
57
- type: ObjectId, ref: 'Client'
58
- }
59
- ],
60
- tokens: [
61
- {
62
- token: { type: String, required: true },
63
- date: { type: Number },
64
- dateEnd: { type: Number }
65
- }
66
- ],
67
-
68
- status: { type: String, required: true, enum: ['Activo','Inactivo','Bloqueado'], default: 'Activo' },
69
- createdAt: { type: Number },
70
- lastUpdate: { type: Number }
71
- })
72
-
73
- adminSchema.pre("save", async function (next) {
74
- const user = this
75
-
76
- if (user.isModified("pwd")) {
77
- user.pwd = await bcrypt.hash(user.pwd, 8)
78
- }
79
-
80
- next()
81
- })
82
-
83
- adminSchema.methods.generateAuthToken = async function () {
84
- const user = this
85
-
86
- const token = jwt.sign({ _id: user._id }, process.env.AUTH_SECRET)
87
- const currentDate = (new Date()).getTime()
88
- const dateEnd = currentDate + process.env.SESSION_TIME * 60 * 1000;
89
- user.tokens = user.tokens.concat({ token, date: currentDate, dateEnd })
90
-
91
- await user.save()
92
-
93
- return token
94
- }
95
-
96
- adminSchema.statics.findByCredentials = async (email, pwd) => {
97
- try {
98
- const user = await User.findOne({ email: email })
99
-
100
- if (!user) {
101
- throw new Error({ error: "Invalid login credentials" })
102
- }
103
-
104
- const isPasswordMatch = await bcrypt.compare(pwd, user.pwd)
105
-
106
- if (!isPasswordMatch) {
107
- throw new Error({ error: "Invalid login credentials" })
108
- }
109
-
110
- return user
111
- } catch (error) { }
112
- }
113
-
114
- const User = mongoose.model("User", adminSchema)
115
- module.exports = User
1
+ const mongoose = require("mongoose")
2
+ const bcrypt = require("bcryptjs")
3
+ const jwt = require("jsonwebtoken")
4
+ const ObjectId = mongoose.Schema.Types.ObjectId
5
+
6
+ const adminSchema = mongoose.Schema({
7
+ name: { type: String, required: true, trim: true },
8
+ lastName: { type: String, required: false, trim: true },
9
+ email: { type: String, required: true, trim: true, unique: true, lowercase: true },
10
+ pwd: { type: String, trim: true, minLength: 8 },
11
+ phone: { type: String, trim: true, maxLength: 13 },
12
+ phoneObj: {
13
+ e164: { type: String, trim: true, maxLength: 13 },
14
+ input: { type: String, trim: true, maxLength: 12 },
15
+ international: { type: String, trim: true, maxLength: 20 },
16
+ national: { type: String, trim: true, maxLength: 13 },
17
+ rfc3966: { type: String, trim: true, maxLength: 30 },
18
+ significant: { type: String, trim: true, maxLength: 10 },
19
+ country: { type: String, trim: true, maxLength: 10 },
20
+ dialCode: { type: String, trim: true, maxLength: 10 },
21
+ icon: { type: String, trim: true, maxLength: 10 },
22
+ regionCode: { type: String, trim: true, maxLength: 10 }
23
+ },
24
+ urlImg: { type: String },
25
+ data: {
26
+ type: Object,
27
+ default: { changePwd: false }
28
+ },
29
+ validateKey: {
30
+ failedAttempts: { type: Number, default: 0 },
31
+ limitCodeTime: { type: Number },
32
+ resetPassword: {
33
+ resetCode: { type: Number },
34
+ validCode: { type: Boolean, default: false },
35
+ },
36
+ validateEmail: {
37
+ emailVerified: { type: Boolean, default: false },
38
+ verifyMailToken: { type: String },
39
+ },
40
+ validatePhone: {
41
+ codeVerifyPhone: { type: Number },
42
+ validCodePhone: { type: Boolean, default: false },
43
+ }
44
+ },
45
+ _functions: [
46
+ {
47
+ type: ObjectId, required: true, ref: 'Functions'
48
+ }
49
+ ],
50
+ _business: [
51
+ {
52
+ type: ObjectId, ref: 'Business'
53
+ }
54
+ ],
55
+ _client: [
56
+ {
57
+ type: ObjectId, ref: 'Client'
58
+ }
59
+ ],
60
+ tokens: [
61
+ {
62
+ token: { type: String, required: true },
63
+ date: { type: Number },
64
+ dateEnd: { type: Number }
65
+ }
66
+ ],
67
+
68
+ status: { type: String, required: true, enum: ['Activo','Inactivo','Bloqueado'], default: 'Activo' },
69
+ createdAt: { type: Number },
70
+ lastUpdate: { type: Number }
71
+ })
72
+
73
+ adminSchema.pre("save", async function (next) {
74
+ const user = this
75
+
76
+ if (user.isModified("pwd")) {
77
+ user.pwd = await bcrypt.hash(user.pwd, 8)
78
+ }
79
+
80
+ next()
81
+ })
82
+
83
+ adminSchema.methods.generateAuthToken = async function () {
84
+ const user = this
85
+
86
+ const token = jwt.sign({ _id: user._id }, process.env.AUTH_SECRET)
87
+ const currentDate = (new Date()).getTime()
88
+ const dateEnd = currentDate + process.env.SESSION_TIME * 60 * 1000;
89
+ user.tokens = user.tokens.concat({ token, date: currentDate, dateEnd })
90
+
91
+ await user.save()
92
+
93
+ return token
94
+ }
95
+
96
+ adminSchema.statics.findByCredentials = async (email, pwd) => {
97
+ try {
98
+ const user = await User.findOne({ email: email })
99
+
100
+ if (!user) {
101
+ throw new Error({ error: "Invalid login credentials" })
102
+ }
103
+
104
+ const isPasswordMatch = await bcrypt.compare(pwd, user.pwd)
105
+
106
+ if (!isPasswordMatch) {
107
+ throw new Error({ error: "Invalid login credentials" })
108
+ }
109
+
110
+ return user
111
+ } catch (error) { }
112
+ }
113
+
114
+ const User = mongoose.model("User", adminSchema)
115
+ module.exports = User
@@ -1,11 +1,11 @@
1
- const mongoose = require("mongoose")
2
-
3
- const userProvisional = mongoose.Schema({
4
- email: { type: String, required: true, trim: true, unique: true, lowercase: true },
5
- code: { type: Number, required: true },
6
- createdAt: { type: Number },
7
- lastUpdate: { type: Number }
8
- })
9
-
10
- const UserProvisional = mongoose.model("UserProvisional", userProvisional)
1
+ const mongoose = require("mongoose")
2
+
3
+ const userProvisional = mongoose.Schema({
4
+ email: { type: String, required: true, trim: true, unique: true, lowercase: true },
5
+ code: { type: Number, required: true },
6
+ createdAt: { type: Number },
7
+ lastUpdate: { type: Number }
8
+ })
9
+
10
+ const UserProvisional = mongoose.model("UserProvisional", userProvisional)
11
11
  module.exports = UserProvisional
package/lib/router.js CHANGED
@@ -1,104 +1,82 @@
1
- const express = require("express");
2
- const middleware = require("./middleware.js");
3
- const router = express.Router();
4
-
5
- const auth = require("./controllers/auth");
6
- const user = require("./controllers/user");
7
- const menu = require("./controllers/menu");
8
- const permission = require("./controllers/permission");
9
- const functions = require("./controllers/functions");
10
- const label = require("./controllers/label");
11
- const log = require("./controllers/log");
12
-
13
- const history = require("./controllers/history.js");
14
-
15
- // User / user self (no auth)
16
- router.post("/iam/auth/email", auth.email);
17
- router.post("/iam/auth/login", auth.login);
18
- router.post("/iam/auth/forgot/password", auth.recoverpassword);
19
- router.post("/iam/auth/validate/code", auth.verifyCode);
20
- router.post("/iam/auth/verify/mail", auth.sendVerifyMailAccount);
21
- router.get("/iam/auth/verify/mail/token/:token", auth.verifyMailTokenAccount);
22
- router.post("/iam/auth/reset/password", auth.resetPassword);
23
- router.post("/iam/auth/signup", auth.createCustomer);
24
-
25
- // User / user self
26
- router.get("/iam/auth/me", middleware, auth.me);
27
- router.patch("/iam/auth/profile", middleware, auth.updateAny);
28
- router.put("/iam/auth/profile/pictura", middleware, auth.updatePicture);
29
- router.put("/iam/auth/reset/password", middleware, auth.resetPass);
30
- router.post("/iam/auth/send/verify/phone", middleware, auth.verifyPhone);
31
- router.post("/iam/auth/verify/phone", middleware, auth.validatePhone);
32
- router.post("/iam/auth/logout", middleware, auth.logout);
33
- router.patch("/iam/auth/mail", middleware, auth.mailChange);
34
- router.post("/iam/auth/validate/mail", middleware, auth.validatEmailChange);
35
-
36
- // IAM / User
37
- router.post("/iam/user", middleware, user.create);
38
- router.get("/iam/user", middleware, user.retrieve);
39
- router.get("/iam/business/user", middleware, user.retrieveByBusiness);
40
- router.get("/iam/user/:USER_ID", middleware, user.get);
41
- router.patch("/iam/user/:USER_ID", middleware, user.update);
42
- router.put("/iam/user/:USER_ID/status", middleware, user.status);
43
- router.put("/iam/user/password/:USER_ID", middleware, user.updatepassword);
44
- router.delete("/iam/user/:USER_ID", middleware, user.delete);
45
- router.get("/iam/user/count/all", middleware, user.count);
46
-
47
- // IAM / Function
48
- router.post("/iam/functions", middleware, functions.create);
49
- router.patch("/iam/functions/:FUNCTION_ID", middleware, functions.update);
50
- router.put("/iam/functions/:FUNCTION_ID/status", middleware, functions.status);
51
- router.get("/iam/functions", middleware, functions.retrieve);
52
- router.get("/iam/functions/:FUNCTION_ID", middleware, functions.get);
53
- router.delete("/iam/functions/:FUNCTION_ID", middleware, functions.delete);
54
- router.get("/iam/functions/count/all", middleware, functions.count);
55
-
56
- // IAM / Permission
57
- router.post("/iam/permission", middleware, permission.create);
58
- router.patch("/iam/permission/:PERMISSION_ID", middleware, permission.update);
59
- router.put(
60
- "/iam/permission/:PERMISSION_ID/status",
61
- middleware,
62
- permission.status
63
- );
64
- router.get("/iam/permission", middleware, permission.retrieve);
65
- router.get("/iam/permission/:PERMISSION_ID", middleware, permission.get);
66
- router.delete("/iam/permission/:PERMISSION_ID", middleware, permission.delete);
67
- router.get("/iam/permission/count/all", middleware, permission.count);
68
-
69
- // IAM / Menu
70
- router.post("/iam/menu", middleware, menu.create);
71
- router.patch("/iam/menu/:MENU_ID", middleware, menu.update);
72
- router.put("/iam/menu/:MENU_ID/status", middleware, menu.status);
73
- router.get("/iam/menu", middleware, menu.retrieve);
74
- router.get("/iam/menu/:MENU_ID", middleware, menu.get);
75
- router.delete("/iam/menu/:MENU_ID", middleware, menu.delete);
76
- router.post("/iam/menu/order", middleware, menu.order);
77
- router.get("/iam/menu/count/all", middleware, menu.count);
78
-
79
- // IAM / History
80
- router.post("/iam/retrieve/history", middleware, history.retrieve);
81
- router.get("/iam/history/:HISTORY_ID", middleware, history.detail);
82
-
83
- // Utilities
84
- router.patch("/iam/add/time/:TOKEN", user.addTimeToken);
85
-
86
- // IAM / Label
87
- router.post("/iam/label", middleware, label.create);
88
- router.patch("/iam/label/:LABEL_ID", middleware, label.update);
89
- router.put("/iam/label/:LABEL_ID/status", middleware, label.status);
90
- router.get("/iam/label", middleware, label.retrieve);
91
- router.get("/iam/label/:LABEL_ID", middleware, label.get);
92
- router.delete("/iam/label/:LABEL_ID", middleware, label.delete);
93
- router.get("/iam/label/count/all", middleware, label.count);
94
-
95
- // IAM / Log
96
- router.post("/iam/log", middleware, log.create);
97
- router.patch("/iam/log/:LOG_ID", middleware, log.update);
98
- router.put("/iam/log/:LOG_ID/status", middleware, log.status);
99
- router.post("/iam/log/retrieve", middleware, log.retrieve);
100
- router.get("/iam/log/:LOG_ID", middleware, log.get);
101
- router.delete("/iam/log/:LOG_ID", middleware, log.delete);
102
- router.get("/iam/log/count/all", middleware, log.count);
103
-
104
- module.exports = router;
1
+ const express = require("express");
2
+ const middleware = require("./middleware.js");
3
+ const router = express.Router();
4
+
5
+ const auth = require("./controllers/auth");
6
+ const user = require("./controllers/user");
7
+ const menu = require("./controllers/menu");
8
+ const permission = require("./controllers/permission");
9
+ const functions = require("./controllers/functions");
10
+ const history = require("./controllers/history.js");
11
+
12
+ // User / user self (no auth)
13
+ router.post("/iam/auth/email", auth.email);
14
+ router.post("/iam/auth/login", auth.login);
15
+ router.post("/iam/auth/forgot/password", auth.recoverpassword);
16
+ router.post("/iam/auth/validate/code", auth.verifyCode);
17
+ router.post("/iam/auth/verify/mail", auth.sendVerifyMailAccount);
18
+ router.get("/iam/auth/verify/mail/token/:token", auth.verifyMailTokenAccount);
19
+ router.post("/iam/auth/reset/password", auth.resetPassword);
20
+ router.post("/iam/auth/signup", auth.createCustomer);
21
+
22
+ // User / user self
23
+ router.get("/iam/auth/me", middleware, auth.me);
24
+ router.patch("/iam/auth/profile", middleware, auth.updateAny);
25
+ router.put("/iam/auth/profile/pictura", middleware, auth.updatePicture);
26
+ router.put("/iam/auth/reset/password", middleware, auth.resetPass);
27
+ router.post("/iam/auth/send/verify/phone", middleware, auth.verifyPhone);
28
+ router.post("/iam/auth/verify/phone", middleware, auth.validatePhone);
29
+ router.post("/iam/auth/logout", middleware, auth.logout);
30
+ router.patch("/iam/auth/mail", middleware, auth.mailChange);
31
+ router.post("/iam/auth/validate/mail", middleware, auth.validatEmailChange);
32
+
33
+ // IAM / User
34
+ router.post("/iam/user", middleware, user.create);
35
+ router.get("/iam/user", middleware, user.retrieve);
36
+ router.get("/iam/user/:USER_ID", middleware, user.get);
37
+ router.patch("/iam/user/:USER_ID", middleware, user.update);
38
+ router.put("/iam/user/:USER_ID/status", middleware, user.status);
39
+ router.put("/iam/user/password/:USER_ID", middleware, user.updatepassword);
40
+ router.delete("/iam/user/:USER_ID", middleware, user.delete);
41
+ router.get("/iam/user/count/all", middleware, user.count);
42
+
43
+ // IAM / Function
44
+ router.post("/iam/functions", middleware, functions.create);
45
+ router.patch("/iam/functions/:FUNCTION_ID", middleware, functions.update);
46
+ router.put("/iam/functions/:FUNCTION_ID/status", middleware, functions.status);
47
+ router.get("/iam/functions", middleware, functions.retrieve);
48
+ router.get("/iam/functions/:FUNCTION_ID", middleware, functions.get);
49
+ router.delete("/iam/functions/:FUNCTION_ID", middleware, functions.delete);
50
+ router.get("/iam/functions/count/all", middleware, functions.count);
51
+
52
+ // IAM / Permission
53
+ router.post("/iam/permission", middleware, permission.create);
54
+ router.patch("/iam/permission/:PERMISSION_ID", middleware, permission.update);
55
+ router.put(
56
+ "/iam/permission/:PERMISSION_ID/status",
57
+ middleware,
58
+ permission.status
59
+ );
60
+ router.get("/iam/permission", middleware, permission.retrieve);
61
+ router.get("/iam/permission/:PERMISSION_ID", middleware, permission.get);
62
+ router.delete("/iam/permission/:PERMISSION_ID", middleware, permission.delete);
63
+ router.get("/iam/permission/count/all", middleware, permission.count);
64
+
65
+ // IAM / Menu
66
+ router.post("/iam/menu", middleware, menu.create);
67
+ router.patch("/iam/menu/:MENU_ID", middleware, menu.update);
68
+ router.put("/iam/menu/:MENU_ID/status", middleware, menu.status);
69
+ router.get("/iam/menu", middleware, menu.retrieve);
70
+ router.get("/iam/menu/:MENU_ID", middleware, menu.get);
71
+ router.delete("/iam/menu/:MENU_ID", middleware, menu.delete);
72
+ router.post("/iam/menu/order", middleware, menu.order);
73
+ router.get("/iam/menu/count/all", middleware, menu.count);
74
+
75
+ // IAM / History
76
+ router.post("/iam/retrieve/history", middleware, history.retrieve);
77
+ router.get("/iam/history/:HISTORY_ID", middleware, history.detail);
78
+
79
+ // Utilities
80
+ router.patch("/iam/add/time/:TOKEN", user.addTimeToken);
81
+
82
+ module.exports = router;