|
@@ -326,187 +326,53 @@ export const Modals = async (req, res) => {
|
|
|
let title = name.charAt(0).toUpperCase() + name.slice(1);
|
|
|
|
|
|
if (id == 'permissions') {
|
|
|
- let modal = readFileSync('./views/modals/permissions.html', 'utf8');
|
|
|
+
|
|
|
+ let permissions_modal = `
|
|
|
+ <div class="modal-dialog modal-sm modal-dialog-centered modal-dialog-scrollables">
|
|
|
+ <div class="modal-content">
|
|
|
+ <div class="modal-header">
|
|
|
+ <h5 class="modal-title">${title} Permissions</h5>
|
|
|
+ </div>
|
|
|
+ <div class="modal-body">
|
|
|
+ <form action="" id="permissions_modal" method="POST">
|
|
|
+ <div class="accordion" id="modal-accordion">
|
|
|
+ PermissionsList
|
|
|
+ </div>
|
|
|
+ </form>
|
|
|
+ </div>
|
|
|
+ <div class="modal-footer">
|
|
|
+ <div class="row">
|
|
|
+
|
|
|
+ <div class="col">
|
|
|
+ <button type="button" class="btn btn-danger" data-bs-dismiss="modal" disabled="">Reset</button>
|
|
|
+ </div>
|
|
|
+ <div class="col">
|
|
|
+ <button type="button" class="btn btn-primary" data-bs-dismiss="modal">Update</button>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>`;
|
|
|
+
|
|
|
let permissions_list = '';
|
|
|
- modal = modal.replace(/AppName/g, title);
|
|
|
let users = await User.findAll({ attributes: ['username', 'UUID']});
|
|
|
|
|
|
for (let i = 0; i < users.length; i++) {
|
|
|
- // check if user Permission contains an entry for this container for this user. If not, create one.
|
|
|
+ let user_permissions = readFileSync('./views/modals/permissions.html', 'utf8');
|
|
|
+
|
|
|
let exists = await Permission.findOne({ where: {containerName: name, user: users[i].username}});
|
|
|
if (!exists) {
|
|
|
const newPermission = await Permission.create({ containerName: name, user: users[i].username, userID: users[i].UUID});
|
|
|
}
|
|
|
|
|
|
- let user_permissions = `
|
|
|
-
|
|
|
- <div class="accordion-item mb-3" style="border: 1px solid grey;">
|
|
|
- <h2 class="accordion-header" id="heading-${i}">
|
|
|
- <button class="accordion-button collapsed row" type="button" data-bs-toggle="collapse" data-bs-target="#collapse-${i}" aria-expanded="false">
|
|
|
- <span class="avatar avatar-sm bg-green-lt col-3 text-start">JD</span>
|
|
|
- <div class="col text-end" style="margin-right: 10px;">${users[i].username}</div>
|
|
|
- </button>
|
|
|
- </h2>
|
|
|
- <div id="collapse-${i}" class="accordion-collapse collapse" data-bs-parent="#modal-accordion">
|
|
|
- <div class="accordion-body pt-0">
|
|
|
-
|
|
|
-
|
|
|
- <div class="">
|
|
|
- <div class="">
|
|
|
-
|
|
|
- <div class="row mb-3">
|
|
|
- <div class="col-9">
|
|
|
- <label class="row text-start">
|
|
|
- <span class="col">
|
|
|
- All
|
|
|
- </span>
|
|
|
- </label>
|
|
|
- </div>
|
|
|
- <div class="col-3">
|
|
|
- <label class="form-check form-check-single form-switch text-end">
|
|
|
- <input class="form-check-input" type="checkbox" name="select" onclick="selectAll('select')">
|
|
|
- </label>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div class="row mb-2">
|
|
|
- <div class="col-9">
|
|
|
- <label class="row text-start">
|
|
|
- <span class="col">
|
|
|
- Uninstall
|
|
|
- </span>
|
|
|
- </label>
|
|
|
- </div>
|
|
|
- <div class="col-3">
|
|
|
- <label class="form-check form-check-single form-switch text-end">
|
|
|
- <input class="form-check-input" type="checkbox" name="select">
|
|
|
- </label>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div class="row mb-2">
|
|
|
- <div class="col-9">
|
|
|
- <label class="row text-start">
|
|
|
- <span class="col">
|
|
|
- Edit
|
|
|
- </span>
|
|
|
- </label>
|
|
|
- </div>
|
|
|
- <div class="col-3">
|
|
|
- <label class="form-check form-check-single form-switch text-end">
|
|
|
- <input class="form-check-input" type="checkbox" name="select">
|
|
|
- </label>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div class="row mb-2">
|
|
|
- <div class="col-9">
|
|
|
- <label class="row text-start">
|
|
|
- <span class="col">
|
|
|
- Upgrade
|
|
|
- </span>
|
|
|
- </label>
|
|
|
- </div>
|
|
|
- <div class="col-3">
|
|
|
- <label class="form-check form-check-single form-switch text-end">
|
|
|
- <input class="form-check-input" type="checkbox" name="select">
|
|
|
- </label>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div class="row mb-2">
|
|
|
- <div class="col-9">
|
|
|
- <label class="row text-start">
|
|
|
- <span class="col">
|
|
|
- Start
|
|
|
- </span>
|
|
|
- </label>
|
|
|
- </div>
|
|
|
- <div class="col-3">
|
|
|
- <label class="form-check form-check-single form-switch text-end">
|
|
|
- <input class="form-check-input" type="checkbox" name="select">
|
|
|
- </label>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div class="row mb-2">
|
|
|
- <div class="col-9">
|
|
|
- <label class="row text-start">
|
|
|
- <span class="col">
|
|
|
- Stop
|
|
|
- </span>
|
|
|
- </label>
|
|
|
- </div>
|
|
|
- <div class="col-3">
|
|
|
- <label class="form-check form-check-single form-switch text-end">
|
|
|
- <input class="form-check-input" type="checkbox" name="select">
|
|
|
- </label>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div class="row mb-2">
|
|
|
- <div class="col-9">
|
|
|
- <label class="row text-start">
|
|
|
- <span class="col">
|
|
|
- Pause
|
|
|
- </span>
|
|
|
- </label>
|
|
|
- </div>
|
|
|
- <div class="col-3">
|
|
|
- <label class="form-check form-check-single form-switch text-end">
|
|
|
- <input class="form-check-input" type="checkbox" name="select">
|
|
|
- </label>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div class="row mb-2">
|
|
|
- <div class="col-9">
|
|
|
- <label class="row text-start">
|
|
|
- <span class="col">
|
|
|
- Restart
|
|
|
- </span>
|
|
|
- </label>
|
|
|
- </div>
|
|
|
- <div class="col-3">
|
|
|
- <label class="form-check form-check-single form-switch text-end">
|
|
|
- <input class="form-check-input" type="checkbox" name="select">
|
|
|
- </label>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
-
|
|
|
-
|
|
|
- <div class="row mb-4">
|
|
|
- <div class="col-9">
|
|
|
- <label class="row text-start">
|
|
|
- <span class="col">
|
|
|
- Logs
|
|
|
- </span>
|
|
|
- </label>
|
|
|
- </div>
|
|
|
- <div class="col-3">
|
|
|
- <label class="form-check form-check-single form-switch text-end">
|
|
|
- <input class="form-check-input" type="checkbox" name="select">
|
|
|
- </label>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div class="row mb-2">
|
|
|
- <button class="btn" type="submit" formaction="/updatePermissions">Update</button>
|
|
|
- </div>
|
|
|
-
|
|
|
-
|
|
|
- </div>
|
|
|
- </div>
|
|
|
-
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>`;
|
|
|
+ user_permissions = user_permissions.replace(/UserEntry/g, i);
|
|
|
+ user_permissions = user_permissions.replace(/PermissionsUsername/g, users[i].username);
|
|
|
|
|
|
permissions_list += user_permissions;
|
|
|
}
|
|
|
|
|
|
- modal = modal.replace(/PermissionsList/g, permissions_list);
|
|
|
- res.send(modal);
|
|
|
+ permissions_modal = permissions_modal.replace(/PermissionsList/g, permissions_list);
|
|
|
+ res.send(permissions_modal);
|
|
|
return;
|
|
|
}
|
|
|
|