push
This commit is contained in:
@@ -12,10 +12,11 @@ implements FrontworkComponent<UserManagerIfc, UserManagerFeatureIfc>{
|
|||||||
name = "Authenticator" as "Authenticator";
|
name = "Authenticator" as "Authenticator";
|
||||||
admin:FrontworkAdmin
|
admin:FrontworkAdmin
|
||||||
|
|
||||||
constructor(private exporters: PrivilegedRPCExporter[]){}
|
constructor(
|
||||||
|
private exporters: PrivilegedRPCExporter[]
|
||||||
|
){}
|
||||||
|
|
||||||
exportRPCs() {
|
exportRPCs = () => [
|
||||||
return [
|
|
||||||
{
|
{
|
||||||
name: 'login' as 'login',
|
name: 'login' as 'login',
|
||||||
call: async (username:string, pwHash:string) => await this.login(username, pwHash)
|
call: async (username:string, pwHash:string) => await this.login(username, pwHash)
|
||||||
@@ -24,20 +25,17 @@ implements FrontworkComponent<UserManagerIfc, UserManagerFeatureIfc>{
|
|||||||
call: async (tokenValue:string | Token) => await this.authenticate(tokenValue)
|
call: async (tokenValue:string | Token) => await this.authenticate(tokenValue)
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
|
||||||
|
|
||||||
onSetAdmin(admin:FrontworkAdmin){
|
onSetAdmin(admin:FrontworkAdmin){
|
||||||
this.exporters.forEach(e => e['admin'] = admin)
|
this.exporters.forEach(e => e['admin'] = admin)
|
||||||
}
|
}
|
||||||
|
|
||||||
exportRPCFeatures() {
|
exportRPCFeatures = () => [
|
||||||
return [{
|
{
|
||||||
name: 'createUser' as 'createUser',
|
name: 'createUser' as 'createUser',
|
||||||
exportRPCs: () => [{
|
exportRPCs: () => [{
|
||||||
name: 'createUser' as 'createUser',
|
name: 'createUser' as 'createUser',
|
||||||
call: async (user:User) => {
|
call: async (user:User) => await this.createUser(user)
|
||||||
return await this.createUser(user)
|
|
||||||
}
|
|
||||||
}]
|
}]
|
||||||
},{
|
},{
|
||||||
name: 'modifyPermissions' as 'modifyPermissions',
|
name: 'modifyPermissions' as 'modifyPermissions',
|
||||||
@@ -48,11 +46,11 @@ implements FrontworkComponent<UserManagerIfc, UserManagerFeatureIfc>{
|
|||||||
name: 'setPermission' as 'setPermission',
|
name: 'setPermission' as 'setPermission',
|
||||||
call: async (perm: RPCPermission) => await this.setPermission(perm)
|
call: async (perm: RPCPermission) => await this.setPermission(perm)
|
||||||
}]
|
}]
|
||||||
}]
|
|
||||||
}
|
}
|
||||||
|
]
|
||||||
|
|
||||||
getTableDefinitions(): TableDefiniton[] {
|
|
||||||
return [
|
getTableDefinitions = (): TableDefiniton[] => [
|
||||||
{
|
{
|
||||||
name: 'users',
|
name: 'users',
|
||||||
tableBuilder: (table) => {
|
tableBuilder: (table) => {
|
||||||
@@ -60,10 +58,18 @@ implements FrontworkComponent<UserManagerIfc, UserManagerFeatureIfc>{
|
|||||||
table.string("name").notNullable().unique()
|
table.string("name").notNullable().unique()
|
||||||
table.string("pwhash").notNullable()
|
table.string("pwhash").notNullable()
|
||||||
table.string("rank").notNullable()
|
table.string("rank").notNullable()
|
||||||
table.integer("specid").notNullable()
|
|
||||||
table.foreign('specid').references('specs.id')
|
|
||||||
table.string("email").nullable().unique()
|
table.string("email").nullable().unique()
|
||||||
}
|
}
|
||||||
|
},{
|
||||||
|
name: 'characters',
|
||||||
|
tableBuilder: (table) => {
|
||||||
|
table.increments("id").primary()
|
||||||
|
table.string("name").notNullable().unique()
|
||||||
|
table.integer("specid").notNullable()
|
||||||
|
table.foreign("specid").references("specs.id")
|
||||||
|
table.integer("userid").notNullable()
|
||||||
|
table.foreign("userid").references("users.id")
|
||||||
|
}
|
||||||
},{
|
},{
|
||||||
name: 'rpcpermissions',
|
name: 'rpcpermissions',
|
||||||
tableBuilder: (table) => {
|
tableBuilder: (table) => {
|
||||||
@@ -82,13 +88,14 @@ implements FrontworkComponent<UserManagerIfc, UserManagerFeatureIfc>{
|
|||||||
},{
|
},{
|
||||||
name: 'specs',
|
name: 'specs',
|
||||||
tableBuilder: (table) => {
|
tableBuilder: (table) => {
|
||||||
table.increments('id').primary()
|
|
||||||
table.string('class')
|
table.string('class')
|
||||||
table.string('name')
|
table.string('name')
|
||||||
|
table.primary(['class', 'name'])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
,...this.exporters.flatMap(exp => exp['getTableDefinitions']?exp['getTableDefinitions']():undefined)]
|
,...this.exporters.flatMap(exp => exp['getTableDefinitions']?exp['getTableDefinitions']():undefined)
|
||||||
}
|
]
|
||||||
|
|
||||||
|
|
||||||
async initialize(){
|
async initialize(){
|
||||||
await Promise.all(
|
await Promise.all(
|
||||||
@@ -100,9 +107,7 @@ implements FrontworkComponent<UserManagerIfc, UserManagerFeatureIfc>{
|
|||||||
|
|
||||||
await Promise.all(this.exporters.map(ex => ex['initialize']?ex['initialize']():undefined))
|
await Promise.all(this.exporters.map(ex => ex['initialize']?ex['initialize']():undefined))
|
||||||
|
|
||||||
console.log(getSpecTableData())
|
await this.admin.knex('specs').insert(getSpecTableData()).catch(e => { console.log("skipping spec insertion") })
|
||||||
|
|
||||||
await this.admin.knex('specs').insert(getSpecTableData()).catch(console.log)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async setPermission(permission: RPCPermission){
|
async setPermission(permission: RPCPermission){
|
||||||
|
|||||||
Reference in New Issue
Block a user