Skip to content

Commit d2638dc

Browse files
committed
ensure permissions for nodered
1 parent fb7c42c commit d2638dc

4 files changed

Lines changed: 29 additions & 4 deletions

File tree

OpenFlow/src/Messages/Message.ts

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import * as crypto from "crypto";
22
import { SocketMessage } from "../SocketMessage";
33
import { WebSocketClient, QueuedMessage } from "../WebSocketClient";
44
import { QueryMessage } from "./QueryMessage";
5-
import { Base } from "../base";
5+
import { Base, Rights } from "../base";
66
import { SigninMessage } from "./SigninMessage";
77
import { User } from "../User";
88
import { Auth } from "../Auth";
@@ -497,6 +497,16 @@ export class Message {
497497
var user: User;
498498
try {
499499
msg = EnsureNoderedInstanceMessage.assign(this.data);
500+
501+
// var noderedusers = await User.ensureRole(cli.jwt, name + "noderedusers", null);
502+
// noderedusers.addRight(cli.user._id, cli.user.username, [Rights.full_control]);
503+
// noderedusers.removeRight(cli.user._id, [Rights.delete]);
504+
// noderedusers.AddMember(cli.user);
505+
var noderedadmins = await User.ensureRole(cli.jwt, name + "noderedadmins", null);
506+
noderedadmins.addRight(cli.user._id, cli.user.username, [Rights.full_control]);
507+
noderedadmins.removeRight(cli.user._id, [Rights.delete]);
508+
noderedadmins.AddMember(cli.user);
509+
500510
var name = cli.user.username;
501511
var namespace = Config.namespace;
502512
var hostname = Config.nodered_domain_schema.replace("$nodered_id$", name);
@@ -513,7 +523,7 @@ export class Message {
513523
containers: [
514524
{
515525
name: 'nodered',
516-
image: 'cloudhack/openflownodered:0.0.180',
526+
image: 'cloudhack/openflownodered:0.0.183',
517527
imagePullPolicy: "Always",
518528
env: [
519529
{ name: "saml_federation_metadata", value: Config.saml_federation_metadata },
@@ -524,7 +534,8 @@ export class Message {
524534
{ name: "protocol", value: Config.protocol },
525535
{ name: "port", value: Config.port.toString() },
526536
{ name: "aes_secret", value: Config.aes_secret },
527-
537+
{ name: "noderedusers", value: (name + "noderedusers") },
538+
{ name: "noderedadmins", value: (name + "noderedadmins") },
528539
]
529540
}
530541
]

OpenFlowNodeRED/src/Config.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,11 @@ export class Config {
2020
public static domain: string = Config.getEnv("domain", "localhost");
2121
public static protocol: string = Config.getEnv("protocol", "http");
2222
public static nodered_domain_schema: string = Config.getEnv("nodered_domain_schema", "");
23+
public static noderedusers: string = Config.getEnv("noderedusers", "");
24+
public static noderedadmins: string = Config.getEnv("noderedadmins", "");
25+
26+
27+
2328

2429
public static api_ws_url: string = Config.getEnv("api_ws_url", "ws://localhost:3000");
2530
public static amqp_url: string = Config.getEnv("amqp_url", "amqp://localhost");

OpenFlowNodeRED/src/WebServer.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,15 @@ export class WebServer {
9696
// });
9797
this.settings.adminAuth = await samlauth.noderedcontribauthsaml.configure(Config.baseurl(), Config.saml_federation_metadata, Config.saml_issuer,
9898
(profile: string | any, done: any) => {
99+
var roles: string[] = profile["http://schemas.xmlsoap.org/claims/Group"];
100+
if (roles !== undefined) {
101+
if (Config.noderedusers !== "") {
102+
if (roles.indexOf(Config.noderedusers) !== -1 || roles.indexOf(Config.noderedusers) !== -1) { profile.permissions = "read"; }
103+
}
104+
if (Config.noderedadmins !== "") {
105+
if (roles.indexOf(Config.noderedadmins) !== -1 || roles.indexOf(Config.noderedadmins) !== -1) { profile.permissions = "*"; }
106+
}
107+
}
99108
// profile.permissions = "*";
100109
done(profile);
101110
}, "");

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
0.0.182
1+
0.0.183

0 commit comments

Comments
 (0)