Skip to content

Commit fb7c42c

Browse files
committed
move ensureUser and ensureRole
1 parent 1e07204 commit fb7c42c

2 files changed

Lines changed: 39 additions & 38 deletions

File tree

OpenFlow/src/User.ts

Lines changed: 30 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,25 @@ export class User extends Base {
3131
device: any;
3232
federationids: FederationId[] = [];
3333
roles: Rolemember[] = [];
34+
public static async ensureUser(jwt: string, name: string, username: string, id: string): Promise<User> {
35+
var user: User = await User.FindByUsernameOrId(username, id);
36+
if (user !== null && (user._id === id || id === null)) { return user; }
37+
if (user !== null && id !== null) { await Config.db.DeleteOne(user._id, "users", jwt); }
38+
user = new User(); user._id = id; user.name = name; user.username = username;
39+
await user.SetPassword(Math.random().toString(36).substr(2, 9));
40+
user = await Config.db.InsertOne(user, "users", 0, false, jwt);
41+
user = User.assign(user);
42+
return user;
43+
}
44+
public static async ensureRole(jwt: string, name: string, id: string): Promise<Role> {
45+
var role: Role = await Role.FindByNameOrId(name, id);
46+
if (role !== null && role._id === id) { return role; }
47+
if (role !== null) { await Config.db.DeleteOne(role._id, "users", jwt); }
48+
role = new Role(); role._id = id; role.name = name;
49+
role = await Config.db.InsertOne(role, "users", 0, false, jwt);
50+
role = Role.assign(role);
51+
return role;
52+
}
3453
HasRoleName(name: string): Boolean {
3554
var hits: Rolemember[] = this.roles.filter(member => member.name === name);
3655
return (hits.length === 1);
@@ -127,17 +146,17 @@ export class User extends Base {
127146
}
128147
}
129148

130-
public static async ensureUser(name: string, username: string, password: string, id: string): Promise<User> {
131-
var user: User = await User.FindByUsernameOrId(username, id);
132-
if (user !== null && (user._id === id || id === null)) { return user; }
133-
if (user !== null && id !== null) { await Config.db.DeleteOne(user._id, "users", TokenUser.rootToken()); }
134-
user = new User(); user._id = id; user.name = name; user.username = username;
135-
if (password === null || password === undefined || password === "") { password = Math.random().toString(36).substr(2, 9); }
136-
await user.SetPassword(password);
137-
user = await Config.db.InsertOne(user, "users", 0, false, TokenUser.rootToken());
138-
user = User.assign(user);
139-
return user;
140-
}
149+
// public static async ensureUser(name: string, username: string, password: string, id: string): Promise<User> {
150+
// var user: User = await User.FindByUsernameOrId(username, id);
151+
// if (user !== null && (user._id === id || id === null)) { return user; }
152+
// if (user !== null && id !== null) { await Config.db.DeleteOne(user._id, "users", TokenUser.rootToken()); }
153+
// user = new User(); user._id = id; user.name = name; user.username = username;
154+
// if (password === null || password === undefined || password === "") { password = Math.random().toString(36).substr(2, 9); }
155+
// await user.SetPassword(password);
156+
// user = await Config.db.InsertOne(user, "users", 0, false, TokenUser.rootToken());
157+
// user = User.assign(user);
158+
// return user;
159+
// }
141160

142161
}
143162

OpenFlow/src/index.ts

Lines changed: 9 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -32,31 +32,13 @@ var rpccon: amqp_rpc_consumer = new amqp_rpc_consumer(logger, Config.amqp_url, "
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;
40-
await user.SetPassword(Math.random().toString(36).substr(2, 9));
41-
user = await Config.db.InsertOne(user, "users", 0, false, jwt);
42-
user = User.assign(user);
43-
return user;
44-
}
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;
50-
role = await Config.db.InsertOne(role, "users", 0, false, jwt);
51-
role = Role.assign(role);
52-
return role;
53-
}
35+
5436
async function initDatabase(): Promise<boolean> {
5537
try {
5638
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);
39+
var admins: Role = await User.ensureRole(jwt, "admins", WellknownIds.admins);
40+
var users: Role = await User.ensureRole(jwt, "users", WellknownIds.users);
41+
var root: User = await User.ensureUser(jwt, "root", "root", WellknownIds.root);
6042
root.addRight(WellknownIds.admins, "admins", [Rights.full_control]);
6143
root.removeRight(WellknownIds.admins, [Rights.delete]);
6244
root.addRight(WellknownIds.root, "root", [Rights.full_control]);
@@ -73,28 +55,28 @@ async function initDatabase(): Promise<boolean> {
7355
users.AddMember(root);
7456
await users.Save(jwt);
7557

76-
var nodered_admins: Role = await ensureRole(jwt, "nodered admins", WellknownIds.nodered_admins);
58+
var nodered_admins: Role = await User.ensureRole(jwt, "nodered admins", WellknownIds.nodered_admins);
7759
nodered_admins.AddMember(admins);
7860
nodered_admins.addRight(WellknownIds.admins, "admins", [Rights.full_control]);
7961
nodered_admins.removeRight(WellknownIds.admins, [Rights.delete]);
8062
await nodered_admins.Save(jwt);
81-
var nodered_users: Role = await ensureRole(jwt, "nodered users", WellknownIds.nodered_users);
63+
var nodered_users: Role = await User.ensureRole(jwt, "nodered users", WellknownIds.nodered_users);
8264
nodered_users.AddMember(admins);
8365
nodered_users.addRight(WellknownIds.admins, "admins", [Rights.full_control]);
8466
nodered_users.removeRight(WellknownIds.admins, [Rights.delete]);
8567
await nodered_users.Save(jwt);
86-
var nodered_api_users: Role = await ensureRole(jwt, "nodered api users", WellknownIds.nodered_api_users);
68+
var nodered_api_users: Role = await User.ensureRole(jwt, "nodered api users", WellknownIds.nodered_api_users);
8769
nodered_api_users.AddMember(admins);
8870
nodered_api_users.addRight(WellknownIds.admins, "admins", [Rights.full_control]);
8971
nodered_api_users.removeRight(WellknownIds.admins, [Rights.delete]);
9072
await nodered_api_users.Save(jwt);
9173

92-
var robot_admins: Role = await ensureRole(jwt, "robot admins", WellknownIds.robot_admins);
74+
var robot_admins: Role = await User.ensureRole(jwt, "robot admins", WellknownIds.robot_admins);
9375
robot_admins.AddMember(admins);
9476
robot_admins.addRight(WellknownIds.admins, "admins", [Rights.full_control]);
9577
robot_admins.removeRight(WellknownIds.admins, [Rights.delete]);
9678
await robot_admins.Save(jwt);
97-
var robot_users: Role = await ensureRole(jwt, "robot users", WellknownIds.robot_users);
79+
var robot_users: Role = await User.ensureRole(jwt, "robot users", WellknownIds.robot_users);
9880
robot_users.AddMember(admins);
9981
robot_users.AddMember(users);
10082
robot_users.addRight(WellknownIds.admins, "admins", [Rights.full_control]);

0 commit comments

Comments
 (0)