Skip to content

Commit 3234517

Browse files
committed
refactor: improve customer user role checks for null or empty values
1 parent cf52837 commit 3234517

6 files changed

Lines changed: 35 additions & 29 deletions

File tree

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
.PHONY: build
22

3-
VERSION = 1.5.11.119
3+
VERSION = 1.5.11.121
44
HASH = $(shell git rev-parse --short HEAD)
55
bump:
66
@echo "Bumping version to $(VERSION) recursively..."

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@openiap/core",
3-
"version": "1.5.11.119",
3+
"version": "1.5.11.121",
44
"description": "Easy orchestration of data, code and automation tools.\r Also the \"backend\" for [OpenRPA](https://github.com/skadefro/OpenRPA)",
55
"main": "index.js",
66
"scripts": {

public.template/swagger.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -513,7 +513,7 @@
513513
},
514514
"info": {
515515
"title": "@openiap/core",
516-
"version": "1.5.11.119",
516+
"version": "1.5.11.121",
517517
"description": "Easy orchestration of data, code and automation tools.\r Also the \"backend\" for [OpenRPA](https://github.com/skadefro/OpenRPA)",
518518
"license": {
519519
"name": "MPL-2.0"

src/Config.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -376,7 +376,7 @@ export class Config {
376376
amqp_force_sender_has_invoke: false,
377377
amqp_force_consumer_has_update: false,
378378
amqp_enabled_exchange: false,
379-
amqp_url: "amqp://localhost",
379+
amqp_url: "amqp://localhost?frameMax=0x2000",
380380
amqp_username: "guest",
381381
amqp_password: "guest",
382382

src/DatabaseConnection.ts

Lines changed: 30 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -3079,16 +3079,18 @@ export class DatabaseConnection extends events.EventEmitter {
30793079

30803080

30813081
if (customer != null && !Util.IsNullEmpty(user2.customerid) && user2._id != customer.users && user2._id != customer.admins && user2._id != Wellknown.root._id) {
3082-
// TODO: Check user has permission to this customer
3083-
let custusers: Role = await this.getbyid<Role>(customer.users, "users", q.jwt, true, span);
3084-
if (custusers != null) {
3085-
custusers = Role.assign(custusers);
3086-
}
3087-
if (custusers != null && !custusers.IsMember(q.item._id)) {
3088-
custusers = Role.assign(await this.getbyid<Role>(customer.users, "users", q.jwt, true, span));
3089-
custusers.AddMember(q.item);
3090-
await Logger.DBHelper.Save(custusers, Crypt.rootToken(), span);
3091-
await Logger.DBHelper.CheckCache(q.collectionname, q.item, false, false, span);
3082+
if(!Util.IsNullEmpty(customer.users)) {
3083+
// TODO: Check user has permission to this customer
3084+
let custusers: Role = await this.getbyid<Role>(customer.users, "users", q.jwt, true, span);
3085+
if (custusers != null) {
3086+
custusers = Role.assign(custusers);
3087+
}
3088+
if (custusers != null && !custusers.IsMember(q.item._id)) {
3089+
custusers = Role.assign(await this.getbyid<Role>(customer.users, "users", q.jwt, true, span));
3090+
custusers.AddMember(q.item);
3091+
await Logger.DBHelper.Save(custusers, Crypt.rootToken(), span);
3092+
await Logger.DBHelper.CheckCache(q.collectionname, q.item, false, false, span);
3093+
}
30923094
}
30933095
} else {
30943096
// await Logger.DBHelper.UserRoleUpdate(q.item, false, span);
@@ -4046,23 +4048,27 @@ export class DatabaseConnection extends events.EventEmitter {
40464048
} else if (user._type == "customer") {
40474049
let customer = user as any as Customer;
40484050
if (user.roles == null) user.roles = [];
4049-
user.roles.push(new Rolemember(user.name + " users", customer.users))
4050-
user.roles.push(new Rolemember(user.name + " admins", customer.admins))
4051-
let users = await Logger.DBHelper.FindRoleById(customer.users, Crypt.rootToken(), parent);
4052-
let admins = await Logger.DBHelper.FindRoleById(customer.admins, Crypt.rootToken(), parent);
4053-
if(users != null) {
4054-
for (let i = 0; i < users.members.length; i++) {
4055-
const exists = user.roles.filter(x => x._id == users.members[i]._id);
4056-
if (exists.length == 0) {
4057-
user.roles.push(new Rolemember(users.members[i].name, users.members[i]._id))
4051+
if(!Util.IsNullEmpty(customer.users)) {
4052+
user.roles.push(new Rolemember(user.name + " users", customer.users))
4053+
let users = await Logger.DBHelper.FindRoleById(customer.users, Crypt.rootToken(), parent);
4054+
if(users != null) {
4055+
for (let i = 0; i < users.members.length; i++) {
4056+
const exists = user.roles.filter(x => x._id == users.members[i]._id);
4057+
if (exists.length == 0) {
4058+
user.roles.push(new Rolemember(users.members[i].name, users.members[i]._id))
4059+
}
40584060
}
40594061
}
40604062
}
4061-
if(admins != null) {
4062-
for (let i = 0; i < admins.members.length; i++) {
4063-
const exists = user.roles.filter(x => x._id == admins.members[i]._id);
4064-
if (exists.length == 0 && admins.members[i]._id != Wellknown.customer_admins._id) {
4065-
user.roles.push(new Rolemember(admins.members[i].name, admins.members[i]._id))
4063+
if(!Util.IsNullEmpty(customer.admins)) {
4064+
user.roles.push(new Rolemember(user.name + " admins", customer.admins))
4065+
let admins = await Logger.DBHelper.FindRoleById(customer.admins, Crypt.rootToken(), parent);
4066+
if(admins != null) {
4067+
for (let i = 0; i < admins.members.length; i++) {
4068+
const exists = user.roles.filter(x => x._id == admins.members[i]._id);
4069+
if (exists.length == 0 && admins.members[i]._id != Wellknown.customer_admins._id) {
4070+
user.roles.push(new Rolemember(admins.members[i].name, admins.members[i]._id))
4071+
}
40664072
}
40674073
}
40684074
}

src/public/swagger.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -513,7 +513,7 @@
513513
},
514514
"info": {
515515
"title": "@openiap/core",
516-
"version": "1.5.11.119",
516+
"version": "1.5.11.121",
517517
"description": "Easy orchestration of data, code and automation tools.\r Also the \"backend\" for [OpenRPA](https://github.com/skadefro/OpenRPA)",
518518
"license": {
519519
"name": "MPL-2.0"

0 commit comments

Comments
 (0)