Add Permissions and Users pages
This commit is contained in:
1 parent
f878d828eb
commit
3b3369a236
16 files changed
+1223
-77
No files matched your search
@@ -65,6 +65,14 @@ export function deleteResource(resource, id): Promise<void> {
|
||||
case "config":
|
||||
promise = db.deleteConfig(id);
|
||||
break;
|
||||
|
||||
case "permissions":
|
||||
promise = db.deletePermission(id);
|
||||
break;
|
||||
|
||||
case "users":
|
||||
promise = db.deleteUser(id);
|
||||
break;
|
||||
}
|
||||
|
||||
promise
|
||||
@@ -183,6 +191,8 @@ export function putResource(resource, id, data): Promise<void> {
|
||||
else if (resource === "virtualParameters")
|
||||
promise = db.putVirtualParameter(id, data);
|
||||
else if (resource === "config") promise = db.putConfig(id, data);
|
||||
else if (resource === "permissions") promise = db.putPermission(id, data);
|
||||
else if (resource === "users") promise = db.putUser(id, data);
|
||||
|
||||
promise
|
||||
.then(() => {
|
||||
|
||||
@@ -26,6 +26,8 @@ const RESOURCE_IDS = {
|
||||
files: "_id",
|
||||
virtualParameters: "_id",
|
||||
config: "_id",
|
||||
permissions: "_id",
|
||||
users: "_id",
|
||||
faults: "_id",
|
||||
tasks: "_id"
|
||||
};
|
||||
@@ -37,6 +39,8 @@ const resources = {
|
||||
files: 0 | RESOURCE_DELETE,
|
||||
virtualParameters: 0 | RESOURCE_DELETE | RESOURCE_PUT,
|
||||
config: 0 | RESOURCE_DELETE | RESOURCE_PUT,
|
||||
permissions: 0 | RESOURCE_DELETE | RESOURCE_PUT,
|
||||
users: 0 | RESOURCE_DELETE | RESOURCE_PUT,
|
||||
faults: 0 | RESOURCE_DELETE,
|
||||
tasks: 0
|
||||
};
|
||||
|
||||
@@ -107,6 +107,9 @@ export function query(
|
||||
: options.projection
|
||||
);
|
||||
}
|
||||
|
||||
if (resource === "users") cursor.project({ password: 0 });
|
||||
|
||||
if (options.skip) cursor.skip(options.skip);
|
||||
if (options.limit) cursor.limit(options.limit);
|
||||
|
||||
@@ -282,6 +285,38 @@ export function deleteConfig(id): Promise<void> {
|
||||
return deleteResource("config", id);
|
||||
}
|
||||
|
||||
export function putPermission(id, object): Promise<void> {
|
||||
return putResource("permissions", id, object);
|
||||
}
|
||||
|
||||
export function deletePermission(id): Promise<void> {
|
||||
return deleteResource("permissions", id);
|
||||
}
|
||||
|
||||
export function putUser(id, object): Promise<void> {
|
||||
return new Promise((resolve, reject) => {
|
||||
getClient()
|
||||
.then(client => {
|
||||
const collection = client.db().collection("users");
|
||||
// update instead of replace to keep the password if not set by user
|
||||
collection.updateOne(
|
||||
{ _id: id },
|
||||
{ $set: object },
|
||||
{ upsert: true },
|
||||
err => {
|
||||
if (err) return void reject(err);
|
||||
resolve();
|
||||
}
|
||||
);
|
||||
})
|
||||
.catch(reject);
|
||||
});
|
||||
}
|
||||
|
||||
export function deleteUser(id): Promise<void> {
|
||||
return deleteResource("users", id);
|
||||
}
|
||||
|
||||
export function putFile(filename, metadata, contentStream): Promise<void> {
|
||||
return new Promise((resolve, reject) => {
|
||||
getClient()
|
||||
|
||||
Reference in new issue
Block a user