Skip to content

Commit 3c6859a

Browse files
committed
Stricter auto_create_users check
1 parent 49f35dd commit 3c6859a

3 files changed

Lines changed: 13 additions & 7 deletions

File tree

OpenFlow/src/Config.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@ export class Config {
3838

3939
Config.auto_create_users = Config.parseBoolean(Config.getEnv("auto_create_users", "false"));
4040
Config.auto_create_domains = Config.parseArray(Config.getEnv("auto_create_domains", ""));
41-
Config.allow_user_registration = Config.parseBoolean(Config.getEnv("allow_user_registration", "false"));
4241
Config.persist_user_impersonation = Config.parseBoolean(Config.getEnv("persist_user_impersonation", "true"));
4342
Config.allow_personal_nodered = Config.parseBoolean(Config.getEnv("allow_personal_nodered", "false"));
4443
Config.auto_create_personal_nodered_group = Config.parseBoolean(Config.getEnv("auto_create_personal_nodered_group", "false"));
@@ -158,7 +157,6 @@ export class Config {
158157

159158
public static auto_create_users: boolean = Config.parseBoolean(Config.getEnv("auto_create_users", "false"));
160159
public static auto_create_domains: string[] = Config.parseArray(Config.getEnv("auto_create_domains", ""));
161-
public static allow_user_registration: boolean = Config.parseBoolean(Config.getEnv("allow_user_registration", "false"));
162160
public static persist_user_impersonation: boolean = Config.parseBoolean(Config.getEnv("persist_user_impersonation", "true"));
163161
public static allow_personal_nodered: boolean = Config.parseBoolean(Config.getEnv("allow_personal_nodered", "false"));
164162
public static use_ingress_beta1_syntax: boolean = Config.parseBoolean(Config.getEnv("use_ingress_beta1_syntax", "true"));

OpenFlow/src/LoginProvider.ts

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -405,7 +405,7 @@ export class LoginProvider {
405405
wshost: _url,
406406
wsurl: _url,
407407
domain: Config.domain,
408-
allow_user_registration: Config.allow_user_registration,
408+
auto_create_users: Config.auto_create_users,
409409
allow_personal_nodered: Config.allow_personal_nodered,
410410
auto_create_personal_nodered_group: Config.auto_create_personal_nodered_group,
411411
namespace: Config.namespace,
@@ -988,6 +988,10 @@ export class LoginProvider {
988988
if (LoginProvider.login_providers.length === 0) {
989989
user = await DBHelper.FindByUsername(username, null, span);
990990
if (user == null) {
991+
let createUser: boolean = Config.auto_create_users;
992+
if (!createUser) {
993+
return done(null, false);
994+
}
991995
user = new User(); user.name = username; user.username = username;
992996
await Crypt.SetPassword(user, password, span);
993997
user = await Config.db.InsertOne(user, "users", 0, false, Crypt.rootToken(), span);
@@ -1014,7 +1018,8 @@ export class LoginProvider {
10141018
}
10151019
user = await DBHelper.FindByUsername(username, null, span);
10161020
if (NoderedUtil.IsNullUndefinded(user)) {
1017-
if (!Config.allow_user_registration) {
1021+
let createUser: boolean = Config.auto_create_users;
1022+
if (!createUser) {
10181023
return done(null, false);
10191024
}
10201025
user = await DBHelper.ensureUser(Crypt.rootToken(), username, username, null, password, span);
@@ -1122,7 +1127,7 @@ export class LoginProvider {
11221127

11231128
if (NoderedUtil.IsNullUndefinded(_user)) {
11241129
let createUser: boolean = Config.auto_create_users;
1125-
if (Config.auto_create_domains.map(x => username.endsWith(x)).length == -1) { createUser = false; }
1130+
if (Config.auto_create_domains.map(x => username.endsWith(x)).length > 0) { createUser = true; }
11261131
if (createUser) {
11271132
_user = new User(); _user.name = profile.name;
11281133
if (!NoderedUtil.IsNullEmpty(profile["http://schemas.microsoft.com/identity/claims/displayname"])) {
@@ -1204,7 +1209,7 @@ export class LoginProvider {
12041209
let _user: User = await DBHelper.FindByUsernameOrFederationid(username, span);
12051210
if (NoderedUtil.IsNullUndefinded(_user)) {
12061211
let createUser: boolean = Config.auto_create_users;
1207-
if (Config.auto_create_domains.map(x => username.endsWith(x)).length == -1) { createUser = false; }
1212+
if (Config.auto_create_domains.map(x => username.endsWith(x)).length > 0) { createUser = true; }
12081213
if (createUser) {
12091214
const jwt: string = Crypt.rootToken();
12101215
_user = new User(); _user.name = profile.name;

OpenFlow/src/Messages/Message.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1104,6 +1104,9 @@ export class Message {
11041104
let msg: RegisterUserMessage;
11051105
let user: User;
11061106
try {
1107+
if (!Config.auto_create_users) {
1108+
throw new Error("User registration not enabled for this openflow")
1109+
}
11071110
msg = RegisterUserMessage.assign(this.data);
11081111
if (msg.name == null || msg.name == undefined || msg.name == "") { throw new Error("Name cannot be null"); }
11091112
if (msg.username == null || msg.username == undefined || msg.username == "") { throw new Error("Username cannot be null"); }
@@ -2161,7 +2164,7 @@ export class Message {
21612164
(msg as any).workflow = msg.workflowid;
21622165

21632166
if (NoderedUtil.IsNullEmpty(msg.correlationId)) {
2164-
msg.correlationId = Math.random().toString(36).substr(2, 9);
2167+
msg.correlationId = NoderedUtil.GetUniqueIdentifier();
21652168
}
21662169

21672170
const _data = Base.assign<Base>(msg as any);

0 commit comments

Comments
 (0)