Skip to content

Commit 85bfccf

Browse files
committed
tighten check for customers and billing
1 parent 3eb898f commit 85bfccf

3 files changed

Lines changed: 18 additions & 2 deletions

File tree

OpenFlow/src/DatabaseConnection.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -895,7 +895,9 @@ export class DatabaseConnection {
895895
delete user2.customerid;
896896
}
897897
if (!NoderedUtil.IsNullEmpty(user2.customerid)) {
898-
if (!user.HasRoleName("customer admins") && !user.HasRoleName("admins")) throw new Error("Access denied (not admin) to customer with id " + user2.customerid);
898+
if (user2._type == "user") {
899+
if (!user.HasRoleName("customer admins") && !user.HasRoleName("admins")) throw new Error("Access denied (not admin) to customer with id " + user2.customerid);
900+
}
899901
customer = await this.getbyid<Customer>(user2.customerid, "users", jwt, span)
900902
if (customer == null) throw new Error("Access denied to customer with id " + user2.customerid);
901903
// if (!user.HasRoleName(customer.name + " admins")) throw new Error("Access denied to customer with " + customer.name);

OpenFlow/src/Messages/Message.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3087,6 +3087,10 @@ export class Message {
30873087
user = await Config.db.getbyid(usage.userid, "users", jwt, span) as any;
30883088
if (user == null) throw new Error("Unknown usage or Access Denied (user)");
30893089
}
3090+
const tuser = Crypt.verityToken(jwt);
3091+
if (!tuser.HasRoleName(customer.name + " admins") && !tuser.HasRoleName("admins")) {
3092+
throw new Error("Access denied, adding plan (admins)");
3093+
}
30903094

30913095

30923096
if (!NoderedUtil.IsNullEmpty(usage.product.added_resourceid) && !NoderedUtil.IsNullEmpty(usage.product.added_stripeprice)) {
@@ -3199,6 +3203,10 @@ export class Message {
31993203
if (NoderedUtil.IsNullUndefinded(customer)) throw new Error("Unknown customer or Access Denied");
32003204
if (NoderedUtil.IsNullEmpty(customer.stripeid)) throw new Error("Customer has no billing information, please update with vattype and vatnumber");
32013205

3206+
const user = Crypt.verityToken(cli.jwt);
3207+
if (!user.HasRoleName(customer.name + " admins") && !user.HasRoleName("admins")) {
3208+
throw new Error("Access denied, getting invoice (admins)");
3209+
}
32023210

32033211
let subscription: stripe_subscription;
32043212
if (!NoderedUtil.IsNullEmpty(customer.subscriptionid)) {
@@ -3317,6 +3325,12 @@ export class Message {
33173325
if (Config.stripe_force_vat && (NoderedUtil.IsNullEmpty(customer.vattype) || NoderedUtil.IsNullEmpty(customer.vatnumber))) {
33183326
throw new Error("Only business can buy, please fill out vattype and vatnumber");
33193327
}
3328+
3329+
const tuser = Crypt.verityToken(jwt);
3330+
if (!tuser.HasRoleName(customer.name + " admins") && !tuser.HasRoleName("admins")) {
3331+
throw new Error("Access denied, adding plan (admins)");
3332+
}
3333+
33203334
if (NoderedUtil.IsNullEmpty(customer.vattype)) customer.vattype = "";
33213335
if (NoderedUtil.IsNullEmpty(customer.vatnumber)) customer.vatnumber = "";
33223336
customer.vatnumber = customer.vatnumber.toUpperCase();

OpenFlowNodeRED/src/nodered/nodes/api.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -727,7 +727,7 @@
727727
icon: "font-awesome/fa-trash",
728728
defaults: {
729729
name: { value: "" },
730-
query: { value: "payload", validate: validate("querytype"), required: true },
730+
query: { value: "query", validate: validate("querytype"), required: true },
731731
querytype: { value: "" },
732732
collection: { value: "entities", validate: validate("collectiontype"), required: true },
733733
collectiontype: { value: "" },

0 commit comments

Comments
 (0)