peter 6 anos atrás
pai
commit
66aedac6d0
1 arquivos alterados com 65 adições e 60 exclusões
  1. 65
    60
      src/backend/Components/User/UserManager.ts

+ 65
- 60
src/backend/Components/User/UserManager.ts Ver arquivo

@@ -12,32 +12,30 @@ implements FrontworkComponent<UserManagerIfc, UserManagerFeatureIfc>{
12 12
     name = "Authenticator" as "Authenticator";   
13 13
     admin:FrontworkAdmin
14 14
     
15
-    constructor(private exporters: PrivilegedRPCExporter[]){}
16
-
17
-    exportRPCs() {
18
-        return [
19
-            {
20
-                name: 'login' as 'login',
21
-                call: async (username:string, pwHash:string) => await this.login(username, pwHash) 
22
-            },{
23
-                name: 'authenticate' as 'authenticate',
24
-                call: async (tokenValue:string | Token) => await this.authenticate(tokenValue)
25
-            }
26
-        ]
27
-    }
15
+    constructor(
16
+        private exporters: PrivilegedRPCExporter[]
17
+    ){}
18
+
19
+    exportRPCs = () => [
20
+        {
21
+            name: 'login' as 'login',
22
+            call: async (username:string, pwHash:string) => await this.login(username, pwHash) 
23
+        },{
24
+            name: 'authenticate' as 'authenticate',
25
+            call: async (tokenValue:string | Token) => await this.authenticate(tokenValue)
26
+        }
27
+    ]
28 28
 
29 29
     onSetAdmin(admin:FrontworkAdmin){
30 30
         this.exporters.forEach(e => e['admin'] = admin)
31 31
     }
32 32
 
33
-    exportRPCFeatures() {
34
-        return [{
33
+    exportRPCFeatures = () => [
34
+        {
35 35
             name: 'createUser' as 'createUser',
36 36
             exportRPCs: () => [{
37 37
                 name: 'createUser' as 'createUser',
38
-                call: async (user:User) => {
39
-                    return await this.createUser(user)
40
-                } 
38
+                call: async (user:User) => await this.createUser(user)
41 39
             }]
42 40
         },{
43 41
             name: 'modifyPermissions' as 'modifyPermissions',
@@ -48,47 +46,56 @@ implements FrontworkComponent<UserManagerIfc, UserManagerFeatureIfc>{
48 46
                 name: 'setPermission' as 'setPermission',
49 47
                 call: async (perm: RPCPermission) => await this.setPermission(perm) 
50 48
             }]
51
-        }]
52
-    }
49
+        }
50
+    ]
53 51
     
54
-    getTableDefinitions(): TableDefiniton[] {
55
-        return [
56
-            {
57
-                name: 'users',
58
-                tableBuilder: (table) => {
59
-                    table.increments("id").primary()
60
-                    table.string("name").notNullable().unique()
61
-                    table.string("pwhash").notNullable()
62
-                    table.string("rank").notNullable()
63
-                    table.integer("specid").notNullable()
64
-                    table.foreign('specid').references('specs.id')
65
-                    table.string("email").nullable().unique()
66
-                }
67
-            },{
68
-                name: 'rpcpermissions',
69
-                tableBuilder: (table) => {
70
-                    table.string("name").primary().notNullable()
71
-                    table.boolean("ADMIN").defaultTo(true).notNullable()
72
-                    _Rank.forEach(r => table.boolean(r).defaultTo(false).notNullable())
73
-                }
74
-            },{
75
-                name: 'tokens',
76
-                tableBuilder: (table) => {
77
-                    table.string('value').primary()
78
-                    table.integer('user_id').notNullable()
79
-                    table.foreign('user_id').references('users')
80
-                    table.dateTime('created').defaultTo(this.admin.knex.fn.now())
81
-                }
82
-            },{
83
-                name: 'specs',
84
-                tableBuilder: (table) => {
85
-                    table.increments('id').primary()
86
-                    table.string('class')
87
-                    table.string('name')
88
-                }
52
+    
53
+    getTableDefinitions = (): TableDefiniton[] => [
54
+        {
55
+            name: 'users',
56
+            tableBuilder: (table) => {
57
+                table.increments("id").primary()
58
+                table.string("name").notNullable().unique()
59
+                table.string("pwhash").notNullable()
60
+                table.string("rank").notNullable()
61
+                table.string("email").nullable().unique()
89 62
             }
90
-        ,...this.exporters.flatMap(exp => exp['getTableDefinitions']?exp['getTableDefinitions']():undefined)]
91
-    }
63
+        },{
64
+            name: 'characters',
65
+            tableBuilder: (table) => {
66
+                table.increments("id").primary()
67
+                table.string("name").notNullable().unique()
68
+                table.integer("specid").notNullable()
69
+                table.foreign("specid").references("specs.id")
70
+                table.integer("userid").notNullable()
71
+                table.foreign("userid").references("users.id")
72
+            }
73
+        },{
74
+            name: 'rpcpermissions',
75
+            tableBuilder: (table) => {
76
+                table.string("name").primary().notNullable()
77
+                table.boolean("ADMIN").defaultTo(true).notNullable()
78
+                _Rank.forEach(r => table.boolean(r).defaultTo(false).notNullable())
79
+            }
80
+        },{
81
+            name: 'tokens',
82
+            tableBuilder: (table) => {
83
+                table.string('value').primary()
84
+                table.integer('user_id').notNullable()
85
+                table.foreign('user_id').references('users')
86
+                table.dateTime('created').defaultTo(this.admin.knex.fn.now())
87
+            }
88
+        },{
89
+            name: 'specs',
90
+            tableBuilder: (table) => {
91
+                table.string('class')
92
+                table.string('name')
93
+                table.primary(['class', 'name'])
94
+            }
95
+        }
96
+        ,...this.exporters.flatMap(exp => exp['getTableDefinitions']?exp['getTableDefinitions']():undefined)
97
+    ]
98
+    
92 99
 
93 100
     async initialize(){
94 101
         await Promise.all( 
@@ -100,9 +107,7 @@ implements FrontworkComponent<UserManagerIfc, UserManagerFeatureIfc>{
100 107
 
101 108
         await Promise.all(this.exporters.map(ex => ex['initialize']?ex['initialize']():undefined))
102 109
 
103
-        console.log(getSpecTableData())
104
-
105
-        await this.admin.knex('specs').insert(getSpecTableData()).catch(console.log)
110
+        await this.admin.knex('specs').insert(getSpecTableData()).catch(e => { console.log("skipping spec insertion") })
106 111
     }
107 112
 
108 113
     async setPermission(permission: RPCPermission){

Carregando…
Cancelar
Salvar