UNPKG

1.29 kBJavaScriptView Raw
1
2const Model = require("./Model")
3const Role = require("./Role")
4
5class User extends Model {
6
7 defaultFields() {
8 return {
9 id: {
10 type: String,
11 required: true
12 },
13 username: { type: String, required: true },
14 password: { type: String },
15 email: { type: String },
16 domain: String,
17 ownerId: String,
18 roles: {
19 type: Array,
20 listOf: Role,
21 transform: (role) => {
22 if(typeof role === "string") {
23 role = {
24 name: role,
25 permissions: []
26 }
27 }
28 return role
29 }
30 },
31 enabled: { type: Boolean },
32 nodered: { type: Boolean },
33 created: {
34 type: Date,
35 transform: (raw) => new Date(raw)
36 },
37 }
38 }
39
40 hasRole(role) {
41 return this.roles.filter((r) => r === role || r.name === role).length === 1
42 }
43
44 isAdmin() {
45 return this.hasRole("admin")
46 }
47
48 isService() {
49 return this.hasRole("service")
50 }
51
52}
53
54module.exports = User