Skip to content

Commit ecc1a19

Browse files
committed
ensure root is admin doing boot
1 parent bc7cce5 commit ecc1a19

4 files changed

Lines changed: 38 additions & 51 deletions

File tree

.vscode/launch.json

Lines changed: 5 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,6 @@
2222
"stopOnEntry": false,
2323
"type": "node"
2424
},
25-
{
26-
"name": "Launch index.html",
27-
"type": "chrome",
28-
"request": "launch",
29-
"url": "https://localhost.openrpa.dk:3000/",
30-
"webRoot": "${workspaceFolder}/dist/Public/index.html"
31-
},
3225
{
3326
"args": [],
3427
"cwd": "${workspaceRoot}",
@@ -51,22 +44,11 @@
5144
"type": "node"
5245
},
5346
{
54-
"type": "node",
55-
"request": "attach",
56-
"name": "Attach to demo2red0",
57-
"address": "demo2red0.openrpa.dk",
58-
"port": 5858,
59-
"localRoot": "${workspaceFolder}/OpenFlowNodeRED/dist/",
60-
"remoteRoot": "/data"
61-
},
62-
{
63-
"type": "node",
64-
"request": "attach",
65-
"name": "Attach to demo2",
66-
"address": "demo2.openrpa.dk",
67-
"port": 5858,
68-
"localRoot": "${workspaceFolder}/dist/",
69-
"remoteRoot": "/data"
47+
"name": "Launch index.html",
48+
"type": "chrome",
49+
"request": "launch",
50+
"url": "https://localhost.openrpa.dk:3000/",
51+
"webRoot": "${workspaceFolder}/dist/Public/index.html"
7052
},
7153
]
7254
}

OpenFlow/src/DatabaseConnection.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -80,11 +80,11 @@ export class DatabaseConnection {
8080
}
8181
if (!top) { top = 500; }
8282
if (!skip) { skip = 0; }
83-
if (collectionname == "openrpa") {
84-
var user: TokenUser = Crypt.verityToken(jwt);
85-
arr = await this.db.collection(collectionname).find(query).limit(top).skip(skip).toArray();
86-
_query = { $and: [query, this.getbasequery(jwt, "_acl", [Rights.read])] };
87-
}
83+
// if (collectionname == "openrpa") {
84+
// var user: TokenUser = Crypt.verityToken(jwt);
85+
// arr = await this.db.collection(collectionname).find(query).limit(top).skip(skip).toArray();
86+
// _query = { $and: [query, this.getbasequery(jwt, "_acl", [Rights.read])] };
87+
// }
8888
if (projection != null) {
8989
arr = await this.db.collection(collectionname).find(_query).project(projection).sort(mysort).limit(top).skip(skip).toArray();
9090
} else {

OpenFlow/src/index.ts

Lines changed: 27 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -26,60 +26,65 @@ var pub: amqp_publisher = new amqp_publisher(logger, Config.amqp_url, "hello1");
2626
var excon1: amqp_exchange_consumer = new amqp_exchange_consumer(logger, Config.amqp_url, "hello2");
2727
var excon2: amqp_exchange_consumer = new amqp_exchange_consumer(logger, Config.amqp_url, "hello2");
2828
var 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
});
3333
var 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());

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
0.0.101
1+
0.0.102

0 commit comments

Comments
 (0)