@@ -196,29 +196,29 @@ function updateUsersList() {
196196async function createPermissions ( ) {
197197 const permissions = await get_request ( "/ui/bff/settings/permissions" ) ;
198198
199- innerAccordion = document . createElement ( "div" ) ;
199+ const innerAccordion = document . createElement ( "div" ) ;
200200 innerAccordion . classList = "accordion-body p-0" ;
201201
202- for ( innerPermission in permissions . sub_permissions ) {
203- dropdown = createPermissionDropdown ( permissions . sub_permissions [ innerPermission ] ) ;
204- innerAccordion . innerHTML += dropdown ;
202+ for ( innerPermission in permissions ) {
203+ const dropdown = createPermissionDropdown ( permissions [ innerPermission ] ) ;
204+ innerAccordion . insertAdjacentHTML ( "beforeend" , dropdown ) ;
205205 }
206206
207207 return `<div class="input-group d-flex">
208208 <div class="input-group-text p-2 px-3">
209- <input class="form-check-input mt-0 ignore-validation" type="checkbox" value="${ permissions . value } " id="${ permissions . value } -checkbox" onchange="permissionCheckOnUpdate(this)">
209+ <input class="form-check-input mt-0 ignore-validation" type="checkbox" value="* " id="all -checkbox" onchange="permissionCheckOnUpdate(this)">
210210 </div>
211211 <div class="d-flex flex-fill accordion rounded-start-0">
212212 <div class="accordion-item w-100 rounded-start-0">
213213 <div class="accordion-header w-100">
214214 <button class="accordion-button collapsed py-2 rounded-start-0"
215215 type="button"
216216 data-bs-toggle="collapse"
217- data-bs-target="#${ permissions . value } ">
218- ${ permissions . description }
217+ data-bs-target="#all ">
218+ Full access to Goosebit and all plugins
219219 </button>
220220 </div>
221- <div id="${ permissions . value } " class="accordion-collapse collapse">
221+ <div id="all " class="accordion-collapse collapse">
222222 ${ innerAccordion . outerHTML }
223223 </div>
224224 </div>
@@ -238,18 +238,19 @@ function createPermissionDropdown(permission) {
238238 </div>` ;
239239 }
240240
241- subAccordion = document . createElement ( "div" ) ;
241+ const subAccordion = document . createElement ( "div" ) ;
242242 subAccordion . classList = "accordion-body p-0" ;
243243
244- for ( innerPermission in permission . sub_permissions ) {
245- dropdown = createPermissionDropdown ( permission . sub_permissions [ innerPermission ] ) ;
246- subAccordion . innerHTML += dropdown ;
244+ for ( innerPermission of permission . sub_permissions ) {
245+ const dropdown = createPermissionDropdown ( innerPermission ) ;
246+ subAccordion . insertAdjacentHTML ( "beforeend" , dropdown ) ;
247247 }
248- permissionId = permission . value . replaceAll ( "." , "-" ) ;
248+ const permissionId = permission . value . replaceAll ( "." , "-" ) ;
249+ const parentPermission = permission . parent ? permission . parent : "*" ;
249250
250251 return `<div class="input-group d-flex border-top">
251252 <div class="input-group-text p-2 px-3 rounded-0 border-0 border-start">
252- <input class="form-check-input mt-0" type="checkbox" value="${ permission . value } " id="${ permissionId } -checkbox" data-permission-parent="${ permission . parent } " onchange="permissionCheckOnUpdate(this)">
253+ <input class="form-check-input mt-0" type="checkbox" value="${ permission . value } " id="${ permissionId } -checkbox" data-permission-parent="${ parentPermission } " onchange="permissionCheckOnUpdate(this)">
253254 </div>
254255 <div class="d-flex flex-fill accordion accordion-flush border-start">
255256 <div class="accordion-item w-100 rounded-start-0">
0 commit comments