@@ -26,60 +26,65 @@ var pub: amqp_publisher = new amqp_publisher(logger, Config.amqp_url, "hello1");
2626var excon1 : amqp_exchange_consumer = new amqp_exchange_consumer ( logger , Config . amqp_url , "hello2" ) ;
2727var excon2 : amqp_exchange_consumer = new amqp_exchange_consumer ( logger , Config . amqp_url , "hello2" ) ;
2828var expub : amqp_exchange_publisher = new amqp_exchange_publisher ( logger , Config . amqp_url , "hello2" ) ;
29- var rpccon : amqp_rpc_consumer = new amqp_rpc_consumer ( logger , Config . amqp_url , "rpchello" , ( msg : string ) : string => {
29+ var rpccon : amqp_rpc_consumer = new amqp_rpc_consumer ( logger , Config . amqp_url , "rpchello" , ( msg : string ) : string => {
3030 console . log ( "SUCCESS!!!!!! " + msg ) ;
3131 return "server response! " + msg ;
3232} ) ;
3333var rpcpub : amqp_rpc_publisher = new amqp_rpc_publisher ( logger , Config . amqp_url ) ;
3434
35- async function ensureUser ( jwt :string , name :string , username :string , id :string ) :Promise < User > {
36- var user :User = await User . FindByUsernameOrId ( username , id ) ;
37- if ( user !== null && ( user . _id === id || id === null ) ) { return user ; }
38- if ( user !== null && id !== null ) { await Config . db . DeleteOne ( user . _id , "users" , jwt ) ; }
39- user = new User ( ) ; user . _id = id ; user . name = name ; user . username = username ;
35+ async function ensureUser ( jwt : string , name : string , username : string , id : string ) : Promise < User > {
36+ var user : User = await User . FindByUsernameOrId ( username , id ) ;
37+ if ( user !== null && ( user . _id === id || id === null ) ) { return user ; }
38+ if ( user !== null && id !== null ) { await Config . db . DeleteOne ( user . _id , "users" , jwt ) ; }
39+ user = new User ( ) ; user . _id = id ; user . name = name ; user . username = username ;
4040 await user . SetPassword ( Math . random ( ) . toString ( 36 ) . substr ( 2 , 9 ) ) ;
4141 user = await Config . db . InsertOne ( user , "users" , jwt ) ;
4242 user = User . assign ( user ) ;
4343 return user ;
4444}
45- async function ensureRole ( jwt :string , name :string , id :string ) :Promise < Role > {
46- var role :Role = await Role . FindByNameOrId ( name , id ) ;
47- if ( role !== null && role . _id === id ) { return role ; }
48- if ( role !== null ) { await Config . db . DeleteOne ( role . _id , "users" , jwt ) ; }
49- role = new Role ( ) ; role . _id = id ; role . name = name ;
45+ async function ensureRole ( jwt : string , name : string , id : string ) : Promise < Role > {
46+ var role : Role = await Role . FindByNameOrId ( name , id ) ;
47+ if ( role !== null && role . _id === id ) { return role ; }
48+ if ( role !== null ) { await Config . db . DeleteOne ( role . _id , "users" , jwt ) ; }
49+ role = new Role ( ) ; role . _id = id ; role . name = name ;
5050 role = await Config . db . InsertOne ( role , "users" , jwt ) ;
5151 role = Role . assign ( role ) ;
5252 return role ;
5353}
54- async function initDatabase ( ) :Promise < void > {
55- var jwt :string = TokenUser . rootToken ( ) ;
56- var admins :Role = await ensureRole ( jwt , "admins" , WellknownIds . admins ) ;
57- var users :Role = await ensureRole ( jwt , "users" , WellknownIds . users ) ;
58- var root :User = await ensureUser ( jwt , "root" , "root" , WellknownIds . root ) ;
54+ async function initDatabase ( ) : Promise < void > {
55+ var jwt : string = TokenUser . rootToken ( ) ;
56+ var admins : Role = await ensureRole ( jwt , "admins" , WellknownIds . admins ) ;
57+ var users : Role = await ensureRole ( jwt , "users" , WellknownIds . users ) ;
58+ var root : User = await ensureUser ( jwt , "root" , "root" , WellknownIds . root ) ;
5959
60- var nodered_admins :Role = await ensureRole ( jwt , "nodered admins" , WellknownIds . nodered_admins ) ;
60+ var nodered_admins : Role = await ensureRole ( jwt , "nodered admins" , WellknownIds . nodered_admins ) ;
6161 nodered_admins . AddMember ( admins ) ;
6262 await nodered_admins . Save ( jwt ) ;
63- var nodered_users :Role = await ensureRole ( jwt , "nodered users" , WellknownIds . nodered_users ) ;
63+ var nodered_users : Role = await ensureRole ( jwt , "nodered users" , WellknownIds . nodered_users ) ;
6464 nodered_users . AddMember ( admins ) ;
6565 await nodered_users . Save ( jwt ) ;
66- var nodered_api_users :Role = await ensureRole ( jwt , "nodered api users" , WellknownIds . nodered_api_users ) ;
66+ var nodered_api_users : Role = await ensureRole ( jwt , "nodered api users" , WellknownIds . nodered_api_users ) ;
6767 nodered_api_users . AddMember ( admins ) ;
6868 await nodered_api_users . Save ( jwt ) ;
6969
70- var robot_admins :Role = await ensureRole ( jwt , "robot admins" , WellknownIds . robot_admins ) ;
70+ var robot_admins : Role = await ensureRole ( jwt , "robot admins" , WellknownIds . robot_admins ) ;
7171 robot_admins . AddMember ( admins ) ;
7272 await robot_admins . Save ( jwt ) ;
73- var robot_users :Role = await ensureRole ( jwt , "robot users" , WellknownIds . robot_users ) ;
73+ var robot_users : Role = await ensureRole ( jwt , "robot users" , WellknownIds . robot_users ) ;
7474 robot_users . AddMember ( admins ) ;
7575 robot_users . AddMember ( users ) ;
7676 await robot_users . Save ( jwt ) ;
7777
7878 users . AddMember ( root ) ;
7979 await users . Save ( jwt ) ;
80+
81+ if ( ! admins . IsMember ( root . _id ) ) {
82+ admins . AddMember ( root ) ;
83+ await admins . Save ( jwt ) ;
84+ }
8085}
8186
82- ( async function ( ) : Promise < void > {
87+ ( async function ( ) : Promise < void > {
8388 try {
8489 // await Config.get_login_providers();
8590 const server : http . Server = await WebServer . configure ( logger , Config . baseurl ( ) ) ;
0 commit comments