aloux-iam 0.0.117 → 0.0.118

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