@@ -51,69 +51,83 @@ async function ensureRole(jwt: string, name: string, id: string): Promise<Role>
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 ) ;
59- root . addRight ( WellknownIds . admins , "admins" , [ Rights . full_control ] ) ;
60- root . removeRight ( WellknownIds . admins , [ Rights . delete ] ) ;
61- root . addRight ( WellknownIds . root , "root" , [ Rights . full_control ] ) ;
62- root . removeRight ( WellknownIds . root , [ Rights . delete ] ) ;
63- await root . Save ( jwt ) ;
64-
65-
66- admins . addRight ( WellknownIds . admins , "admins" , [ Rights . full_control ] ) ;
67- admins . removeRight ( WellknownIds . admins , [ Rights . delete ] ) ;
68- await admins . Save ( jwt ) ;
69-
70- users . addRight ( WellknownIds . admins , "admins" , [ Rights . full_control ] ) ;
71- users . removeRight ( WellknownIds . admins , [ Rights . delete ] ) ;
72- users . AddMember ( root ) ;
73- await users . Save ( jwt ) ;
74-
75- var nodered_admins : Role = await ensureRole ( jwt , "nodered admins" , WellknownIds . nodered_admins ) ;
76- nodered_admins . AddMember ( admins ) ;
77- nodered_admins . addRight ( WellknownIds . admins , "admins" , [ Rights . full_control ] ) ;
78- nodered_admins . removeRight ( WellknownIds . admins , [ Rights . delete ] ) ;
79- await nodered_admins . Save ( jwt ) ;
80- var nodered_users : Role = await ensureRole ( jwt , "nodered users" , WellknownIds . nodered_users ) ;
81- nodered_users . AddMember ( admins ) ;
82- nodered_users . addRight ( WellknownIds . admins , "admins" , [ Rights . full_control ] ) ;
83- nodered_users . removeRight ( WellknownIds . admins , [ Rights . delete ] ) ;
84- await nodered_users . Save ( jwt ) ;
85- var nodered_api_users : Role = await ensureRole ( jwt , "nodered api users" , WellknownIds . nodered_api_users ) ;
86- nodered_api_users . AddMember ( admins ) ;
87- nodered_api_users . addRight ( WellknownIds . admins , "admins" , [ Rights . full_control ] ) ;
88- nodered_api_users . removeRight ( WellknownIds . admins , [ Rights . delete ] ) ;
89- await nodered_api_users . Save ( jwt ) ;
90-
91- var robot_admins : Role = await ensureRole ( jwt , "robot admins" , WellknownIds . robot_admins ) ;
92- robot_admins . AddMember ( admins ) ;
93- robot_admins . addRight ( WellknownIds . admins , "admins" , [ Rights . full_control ] ) ;
94- robot_admins . removeRight ( WellknownIds . admins , [ Rights . delete ] ) ;
95- await robot_admins . Save ( jwt ) ;
96- var robot_users : Role = await ensureRole ( jwt , "robot users" , WellknownIds . robot_users ) ;
97- robot_users . AddMember ( admins ) ;
98- robot_users . AddMember ( users ) ;
99- robot_users . addRight ( WellknownIds . admins , "admins" , [ Rights . full_control ] ) ;
100- robot_users . removeRight ( WellknownIds . admins , [ Rights . delete ] ) ;
101- await robot_users . Save ( jwt ) ;
102-
103-
104- if ( ! admins . IsMember ( root . _id ) ) {
105- admins . AddMember ( root ) ;
54+ async function initDatabase ( ) : Promise < boolean > {
55+ try {
56+ var jwt : string = TokenUser . rootToken ( ) ;
57+ var admins : Role = await ensureRole ( jwt , "admins" , WellknownIds . admins ) ;
58+ var users : Role = await ensureRole ( jwt , "users" , WellknownIds . users ) ;
59+ var root : User = await ensureUser ( jwt , "root" , "root" , WellknownIds . root ) ;
60+ root . addRight ( WellknownIds . admins , "admins" , [ Rights . full_control ] ) ;
61+ root . removeRight ( WellknownIds . admins , [ Rights . delete ] ) ;
62+ root . addRight ( WellknownIds . root , "root" , [ Rights . full_control ] ) ;
63+ root . removeRight ( WellknownIds . root , [ Rights . delete ] ) ;
64+ await root . Save ( jwt ) ;
65+
66+
67+ admins . addRight ( WellknownIds . admins , "admins" , [ Rights . full_control ] ) ;
68+ admins . removeRight ( WellknownIds . admins , [ Rights . delete ] ) ;
10669 await admins . Save ( jwt ) ;
70+
71+ users . addRight ( WellknownIds . admins , "admins" , [ Rights . full_control ] ) ;
72+ users . removeRight ( WellknownIds . admins , [ Rights . delete ] ) ;
73+ users . AddMember ( root ) ;
74+ await users . Save ( jwt ) ;
75+
76+ var nodered_admins : Role = await ensureRole ( jwt , "nodered admins" , WellknownIds . nodered_admins ) ;
77+ nodered_admins . AddMember ( admins ) ;
78+ nodered_admins . addRight ( WellknownIds . admins , "admins" , [ Rights . full_control ] ) ;
79+ nodered_admins . removeRight ( WellknownIds . admins , [ Rights . delete ] ) ;
80+ await nodered_admins . Save ( jwt ) ;
81+ var nodered_users : Role = await ensureRole ( jwt , "nodered users" , WellknownIds . nodered_users ) ;
82+ nodered_users . AddMember ( admins ) ;
83+ nodered_users . addRight ( WellknownIds . admins , "admins" , [ Rights . full_control ] ) ;
84+ nodered_users . removeRight ( WellknownIds . admins , [ Rights . delete ] ) ;
85+ await nodered_users . Save ( jwt ) ;
86+ var nodered_api_users : Role = await ensureRole ( jwt , "nodered api users" , WellknownIds . nodered_api_users ) ;
87+ nodered_api_users . AddMember ( admins ) ;
88+ nodered_api_users . addRight ( WellknownIds . admins , "admins" , [ Rights . full_control ] ) ;
89+ nodered_api_users . removeRight ( WellknownIds . admins , [ Rights . delete ] ) ;
90+ await nodered_api_users . Save ( jwt ) ;
91+
92+ var robot_admins : Role = await ensureRole ( jwt , "robot admins" , WellknownIds . robot_admins ) ;
93+ robot_admins . AddMember ( admins ) ;
94+ robot_admins . addRight ( WellknownIds . admins , "admins" , [ Rights . full_control ] ) ;
95+ robot_admins . removeRight ( WellknownIds . admins , [ Rights . delete ] ) ;
96+ await robot_admins . Save ( jwt ) ;
97+ var robot_users : Role = await ensureRole ( jwt , "robot users" , WellknownIds . robot_users ) ;
98+ robot_users . AddMember ( admins ) ;
99+ robot_users . AddMember ( users ) ;
100+ robot_users . addRight ( WellknownIds . admins , "admins" , [ Rights . full_control ] ) ;
101+ robot_users . removeRight ( WellknownIds . admins , [ Rights . delete ] ) ;
102+ await robot_users . Save ( jwt ) ;
103+
104+
105+ if ( ! admins . IsMember ( root . _id ) ) {
106+ admins . AddMember ( root ) ;
107+ await admins . Save ( jwt ) ;
108+ }
109+ return true ;
110+ } catch ( error ) {
111+ logger . error ( error ) ;
112+ return false ;
107113 }
108114}
109115
116+
117+ process . on ( 'unhandledRejection' , up => {
118+ console . error ( up ) ;
119+ throw up
120+ } ) ;
121+
110122( async function ( ) : Promise < void > {
111123 try {
112124 // await Config.get_login_providers();
113125 const server : http . Server = await WebServer . configure ( logger , Config . baseurl ( ) ) ;
114126 WebSocketServer . configure ( logger , server ) ;
115127 logger . info ( "listening on " + Config . baseurl ( ) ) ;
116- await initDatabase ( ) ;
128+ if ( ! await initDatabase ( ) ) {
129+ process . exit ( 404 ) ;
130+ }
117131
118132 // console.log("************************");
119133 // var e:Base = new Base();
@@ -150,6 +164,5 @@ async function initDatabase(): Promise<void> {
150164 // console.log("************************");
151165 } catch ( error ) {
152166 logger . error ( error . message ) ;
153- console . error ( error ) ;
154167 }
155168} ) ( ) ;
0 commit comments