Skip to content

Commit

Permalink
ensure root is admin doing boot
Browse files Browse the repository at this point in the history
  • Loading branch information
skadefro committed May 24, 2019
1 parent bc7cce5 commit ecc1a19
Show file tree
Hide file tree
Showing 4 changed files with 38 additions and 51 deletions.
28 changes: 5 additions & 23 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,13 +22,6 @@
"stopOnEntry": false,
"type": "node"
},
{
"name": "Launch index.html",
"type": "chrome",
"request": "launch",
"url": "https://localhost.openrpa.dk:3000/",
"webRoot": "${workspaceFolder}/dist/Public/index.html"
},
{
"args": [],
"cwd": "${workspaceRoot}",
Expand All @@ -51,22 +44,11 @@
"type": "node"
},
{
"type": "node",
"request": "attach",
"name": "Attach to demo2red0",
"address": "demo2red0.openrpa.dk",
"port": 5858,
"localRoot": "${workspaceFolder}/OpenFlowNodeRED/dist/",
"remoteRoot": "/data"
},
{
"type": "node",
"request": "attach",
"name": "Attach to demo2",
"address": "demo2.openrpa.dk",
"port": 5858,
"localRoot": "${workspaceFolder}/dist/",
"remoteRoot": "/data"
"name": "Launch index.html",
"type": "chrome",
"request": "launch",
"url": "https://localhost.openrpa.dk:3000/",
"webRoot": "${workspaceFolder}/dist/Public/index.html"
},
]
}
10 changes: 5 additions & 5 deletions OpenFlow/src/DatabaseConnection.ts
Original file line number Diff line number Diff line change
Expand Up @@ -80,11 +80,11 @@ export class DatabaseConnection {
}
if (!top) { top = 500; }
if (!skip) { skip = 0; }
if (collectionname == "openrpa") {
var user: TokenUser = Crypt.verityToken(jwt);
arr = await this.db.collection(collectionname).find(query).limit(top).skip(skip).toArray();
_query = { $and: [query, this.getbasequery(jwt, "_acl", [Rights.read])] };
}
// if (collectionname == "openrpa") {
// var user: TokenUser = Crypt.verityToken(jwt);
// arr = await this.db.collection(collectionname).find(query).limit(top).skip(skip).toArray();
// _query = { $and: [query, this.getbasequery(jwt, "_acl", [Rights.read])] };
// }
if (projection != null) {
arr = await this.db.collection(collectionname).find(_query).project(projection).sort(mysort).limit(top).skip(skip).toArray();
} else {
Expand Down
49 changes: 27 additions & 22 deletions OpenFlow/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,60 +26,65 @@ var pub: amqp_publisher = new amqp_publisher(logger, Config.amqp_url, "hello1");
var excon1: amqp_exchange_consumer = new amqp_exchange_consumer(logger, Config.amqp_url, "hello2");
var excon2: amqp_exchange_consumer = new amqp_exchange_consumer(logger, Config.amqp_url, "hello2");
var expub: amqp_exchange_publisher = new amqp_exchange_publisher(logger, Config.amqp_url, "hello2");
var rpccon: amqp_rpc_consumer = new amqp_rpc_consumer(logger, Config.amqp_url, "rpchello", (msg: string): string=> {
var rpccon: amqp_rpc_consumer = new amqp_rpc_consumer(logger, Config.amqp_url, "rpchello", (msg: string): string => {
console.log("SUCCESS!!!!!! " + msg);
return "server response! " + msg;
});
var rpcpub: amqp_rpc_publisher = new amqp_rpc_publisher(logger, Config.amqp_url);

async function ensureUser(jwt:string, name:string, username:string, id:string):Promise<User> {
var user:User = await User.FindByUsernameOrId(username, id);
if(user!==null && (user._id === id || id === null)) { return user; }
if(user!==null && id !== null ) { await Config.db.DeleteOne(user._id, "users", jwt); }
user = new User(); user._id = id; user.name = name; user.username = username;
async function ensureUser(jwt: string, name: string, username: string, id: string): Promise<User> {
var user: User = await User.FindByUsernameOrId(username, id);
if (user !== null && (user._id === id || id === null)) { return user; }
if (user !== null && id !== null) { await Config.db.DeleteOne(user._id, "users", jwt); }
user = new User(); user._id = id; user.name = name; user.username = username;
await user.SetPassword(Math.random().toString(36).substr(2, 9));
user = await Config.db.InsertOne(user, "users", jwt);
user = User.assign(user);
return user;
}
async function ensureRole(jwt:string, name:string, id:string):Promise<Role> {
var role:Role = await Role.FindByNameOrId(name, id);
if(role!==null && role._id === id) { return role; }
if(role!==null) { await Config.db.DeleteOne(role._id, "users", jwt); }
role = new Role(); role._id = id; role.name = name;
async function ensureRole(jwt: string, name: string, id: string): Promise<Role> {
var role: Role = await Role.FindByNameOrId(name, id);
if (role !== null && role._id === id) { return role; }
if (role !== null) { await Config.db.DeleteOne(role._id, "users", jwt); }
role = new Role(); role._id = id; role.name = name;
role = await Config.db.InsertOne(role, "users", jwt);
role = Role.assign(role);
return role;
}
async function initDatabase():Promise<void> {
var jwt:string = TokenUser.rootToken();
var admins:Role = await ensureRole(jwt, "admins", WellknownIds.admins);
var users:Role = await ensureRole(jwt, "users", WellknownIds.users);
var root:User = await ensureUser(jwt, "root", "root", WellknownIds.root);
async function initDatabase(): Promise<void> {
var jwt: string = TokenUser.rootToken();
var admins: Role = await ensureRole(jwt, "admins", WellknownIds.admins);
var users: Role = await ensureRole(jwt, "users", WellknownIds.users);
var root: User = await ensureUser(jwt, "root", "root", WellknownIds.root);

var nodered_admins:Role = await ensureRole(jwt, "nodered admins", WellknownIds.nodered_admins);
var nodered_admins: Role = await ensureRole(jwt, "nodered admins", WellknownIds.nodered_admins);
nodered_admins.AddMember(admins);
await nodered_admins.Save(jwt);
var nodered_users:Role = await ensureRole(jwt, "nodered users", WellknownIds.nodered_users);
var nodered_users: Role = await ensureRole(jwt, "nodered users", WellknownIds.nodered_users);
nodered_users.AddMember(admins);
await nodered_users.Save(jwt);
var nodered_api_users:Role = await ensureRole(jwt, "nodered api users", WellknownIds.nodered_api_users);
var nodered_api_users: Role = await ensureRole(jwt, "nodered api users", WellknownIds.nodered_api_users);
nodered_api_users.AddMember(admins);
await nodered_api_users.Save(jwt);

var robot_admins:Role = await ensureRole(jwt, "robot admins", WellknownIds.robot_admins);
var robot_admins: Role = await ensureRole(jwt, "robot admins", WellknownIds.robot_admins);
robot_admins.AddMember(admins);
await robot_admins.Save(jwt);
var robot_users:Role = await ensureRole(jwt, "robot users", WellknownIds.robot_users);
var robot_users: Role = await ensureRole(jwt, "robot users", WellknownIds.robot_users);
robot_users.AddMember(admins);
robot_users.AddMember(users);
await robot_users.Save(jwt);

users.AddMember(root);
await users.Save(jwt);

if (!admins.IsMember(root._id)) {
admins.AddMember(root);
await admins.Save(jwt);
}
}

(async function(): Promise<void> {
(async function (): Promise<void> {
try {
// await Config.get_login_providers();
const server: http.Server = await WebServer.configure(logger, Config.baseurl());
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.0.101
0.0.102

0 comments on commit ecc1a19

Please sign in to comment.