ldap-rest 0.20.2 → 0.20.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/dist/abstract/ldapFlat.js +1 -1
  2. package/dist/config/schema.js +1 -1
  3. package/dist/lib/expressFormatedResponses.js +1 -1
  4. package/dist/lib/instanceProviders.js +1 -1
  5. package/dist/lib/ldapActions.js +1 -1
  6. package/dist/plugins/ldap/accountLifecycle.js +1 -1
  7. package/dist/plugins/ldap/groups.js +1 -1
  8. package/dist/plugins/ldap/organizations.js +1 -1
  9. package/dist/plugins/ldap/passwordPolicy.js +1 -1
  10. package/dist/plugins/ldap/raw.js +1 -1
  11. package/dist/plugins/twake/clouderyProvision.js +1 -1
  12. package/dist/plugins/twake/instances.js +1 -1
  13. package/dist/src/browser/ldap-group-editor/api/GroupApiClient.d.ts +10 -5
  14. package/dist/src/browser/ldap-group-editor/types.d.ts +8 -0
  15. package/dist/src/browser/ldap-resource-editor/api/ResourceApiClient.d.ts +7 -1
  16. package/dist/src/browser/ldap-unit-editor/api/UnitApiClient.d.ts +7 -5
  17. package/dist/src/browser/ldap-user-editor/LdapUserEditor.d.ts +2 -0
  18. package/dist/src/browser/ldap-user-editor/api/UserApiClient.d.ts +7 -1
  19. package/dist/src/browser/shared/utils/form.d.ts +30 -0
  20. package/dist/src/config/schema.d.ts +30 -1
  21. package/dist/src/lib/instanceProviders.d.ts +11 -0
  22. package/dist/src/lib/ldapActions.d.ts +9 -0
  23. package/dist/src/plugins/ldap/accountLifecycle.d.ts +2 -0
  24. package/dist/src/plugins/twake/clouderyProvision.d.ts +7 -1
  25. package/docs/client-development/api/rest-api.md +19 -0
  26. package/docs/usage/plugins/integrations/instances.md +9 -5
  27. package/docs/usage/plugins/ldap/account-lifecycle.md +9 -1
  28. package/docs/usage/upgrading.md +20 -0
  29. package/examples/web/README.md +5 -1
  30. package/examples/web/ldap-user-editor.html +9 -15
  31. package/examples/web/totp-client.html +51 -14
  32. package/package.json +1 -1
  33. package/static/browser/ldap-group-editor/api/GroupApiClient.js +27 -13
  34. package/static/browser/ldap-group-editor/api/GroupApiClient.js.map +1 -1
  35. package/static/browser/ldap-group-editor/components/CreateGroupModal.js +5 -17
  36. package/static/browser/ldap-group-editor/components/CreateGroupModal.js.map +1 -1
  37. package/static/browser/ldap-group-editor/components/GroupPropertyEditor.js +28 -12
  38. package/static/browser/ldap-group-editor/components/GroupPropertyEditor.js.map +1 -1
  39. package/static/browser/ldap-group-editor/components/MoveGroupModal.js.map +1 -1
  40. package/static/browser/ldap-group-editor.esm.js +114 -42
  41. package/static/browser/ldap-group-editor.esm.js.map +1 -1
  42. package/static/browser/ldap-group-editor.js +114 -42
  43. package/static/browser/ldap-group-editor.js.map +1 -1
  44. package/static/browser/ldap-group-editor.min.js +1 -1
  45. package/static/browser/ldap-group-editor.min.js.map +1 -1
  46. package/static/browser/ldap-resource-editor/api/ResourceApiClient.js +8 -2
  47. package/static/browser/ldap-resource-editor/api/ResourceApiClient.js.map +1 -1
  48. package/static/browser/ldap-unit-editor/api/UnitApiClient.js +8 -13
  49. package/static/browser/ldap-unit-editor/api/UnitApiClient.js.map +1 -1
  50. package/static/browser/ldap-unit-editor/components/UnitPropertyEditor.js +5 -2
  51. package/static/browser/ldap-unit-editor/components/UnitPropertyEditor.js.map +1 -1
  52. package/static/browser/ldap-unit-editor.esm.js +52 -15
  53. package/static/browser/ldap-unit-editor.esm.js.map +1 -1
  54. package/static/browser/ldap-unit-editor.js +52 -15
  55. package/static/browser/ldap-unit-editor.js.map +1 -1
  56. package/static/browser/ldap-unit-editor.min.js +1 -1
  57. package/static/browser/ldap-unit-editor.min.js.map +1 -1
  58. package/static/browser/ldap-user-editor/LdapUserEditor.js +22 -21
  59. package/static/browser/ldap-user-editor/LdapUserEditor.js.map +1 -1
  60. package/static/browser/ldap-user-editor/api/UserApiClient.js +8 -2
  61. package/static/browser/ldap-user-editor/api/UserApiClient.js.map +1 -1
  62. package/static/browser/ldap-user-editor/components/UserEditor.js +19 -9
  63. package/static/browser/ldap-user-editor/components/UserEditor.js.map +1 -1
  64. package/static/browser/ldap-user-editor.esm.js +88 -32
  65. package/static/browser/ldap-user-editor.esm.js.map +1 -1
  66. package/static/browser/ldap-user-editor.js +88 -32
  67. package/static/browser/ldap-user-editor.js.map +1 -1
  68. package/static/browser/ldap-user-editor.min.js +1 -1
  69. package/static/browser/ldap-user-editor.min.js.map +1 -1
  70. package/static/browser/shared/index.js +1 -1
  71. package/static/browser/shared/utils/form.js +51 -1
  72. package/static/browser/shared/utils/form.js.map +1 -1
  73. package/static/browser/shared.esm.js +51 -1
  74. package/static/browser/shared.esm.js.map +1 -1
  75. package/static/browser/shared.js +53 -0
  76. package/static/browser/shared.js.map +1 -1
  77. package/static/browser/shared.min.js +1 -1
  78. package/static/browser/shared.min.js.map +1 -1
@@ -1,2 +1,2 @@
1
- !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).LdapUnitEditor={})}(this,function(t){"use strict";class e{constructor(t,e,n){this.expandedNodes=new Set,this.selectedDn=null,this.rootDn=null,this.container=t,this.apiBaseUrl=e,this.onOrgSelect=n}async init(){this.container.innerHTML='\n <div class="unit-tree">\n <div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px;">\n <h3 style="margin: 0; display: flex; align-items: center; gap: 8px;">\n <span class="material-icons">account_tree</span>\n Organizations\n </h3>\n <button id="create-unit-btn" style="background: var(--primary-color, #6200ee); color: white; border: none; border-radius: 4px; padding: 8px 12px; cursor: pointer; display: flex; align-items: center; gap: 4px; font-size: 14px;">\n <span class="material-icons" style="font-size: 18px;">add</span>\n Create\n </button>\n </div>\n <div id="tree-content">\n <div class="loading"><div class="spinner"></div></div>\n </div>\n </div>\n ';try{const t=await fetch(`${this.apiBaseUrl}/api/v1/ldap/organizations/top`);if(!t.ok)throw new Error("Failed to load organizations");const e=await t.json();this.rootDn=e.dn,await this.renderTree();const n=this.container.querySelector("#create-unit-btn");n&&n.addEventListener("click",()=>this.handleCreateUnit())}catch(t){console.error("Failed to init tree:",t);const e=this.container.querySelector("#tree-content");e&&(e.innerHTML='<p style="color: #f44336;">Failed to load organizations</p>')}}async handleCreateUnit(){const t=this.selectedDn||this.rootDn;if(!t)return void alert("Please select a parent organization first");const e=prompt("Enter the name for the new organizational unit (ou):");if(e&&e.trim())try{const n=await fetch(`${this.apiBaseUrl}/api/v1/ldap/organizations`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({ou:e.trim(),parentDn:t})});if(!n.ok){const t=await n.text();throw new Error(t||"Failed to create organizational unit")}alert(`Organizational unit "${e}" created successfully!`),this.expandedNodes.add(t),await this.renderTree()}catch(t){console.error("Failed to create unit:",t),alert(`Failed to create unit: ${t.message}`)}}async renderTree(){const t=this.container.querySelector("#tree-content");if(t&&this.rootDn)try{const e=await this.renderNode(this.rootDn,0);t.innerHTML=e,this.attachEventListeners()}catch(e){console.error("Failed to render tree:",e),t.innerHTML='<p style="color: #f44336;">Error rendering tree</p>'}}async renderNode(t,e){const n=this.expandedNodes.has(t),i=this.selectedDn===t,a=20*e,s=await fetch(`${this.apiBaseUrl}/api/v1/ldap/organizations/${encodeURIComponent(t)}`);if(!s.ok)throw new Error("Failed to load node");const o=await s.json();let r=t;o.ou?r=Array.isArray(o.ou)?o.ou[0]:o.ou:o.cn&&(r=Array.isArray(o.cn)?o.cn[0]:o.cn);let l=`\n <div class="tree-node ${i?"active":""}" style="padding-left: ${a}px; padding: 8px 8px 8px ${a}px; cursor: pointer; display: flex; align-items: center; gap: 4px;">\n <span class="material-icons tree-node-toggle" data-dn="${this.escapeHtml(t)}" style="font-size: 18px; cursor: pointer;">\n ${n?"expand_more":"chevron_right"}\n </span>\n <span class="material-icons" style="font-size: 18px;">business</span>\n <span class="tree-node-label" data-dn="${this.escapeHtml(t)}">${this.escapeHtml(r)}</span>\n </div>\n `;if(n)try{const n=await fetch(`${this.apiBaseUrl}/api/v1/ldap/organizations/${encodeURIComponent(t)}/subnodes`);if(!n.ok)throw new Error("Failed to load subnodes");const i=(await n.json()).filter(t=>{const e=Array.isArray(t.objectClass)?t.objectClass:t.objectClass?[t.objectClass]:[];return e.includes("organizationalUnit")||e.includes("organization")});for(const t of i)l+=await this.renderNode(t.dn,e+1)}catch(e){console.error("Failed to load subnodes for",t,e)}return l}attachEventListeners(){this.container.querySelectorAll(".tree-node-toggle").forEach(t=>{t.addEventListener("click",async e=>{e.stopPropagation();const n=t.getAttribute("data-dn");n&&(this.expandedNodes.has(n)?this.expandedNodes.delete(n):this.expandedNodes.add(n),await this.renderTree())})}),this.container.querySelectorAll(".tree-node-label").forEach(t=>{t.addEventListener("click",e=>{e.stopPropagation();const n=t.getAttribute("data-dn");n&&(this.selectedDn=n,this.onOrgSelect(n),this.renderTree())})})}escapeHtml(t){if(null==t)return"";const e={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","/":"&#x2F;"};return String(t).replace(/[&<>"'/]/g,t=>e[t])}}class n{constructor(t,e,n){this.modal=null,this.selectedOrgDn=null,this.expandedNodes=new Set,this.rootDn=null,this.api=t,this.currentOrgDn=e,this.onMove=n}static escapeHtml(t){if(null==t)return"";const e={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","/":"&#x2F;"};return String(t).replace(/[&<>"'/]/g,t=>e[t])}async show(){this.modal=document.createElement("div"),this.modal.className="modal-overlay active",this.modal.innerHTML='\n <div class="modal-container" style="max-width: 600px;">\n <div class="modal-header">\n <h3 style="margin: 0; display: flex; align-items: center; gap: 0.5rem;">\n <span class="material-icons">folder_open</span>\n Move Unit to Organization\n </h3>\n <button class="modal-close" id="modal-close-btn">\n <span class="material-icons">close</span>\n </button>\n </div>\n <div class="modal-body">\n <div id="move-modal-alert"></div>\n <div style="margin-bottom: 1rem; color: #666; font-size: 0.9rem;">\n Select the target organization where you want to move this unit.\n </div>\n <div id="organization-tree-container" style="max-height: 400px; overflow-y: auto; border: 1px solid #ddd; border-radius: 4px; padding: 0.5rem;">\n <div class="loading">\n <div class="spinner"></div>\n <p style="margin-top: 1rem">Loading organizations...</p>\n </div>\n </div>\n </div>\n <div class="modal-footer">\n <button type="button" class="btn btn-secondary" id="modal-cancel-btn">\n Cancel\n </button>\n <button type="button" class="btn btn-primary" id="modal-move-btn" disabled>\n <span class="material-icons">drive_file_move</span>\n Move Unit\n </button>\n </div>\n </div>\n ',document.body.appendChild(this.modal),this.attachHandlers(),await this.loadOrganizationTree()}attachHandlers(){if(!this.modal)return;const t=this.modal.querySelector("#modal-close-btn");t?.addEventListener("click",()=>this.close());const e=this.modal.querySelector("#modal-cancel-btn");e?.addEventListener("click",()=>this.close());const n=this.modal.querySelector("#modal-move-btn");n?.addEventListener("click",()=>this.handleMove()),this.modal.addEventListener("click",t=>{t.target===this.modal&&this.close()});const i=t=>{"Escape"===t.key&&(this.close(),document.removeEventListener("keydown",i))};document.addEventListener("keydown",i)}async loadOrganizationTree(){const t=this.modal?.querySelector("#organization-tree-container");if(t)try{const t=await this.api.getOrganizations();this.rootDn=t.dn,this.expandedNodes.add(this.rootDn),await this.renderTree()}catch(e){t.innerHTML=`\n <div class="alert alert-error">\n <span class="material-icons">error</span>\n <div>Failed to load organizations: ${n.escapeHtml(e.message)}</div>\n </div>\n `}}async renderTree(){const t=this.modal?.querySelector("#organization-tree-container");if(t&&this.rootDn)try{const e=await this.renderNode(this.rootDn,0);t.innerHTML=e,this.attachTreeHandlers()}catch(e){t.innerHTML=`\n <div class="alert alert-error">\n <span class="material-icons">error</span>\n <div>Error rendering tree: ${n.escapeHtml(e.message)}</div>\n </div>\n `}}async renderNode(t,e){const i=this.expandedNodes.has(t),a=t===this.currentOrgDn,s=t===this.selectedOrgDn,o=20*e,r=await this.api.getUnit(t),l=Array.isArray(r.ou)?r.ou[0]:r.ou,d=(r.twakeDepartmentPath?Array.isArray(r.twakeDepartmentPath)?r.twakeDepartmentPath[0]:r.twakeDepartmentPath:void 0)||l||t;let c=`\n <div\n class="org-node ${a?"org-current":""} ${s?"org-selected":""}"\n data-org-dn="${n.escapeHtml(t)}"\n style="\n padding: 0.5rem;\n padding-left: ${o+8}px;\n cursor: ${a?"not-allowed":"pointer"};\n background: ${a?"#f5f5f5":s?"#e3f2fd":"white"};\n opacity: ${a?"0.6":"1"};\n display: flex;\n align-items: center;\n gap: 0.5rem;\n border-left: 2px solid ${s?"#2196f3":"transparent"};\n "\n >\n <span class="material-icons tree-toggle" data-dn="${n.escapeHtml(t)}" style="cursor: pointer; font-size: 1.2rem;">\n ${i?"expand_more":"chevron_right"}\n </span>\n <span class="material-icons" style="font-size: 1.2rem; color: ${a?"#999":"#2196f3"};">\n ${a?"business":"folder"}\n </span>\n <span style="flex: 1; font-weight: ${s?"600":"500"};">\n ${n.escapeHtml(d)}\n ${a?'<span style="font-size: 0.85rem; color: #666; margin-left: 0.5rem;">(current)</span>':""}\n </span>\n ${s?'<span class="material-icons" style="color: #2196f3;">check_circle</span>':""}\n </div>\n `;if(i)try{const n=await fetch(`${this.api.baseUrl}/api/v1/ldap/organizations/${encodeURIComponent(t)}/subnodes`);if(!n.ok)throw new Error("Failed to load subnodes");const i=(await n.json()).filter(t=>{const e=Array.isArray(t.objectClass)?t.objectClass:t.objectClass?[t.objectClass]:[];return e.includes("organizationalUnit")||e.includes("organization")});for(const t of i)c+=await this.renderNode(t.dn,e+1)}catch(e){console.error("Failed to load subnodes for",t,e)}return c}attachTreeHandlers(){const t=this.modal?.querySelectorAll(".tree-toggle");t?.forEach(t=>{t.addEventListener("click",async e=>{e.stopPropagation();const n=t.getAttribute("data-dn");n&&(this.expandedNodes.has(n)?this.expandedNodes.delete(n):this.expandedNodes.add(n),await this.renderTree())})});const e=this.modal?.querySelectorAll(".org-node");e?.forEach(t=>{const e=t.getAttribute("data-org-dn");e&&e!==this.currentOrgDn&&t.addEventListener("click",()=>{this.selectOrganization(e)})})}async selectOrganization(t){this.selectedOrgDn=t,await this.renderTree();const e=this.modal?.querySelector("#modal-move-btn");e&&(e.disabled=!1)}async handleMove(){if(!this.selectedOrgDn)return;const t=this.modal?.querySelector("#modal-move-btn"),e=this.modal?.querySelector("#move-modal-alert");t&&(t.disabled=!0,t.innerHTML='\n <span class="spinner" style="width: 1rem; height: 1rem; border-width: 2px;"></span>\n Moving...\n ');try{this.onMove(this.selectedOrgDn),this.close()}catch(i){e&&(e.innerHTML=`\n <div class="alert alert-error" style="margin-bottom: 1rem;">\n <span class="material-icons">error</span>\n <div>Move failed: ${n.escapeHtml(i.message)}</div>\n </div>\n `),t&&(t.disabled=!1,t.innerHTML='\n <span class="material-icons">drive_file_move</span>\n Move Unit\n ')}}close(){this.modal&&(this.modal.remove(),this.modal=null)}}class i{constructor(t,e,n){this.unit=null,this.schema=null,this.saveCallback=null,this.hasSubnodes=!1,this.container=t,this.api=e,this.unitDn=n}async init(){await this.loadUnit(),await this.loadSchema(),await this.checkSubnodes(),this.render(),this.attachEventListeners()}async loadUnit(){this.unit=await this.api.getUnit(this.unitDn)}async checkSubnodes(){try{const t=await fetch(`${this.api.baseUrl}/api/v1/ldap/organizations/${encodeURIComponent(this.unitDn)}/subnodes`);if(t.ok){const e=await t.json();this.hasSubnodes=e.some(t=>{const e=Array.isArray(t.objectClass)?t.objectClass:t.objectClass?[t.objectClass]:[];return e.includes("organizationalUnit")||e.includes("organization")})}}catch(t){console.error("Failed to check subnodes:",t),this.hasSubnodes=!1}}async loadSchema(){console.warn("[UnitPropertyEditor] Loading schema...");const t=await this.api.getConfig(),e=t.features?.ldapOrganizations;if(console.warn("[UnitPropertyEditor] Organizations config:",e),e?.schemaUrl){console.warn("[UnitPropertyEditor] Loading schema from URL:",e.schemaUrl);const t=await fetch(e.schemaUrl);this.schema=await t.json(),console.warn("[UnitPropertyEditor] Schema loaded from URL:",this.schema)}else if(e?.schema)console.warn("[UnitPropertyEditor] Using schema from config"),this.schema=e.schema;else{console.warn("[UnitPropertyEditor] Falling back to flatResources");const e=t.features?.ldapFlatGeneric?.flatResources?.find(t=>"organizations"===t.pluralName||"organizations"===t.name);if(e?.schemaUrl){const t=await fetch(e.schemaUrl);this.schema=await t.json()}else e?.schema?this.schema=e.schema:(console.warn("[UnitPropertyEditor] No schema found, using default"),this.schema={entity:{objectClass:["organizationalUnit"]},attributes:{ou:{type:"string",required:!0},description:{type:"string"}}})}}onSave(t){this.saveCallback=t}render(){this.unit&&(this.container.innerHTML=`\n <div class="unit-property-editor">\n <h3 style="margin: 0 0 16px 0; display: flex; align-items: center; gap: 8px;">\n <span class="material-icons">business</span>\n Edit Organizational Unit\n </h3>\n <form id="unit-edit-form">\n ${this.renderFields()}\n <div class="form-actions" style="margin-top: 24px; padding-top: 24px; border-top: 1px solid #e0e0e0; display: flex; gap: 12px; justify-content: space-between;">\n <button type="button" id="move-unit-btn" class="btn btn-secondary" style="background: #757575; color: white; padding: 10px 20px; border: none; border-radius: 4px; cursor: pointer; display: flex; align-items: center; gap: 8px;">\n <span class="material-icons" style="font-size: 18px;">drive_file_move</span>\n Move\n </button>\n <div style="display: flex; gap: 12px;">\n <button type="button" id="delete-unit-btn" class="btn btn-danger" ${this.hasSubnodes?'disabled title="Cannot delete: organization has sub-organizations"':""} style="background: ${this.hasSubnodes?"#ccc":"#d32f2f"}; color: white; padding: 10px 20px; border: none; border-radius: 4px; cursor: ${this.hasSubnodes?"not-allowed":"pointer"}; display: flex; align-items: center; gap: 8px; opacity: ${this.hasSubnodes?"0.5":"1"};">\n <span class="material-icons" style="font-size: 18px;">delete</span>\n Delete Unit\n </button>\n <button type="submit" class="btn btn-primary" style="background: var(--primary-color, #6200ee); color: white; padding: 10px 20px; border: none; border-radius: 4px; cursor: pointer; display: flex; align-items: center; gap: 8px;">\n <span class="material-icons" style="font-size: 18px;">save</span>\n Save Changes\n </button>\n </div>\n </div>\n </form>\n </div>\n `)}renderFields(){if(!this.unit||!this.schema)return"<div>Loading...</div>";let t="";const e=[],n=[];for(const[t,i]of Object.entries(this.schema.attributes))i.fixed||"objectClass"===t||("ou"===t||"description"===t?e.push([t,i]):n.push([t,i]));if(e.length>0){t+='<div class="field-group" style="margin-bottom: 20px; padding: 16px; background: #f9f9f9; border-radius: 4px;">',t+='<div class="field-group-title" style="font-weight: 500; color: var(--primary-color, #6200ee); margin-bottom: 12px; font-size: 14px; text-transform: uppercase;">Basic Information</div>';for(const[n,i]of e)t+=this.renderField(n,i);t+="</div>"}if(n.length>0){t+='<div class="field-group" style="margin-bottom: 20px; padding: 16px; background: #f9f9f9; border-radius: 4px;">',t+='<div class="field-group-title" style="font-weight: 500; color: var(--primary-color, #6200ee); margin-bottom: 12px; font-size: 14px; text-transform: uppercase;">Additional Properties</div>';for(const[e,i]of n)t+=this.renderField(e,i);t+="</div>"}return t}renderField(t,e){const n=this.unit?.[t],i=this.getFieldLabel(t),a=e.required?"required":"";if("array"===e.type){const e=Array.isArray(n)?n.join("\n"):"";return`\n <div class="form-group" style="margin-bottom: 16px;">\n <label style="display: block; margin-bottom: 8px; font-weight: 500;">${this.escapeHtml(i)}</label>\n <textarea name="${this.escapeHtml(t)}" style="width: 100%; padding: 10px; border: 1px solid #ddd; border-radius: 4px; min-height: 80px; font-family: 'Roboto', sans-serif;" ${a}>${this.escapeHtml(e)}</textarea>\n <div style="font-size: 12px; color: #666; margin-top: 4px;">Enter one value per line</div>\n </div>\n `}return"number"===e.type||"integer"===e.type?`\n <div class="form-group" style="margin-bottom: 16px;">\n <label style="display: block; margin-bottom: 8px; font-weight: 500;">${this.escapeHtml(i)}</label>\n <input type="number" name="${this.escapeHtml(t)}" value="${n||""}" style="width: 100%; padding: 10px; border: 1px solid #ddd; border-radius: 4px;" ${a} />\n </div>\n `:`\n <div class="form-group" style="margin-bottom: 16px;">\n <label style="display: block; margin-bottom: 8px; font-weight: 500;">${this.escapeHtml(i)}</label>\n <input type="text" name="${this.escapeHtml(t)}" value="${this.escapeHtml(String(n||""))}" style="width: 100%; padding: 10px; border: 1px solid #ddd; border-radius: 4px;" ${a} />\n </div>\n `}getFieldLabel(t){return{ou:"Organization Unit",description:"Description"}[t]||t.replace(/([A-Z])/g," $1").replace(/_/g," ").replace(/^./,t=>t.toUpperCase())}attachEventListeners(){const t=document.getElementById("unit-edit-form");t&&t.addEventListener("submit",t=>this.handleSubmit(t));const e=document.getElementById("delete-unit-btn");e&&e.addEventListener("click",()=>this.handleDelete());const n=document.getElementById("move-unit-btn");n&&n.addEventListener("click",()=>this.handleMove())}async handleSubmit(t){t.preventDefault();const e=t.target,n=new FormData(e),i={};for(const[t,e]of n.entries())"array"===this.schema?.attributes[t]?.type?i[t]=e.split("\n").map(t=>t.trim()).filter(t=>t):"number"===this.schema?.attributes[t]?.type||"integer"===this.schema?.attributes[t]?.type?i[t]=Number(e):i[t]=e;try{await this.api.updateUnit(this.unitDn,i),alert("Organizational unit updated successfully!"),this.saveCallback&&this.saveCallback()}catch(t){console.error("Failed to update unit:",t),alert(`Failed to update unit: ${t.message}`)}}async handleMove(){if(!this.unit)return;const t=this.unitDn.split(",").slice(1).join(","),e=new n(this.api,t,async t=>{try{const e=await this.api.moveUnit(this.unitDn,t);alert("Unit moved successfully!"),e.newDn&&(this.unitDn=e.newDn,await this.loadUnit(),this.render(),this.attachEventListeners()),this.saveCallback&&this.saveCallback()}catch(t){console.error("Failed to move unit:",t),alert(`Failed to move unit: ${t.message}`)}});await e.show()}async handleDelete(){if(this.hasSubnodes)alert("Cannot delete this organizational unit because it contains sub-organizations. Please delete all sub-organizations first.");else if(confirm(`Are you sure you want to delete this organizational unit?\n\n${this.unitDn}\n\nThis action cannot be undone.`))try{await this.api.deleteEntry(this.unitDn),alert("Organizational unit deleted successfully!"),this.container.innerHTML='\n <div class="empty-state">\n <span class="material-icons">business</span>\n <p>Unit deleted. Select another unit to edit.</p>\n </div>\n '}catch(t){console.error("Failed to delete unit:",t),alert(`Failed to delete unit: ${t.message}`)}}escapeHtml(t){if(null==t)return"";const e={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","/":"&#x2F;"};return String(t).replace(/[&<>"'/]/g,t=>e[t])}}class a{constructor(t){this.baseUrl=t}async getConfig(){const t=await fetch(`${this.baseUrl}/api/v1/config`);if(!t.ok)throw new Error(`Failed to load config: ${t.statusText}`);return t.json()}async getOrganizations(){const t=await fetch(`${this.baseUrl}/api/v1/ldap/organizations/top`);if(!t.ok)throw new Error(`Failed to load organizations: ${t.statusText}`);return t.json()}async getUnit(t){const e=await fetch(`${this.baseUrl}/api/v1/ldap/organizations/${encodeURIComponent(t)}`);if(!e.ok)throw new Error(`Failed to load unit: ${e.statusText}`);return e.json()}async updateUnit(t,e){const n=await fetch(`${this.baseUrl}/api/v1/ldap/organizations/${encodeURIComponent(t)}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!n.ok){const t=await n.text();throw new Error(`Failed to update unit: ${t}`)}}async createEntry(t,e){const n=t.match(/^ou=([^,]+),(.+)$/);if(!n)throw new Error(`Invalid DN format: ${t}`);const[,i,a]=n,s=await fetch(`${this.baseUrl}/api/v1/ldap/organizations`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({ou:i,parentDn:a,...e})});if(!s.ok){const t=await s.text();throw new Error(`Failed to create entry: ${t}`)}}async deleteEntry(t){const e=await fetch(`${this.baseUrl}/api/v1/ldap/organizations/${encodeURIComponent(t)}`,{method:"DELETE"});if(!e.ok){const t=await e.text();throw new Error(`Failed to delete entry: ${t}`)}}async getPointerOptions(t){const e=await fetch(`${this.baseUrl}/api/v1/ldap/search?base=${encodeURIComponent(t)}&scope=one`);if(!e.ok)throw new Error(`Failed to load pointer options: ${e.statusText}`);return(await e.json()).map(t=>({dn:t.dn,label:t.cn?.[0]||t.ou?.[0]||t.dn}))}async moveUnit(t,e){const n=await fetch(`${this.baseUrl}/api/v1/ldap/organizations/${encodeURIComponent(t)}/move`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({targetOrgDn:e})});if(!n.ok){const t=await n.text();throw new Error(t||"Failed to move unit")}return n.json()}}t.LdapUnitEditor=class{constructor(t){this.container=null,this.unitTree=null,this.unitEditor=null,this.currentUnitDn=null,this.config=null,this.options=t,this.api=new a(t.apiBaseUrl||"")}async init(){const t=document.getElementById(this.options.containerId);if(!t)throw new Error(`Container element with id '${this.options.containerId}' not found`);this.container=t,this.config=await this.api.getConfig(),this.render(),await this.initializeComponents()}render(){this.container&&(this.container.innerHTML='\n <div class="ldap-unit-editor" style="display: flex; gap: 24px; height: 100%;">\n <div id="unit-tree-container" style="flex: 0 0 300px; overflow-y: auto; border-right: 1px solid #e0e0e0; padding-right: 24px;"></div>\n <div id="unit-editor-container" style="flex: 1; overflow-y: auto;">\n <div class="empty-state" style="display: flex; flex-direction: column; align-items: center; justify-content: center; height: 100%; color: #999;">\n <span class="material-icons" style="font-size: 64px; margin-bottom: 16px;">business</span>\n <p style="font-size: 16px; margin: 0;">Select an organizational unit to edit</p>\n </div>\n </div>\n </div>\n ')}async initializeComponents(){const t=document.getElementById("unit-tree-container");t&&(this.unitTree=new e(t,this.options.apiBaseUrl||"",t=>this.onUnitSelected(t)),await this.unitTree.init())}async onUnitSelected(t){this.currentUnitDn=t;const e=document.getElementById("unit-editor-container");if(e)try{this.unitEditor=new i(e,this.api,t),await this.unitEditor.init(),this.unitEditor.onSave(()=>{this.options.onUnitSaved&&this.options.onUnitSaved(t)})}catch(t){console.error("Failed to load unit editor:",t),e.innerHTML=`\n <div class="error-state" style="padding: 24px; color: #f44336;">\n <h3>Error loading unit</h3>\n <p>${t.message}</p>\n </div>\n `,this.options.onError&&this.options.onError(t)}}getCurrentUnitDn(){return this.currentUnitDn}async refresh(){if(this.unitTree&&await this.unitTree.init(),this.currentUnitDn&&this.unitEditor){const t=document.getElementById("unit-editor-container");t&&(this.unitEditor=new i(t,this.api,this.currentUnitDn),await this.unitEditor.init())}}getApi(){return this.api}getConfig(){return this.config}getCurrentOrgDn(){return this.currentUnitDn}getCurrentUserDn(){return this.currentUnitDn}async createUser(t){return this.api.createEntry(t.dn,t)}async deleteUser(t){return this.api.deleteEntry(t)}}});
1
+ !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).LdapUnitEditor={})}(this,function(t){"use strict";class e{constructor(t,e,n){this.expandedNodes=new Set,this.selectedDn=null,this.rootDn=null,this.container=t,this.apiBaseUrl=e,this.onOrgSelect=n}async init(){this.container.innerHTML='\n <div class="unit-tree">\n <div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px;">\n <h3 style="margin: 0; display: flex; align-items: center; gap: 8px;">\n <span class="material-icons">account_tree</span>\n Organizations\n </h3>\n <button id="create-unit-btn" style="background: var(--primary-color, #6200ee); color: white; border: none; border-radius: 4px; padding: 8px 12px; cursor: pointer; display: flex; align-items: center; gap: 4px; font-size: 14px;">\n <span class="material-icons" style="font-size: 18px;">add</span>\n Create\n </button>\n </div>\n <div id="tree-content">\n <div class="loading"><div class="spinner"></div></div>\n </div>\n </div>\n ';try{const t=await fetch(`${this.apiBaseUrl}/api/v1/ldap/organizations/top`);if(!t.ok)throw new Error("Failed to load organizations");const e=await t.json();this.rootDn=e.dn,await this.renderTree();const n=this.container.querySelector("#create-unit-btn");n&&n.addEventListener("click",()=>this.handleCreateUnit())}catch(t){console.error("Failed to init tree:",t);const e=this.container.querySelector("#tree-content");e&&(e.innerHTML='<p style="color: #f44336;">Failed to load organizations</p>')}}async handleCreateUnit(){const t=this.selectedDn||this.rootDn;if(!t)return void alert("Please select a parent organization first");const e=prompt("Enter the name for the new organizational unit (ou):");if(e&&e.trim())try{const n=await fetch(`${this.apiBaseUrl}/api/v1/ldap/organizations`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({ou:e.trim(),parentDn:t})});if(!n.ok){const t=await n.text();throw new Error(t||"Failed to create organizational unit")}alert(`Organizational unit "${e}" created successfully!`),this.expandedNodes.add(t),await this.renderTree()}catch(t){console.error("Failed to create unit:",t),alert(`Failed to create unit: ${t.message}`)}}async renderTree(){const t=this.container.querySelector("#tree-content");if(t&&this.rootDn)try{const e=await this.renderNode(this.rootDn,0);t.innerHTML=e,this.attachEventListeners()}catch(e){console.error("Failed to render tree:",e),t.innerHTML='<p style="color: #f44336;">Error rendering tree</p>'}}async renderNode(t,e){const n=this.expandedNodes.has(t),i=this.selectedDn===t,a=20*e,s=await fetch(`${this.apiBaseUrl}/api/v1/ldap/organizations/${encodeURIComponent(t)}`);if(!s.ok)throw new Error("Failed to load node");const o=await s.json();let r=t;o.ou?r=Array.isArray(o.ou)?o.ou[0]:o.ou:o.cn&&(r=Array.isArray(o.cn)?o.cn[0]:o.cn);let l=`\n <div class="tree-node ${i?"active":""}" style="padding-left: ${a}px; padding: 8px 8px 8px ${a}px; cursor: pointer; display: flex; align-items: center; gap: 4px;">\n <span class="material-icons tree-node-toggle" data-dn="${this.escapeHtml(t)}" style="font-size: 18px; cursor: pointer;">\n ${n?"expand_more":"chevron_right"}\n </span>\n <span class="material-icons" style="font-size: 18px;">business</span>\n <span class="tree-node-label" data-dn="${this.escapeHtml(t)}">${this.escapeHtml(r)}</span>\n </div>\n `;if(n)try{const n=await fetch(`${this.apiBaseUrl}/api/v1/ldap/organizations/${encodeURIComponent(t)}/subnodes`);if(!n.ok)throw new Error("Failed to load subnodes");const i=(await n.json()).filter(t=>{const e=Array.isArray(t.objectClass)?t.objectClass:t.objectClass?[t.objectClass]:[];return e.includes("organizationalUnit")||e.includes("organization")});for(const t of i)l+=await this.renderNode(t.dn,e+1)}catch(e){console.error("Failed to load subnodes for",t,e)}return l}attachEventListeners(){this.container.querySelectorAll(".tree-node-toggle").forEach(t=>{t.addEventListener("click",async e=>{e.stopPropagation();const n=t.getAttribute("data-dn");n&&(this.expandedNodes.has(n)?this.expandedNodes.delete(n):this.expandedNodes.add(n),await this.renderTree())})}),this.container.querySelectorAll(".tree-node-label").forEach(t=>{t.addEventListener("click",e=>{e.stopPropagation();const n=t.getAttribute("data-dn");n&&(this.selectedDn=n,this.onOrgSelect(n),this.renderTree())})})}escapeHtml(t){if(null==t)return"";const e={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","/":"&#x2F;"};return String(t).replace(/[&<>"'/]/g,t=>e[t])}}class n{constructor(t,e,n){this.modal=null,this.selectedOrgDn=null,this.expandedNodes=new Set,this.rootDn=null,this.api=t,this.currentOrgDn=e,this.onMove=n}static escapeHtml(t){if(null==t)return"";const e={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","/":"&#x2F;"};return String(t).replace(/[&<>"'/]/g,t=>e[t])}async show(){this.modal=document.createElement("div"),this.modal.className="modal-overlay active",this.modal.innerHTML='\n <div class="modal-container" style="max-width: 600px;">\n <div class="modal-header">\n <h3 style="margin: 0; display: flex; align-items: center; gap: 0.5rem;">\n <span class="material-icons">folder_open</span>\n Move Unit to Organization\n </h3>\n <button class="modal-close" id="modal-close-btn">\n <span class="material-icons">close</span>\n </button>\n </div>\n <div class="modal-body">\n <div id="move-modal-alert"></div>\n <div style="margin-bottom: 1rem; color: #666; font-size: 0.9rem;">\n Select the target organization where you want to move this unit.\n </div>\n <div id="organization-tree-container" style="max-height: 400px; overflow-y: auto; border: 1px solid #ddd; border-radius: 4px; padding: 0.5rem;">\n <div class="loading">\n <div class="spinner"></div>\n <p style="margin-top: 1rem">Loading organizations...</p>\n </div>\n </div>\n </div>\n <div class="modal-footer">\n <button type="button" class="btn btn-secondary" id="modal-cancel-btn">\n Cancel\n </button>\n <button type="button" class="btn btn-primary" id="modal-move-btn" disabled>\n <span class="material-icons">drive_file_move</span>\n Move Unit\n </button>\n </div>\n </div>\n ',document.body.appendChild(this.modal),this.attachHandlers(),await this.loadOrganizationTree()}attachHandlers(){if(!this.modal)return;const t=this.modal.querySelector("#modal-close-btn");t?.addEventListener("click",()=>this.close());const e=this.modal.querySelector("#modal-cancel-btn");e?.addEventListener("click",()=>this.close());const n=this.modal.querySelector("#modal-move-btn");n?.addEventListener("click",()=>this.handleMove()),this.modal.addEventListener("click",t=>{t.target===this.modal&&this.close()});const i=t=>{"Escape"===t.key&&(this.close(),document.removeEventListener("keydown",i))};document.addEventListener("keydown",i)}async loadOrganizationTree(){const t=this.modal?.querySelector("#organization-tree-container");if(t)try{const t=await this.api.getOrganizations();this.rootDn=t.dn,this.expandedNodes.add(this.rootDn),await this.renderTree()}catch(e){t.innerHTML=`\n <div class="alert alert-error">\n <span class="material-icons">error</span>\n <div>Failed to load organizations: ${n.escapeHtml(e.message)}</div>\n </div>\n `}}async renderTree(){const t=this.modal?.querySelector("#organization-tree-container");if(t&&this.rootDn)try{const e=await this.renderNode(this.rootDn,0);t.innerHTML=e,this.attachTreeHandlers()}catch(e){t.innerHTML=`\n <div class="alert alert-error">\n <span class="material-icons">error</span>\n <div>Error rendering tree: ${n.escapeHtml(e.message)}</div>\n </div>\n `}}async renderNode(t,e){const i=this.expandedNodes.has(t),a=t===this.currentOrgDn,s=t===this.selectedOrgDn,o=20*e,r=await this.api.getUnit(t),l=Array.isArray(r.ou)?r.ou[0]:r.ou,d=(r.twakeDepartmentPath?Array.isArray(r.twakeDepartmentPath)?r.twakeDepartmentPath[0]:r.twakeDepartmentPath:void 0)||l||t;let c=`\n <div\n class="org-node ${a?"org-current":""} ${s?"org-selected":""}"\n data-org-dn="${n.escapeHtml(t)}"\n style="\n padding: 0.5rem;\n padding-left: ${o+8}px;\n cursor: ${a?"not-allowed":"pointer"};\n background: ${a?"#f5f5f5":s?"#e3f2fd":"white"};\n opacity: ${a?"0.6":"1"};\n display: flex;\n align-items: center;\n gap: 0.5rem;\n border-left: 2px solid ${s?"#2196f3":"transparent"};\n "\n >\n <span class="material-icons tree-toggle" data-dn="${n.escapeHtml(t)}" style="cursor: pointer; font-size: 1.2rem;">\n ${i?"expand_more":"chevron_right"}\n </span>\n <span class="material-icons" style="font-size: 1.2rem; color: ${a?"#999":"#2196f3"};">\n ${a?"business":"folder"}\n </span>\n <span style="flex: 1; font-weight: ${s?"600":"500"};">\n ${n.escapeHtml(d)}\n ${a?'<span style="font-size: 0.85rem; color: #666; margin-left: 0.5rem;">(current)</span>':""}\n </span>\n ${s?'<span class="material-icons" style="color: #2196f3;">check_circle</span>':""}\n </div>\n `;if(i)try{const n=await fetch(`${this.api.baseUrl}/api/v1/ldap/organizations/${encodeURIComponent(t)}/subnodes`);if(!n.ok)throw new Error("Failed to load subnodes");const i=(await n.json()).filter(t=>{const e=Array.isArray(t.objectClass)?t.objectClass:t.objectClass?[t.objectClass]:[];return e.includes("organizationalUnit")||e.includes("organization")});for(const t of i)c+=await this.renderNode(t.dn,e+1)}catch(e){console.error("Failed to load subnodes for",t,e)}return c}attachTreeHandlers(){const t=this.modal?.querySelectorAll(".tree-toggle");t?.forEach(t=>{t.addEventListener("click",async e=>{e.stopPropagation();const n=t.getAttribute("data-dn");n&&(this.expandedNodes.has(n)?this.expandedNodes.delete(n):this.expandedNodes.add(n),await this.renderTree())})});const e=this.modal?.querySelectorAll(".org-node");e?.forEach(t=>{const e=t.getAttribute("data-org-dn");e&&e!==this.currentOrgDn&&t.addEventListener("click",()=>{this.selectOrganization(e)})})}async selectOrganization(t){this.selectedOrgDn=t,await this.renderTree();const e=this.modal?.querySelector("#modal-move-btn");e&&(e.disabled=!1)}async handleMove(){if(!this.selectedOrgDn)return;const t=this.modal?.querySelector("#modal-move-btn"),e=this.modal?.querySelector("#move-modal-alert");t&&(t.disabled=!0,t.innerHTML='\n <span class="spinner" style="width: 1rem; height: 1rem; border-width: 2px;"></span>\n Moving...\n ');try{this.onMove(this.selectedOrgDn),this.close()}catch(i){e&&(e.innerHTML=`\n <div class="alert alert-error" style="margin-bottom: 1rem;">\n <span class="material-icons">error</span>\n <div>Move failed: ${n.escapeHtml(i.message)}</div>\n </div>\n `),t&&(t.disabled=!1,t.innerHTML='\n <span class="material-icons">drive_file_move</span>\n Move Unit\n ')}}close(){this.modal&&(this.modal.remove(),this.modal=null)}}const i=t=>(Array.isArray(t)?t:[t]).filter(t=>!(t=>null==t||""===t)(t));class a{constructor(t,e,n){this.unit=null,this.schema=null,this.saveCallback=null,this.hasSubnodes=!1,this.container=t,this.api=e,this.unitDn=n}async init(){await this.loadUnit(),await this.loadSchema(),await this.checkSubnodes(),this.render(),this.attachEventListeners()}async loadUnit(){this.unit=await this.api.getUnit(this.unitDn)}async checkSubnodes(){try{const t=await fetch(`${this.api.baseUrl}/api/v1/ldap/organizations/${encodeURIComponent(this.unitDn)}/subnodes`);if(t.ok){const e=await t.json();this.hasSubnodes=e.some(t=>{const e=Array.isArray(t.objectClass)?t.objectClass:t.objectClass?[t.objectClass]:[];return e.includes("organizationalUnit")||e.includes("organization")})}}catch(t){console.error("Failed to check subnodes:",t),this.hasSubnodes=!1}}async loadSchema(){console.warn("[UnitPropertyEditor] Loading schema...");const t=await this.api.getConfig(),e=t.features?.ldapOrganizations;if(console.warn("[UnitPropertyEditor] Organizations config:",e),e?.schemaUrl){console.warn("[UnitPropertyEditor] Loading schema from URL:",e.schemaUrl);const t=await fetch(e.schemaUrl);this.schema=await t.json(),console.warn("[UnitPropertyEditor] Schema loaded from URL:",this.schema)}else if(e?.schema)console.warn("[UnitPropertyEditor] Using schema from config"),this.schema=e.schema;else{console.warn("[UnitPropertyEditor] Falling back to flatResources");const e=t.features?.ldapFlatGeneric?.flatResources?.find(t=>"organizations"===t.pluralName||"organizations"===t.name);if(e?.schemaUrl){const t=await fetch(e.schemaUrl);this.schema=await t.json()}else e?.schema?this.schema=e.schema:(console.warn("[UnitPropertyEditor] No schema found, using default"),this.schema={entity:{objectClass:["organizationalUnit"]},attributes:{ou:{type:"string",required:!0},description:{type:"string"}}})}}onSave(t){this.saveCallback=t}render(){this.unit&&(this.container.innerHTML=`\n <div class="unit-property-editor">\n <h3 style="margin: 0 0 16px 0; display: flex; align-items: center; gap: 8px;">\n <span class="material-icons">business</span>\n Edit Organizational Unit\n </h3>\n <form id="unit-edit-form">\n ${this.renderFields()}\n <div class="form-actions" style="margin-top: 24px; padding-top: 24px; border-top: 1px solid #e0e0e0; display: flex; gap: 12px; justify-content: space-between;">\n <button type="button" id="move-unit-btn" class="btn btn-secondary" style="background: #757575; color: white; padding: 10px 20px; border: none; border-radius: 4px; cursor: pointer; display: flex; align-items: center; gap: 8px;">\n <span class="material-icons" style="font-size: 18px;">drive_file_move</span>\n Move\n </button>\n <div style="display: flex; gap: 12px;">\n <button type="button" id="delete-unit-btn" class="btn btn-danger" ${this.hasSubnodes?'disabled title="Cannot delete: organization has sub-organizations"':""} style="background: ${this.hasSubnodes?"#ccc":"#d32f2f"}; color: white; padding: 10px 20px; border: none; border-radius: 4px; cursor: ${this.hasSubnodes?"not-allowed":"pointer"}; display: flex; align-items: center; gap: 8px; opacity: ${this.hasSubnodes?"0.5":"1"};">\n <span class="material-icons" style="font-size: 18px;">delete</span>\n Delete Unit\n </button>\n <button type="submit" class="btn btn-primary" style="background: var(--primary-color, #6200ee); color: white; padding: 10px 20px; border: none; border-radius: 4px; cursor: pointer; display: flex; align-items: center; gap: 8px;">\n <span class="material-icons" style="font-size: 18px;">save</span>\n Save Changes\n </button>\n </div>\n </div>\n </form>\n </div>\n `)}renderFields(){if(!this.unit||!this.schema)return"<div>Loading...</div>";let t="";const e=[],n=[];for(const[t,i]of Object.entries(this.schema.attributes))i.fixed||"objectClass"===t||("ou"===t||"description"===t?e.push([t,i]):n.push([t,i]));if(e.length>0){t+='<div class="field-group" style="margin-bottom: 20px; padding: 16px; background: #f9f9f9; border-radius: 4px;">',t+='<div class="field-group-title" style="font-weight: 500; color: var(--primary-color, #6200ee); margin-bottom: 12px; font-size: 14px; text-transform: uppercase;">Basic Information</div>';for(const[n,i]of e)t+=this.renderField(n,i);t+="</div>"}if(n.length>0){t+='<div class="field-group" style="margin-bottom: 20px; padding: 16px; background: #f9f9f9; border-radius: 4px;">',t+='<div class="field-group-title" style="font-weight: 500; color: var(--primary-color, #6200ee); margin-bottom: 12px; font-size: 14px; text-transform: uppercase;">Additional Properties</div>';for(const[e,i]of n)t+=this.renderField(e,i);t+="</div>"}return t}renderField(t,e){const n=this.unit?.[t],a=this.getFieldLabel(t),s=e.required?"required":"";if("array"===e.type){const e=(t=>i(t).map(String))(n).join("\n");return`\n <div class="form-group" style="margin-bottom: 16px;">\n <label style="display: block; margin-bottom: 8px; font-weight: 500;">${this.escapeHtml(a)}</label>\n <textarea name="${this.escapeHtml(t)}" style="width: 100%; padding: 10px; border: 1px solid #ddd; border-radius: 4px; min-height: 80px; font-family: 'Roboto', sans-serif;" ${s}>${this.escapeHtml(e)}</textarea>\n <div style="font-size: 12px; color: #666; margin-top: 4px;">Enter one value per line</div>\n </div>\n `}return"number"===e.type||"integer"===e.type?`\n <div class="form-group" style="margin-bottom: 16px;">\n <label style="display: block; margin-bottom: 8px; font-weight: 500;">${this.escapeHtml(a)}</label>\n <input type="number" name="${this.escapeHtml(t)}" value="${n||""}" style="width: 100%; padding: 10px; border: 1px solid #ddd; border-radius: 4px;" ${s} />\n </div>\n `:`\n <div class="form-group" style="margin-bottom: 16px;">\n <label style="display: block; margin-bottom: 8px; font-weight: 500;">${this.escapeHtml(a)}</label>\n <input type="text" name="${this.escapeHtml(t)}" value="${this.escapeHtml(String(n||""))}" style="width: 100%; padding: 10px; border: 1px solid #ddd; border-radius: 4px;" ${s} />\n </div>\n `}getFieldLabel(t){return{ou:"Organization Unit",description:"Description"}[t]||t.replace(/([A-Z])/g," $1").replace(/_/g," ").replace(/^./,t=>t.toUpperCase())}attachEventListeners(){const t=document.getElementById("unit-edit-form");t&&t.addEventListener("submit",t=>this.handleSubmit(t));const e=document.getElementById("delete-unit-btn");e&&e.addEventListener("click",()=>this.handleDelete());const n=document.getElementById("move-unit-btn");n&&n.addEventListener("click",()=>this.handleMove())}async handleSubmit(t){t.preventDefault();const e=t.target,n=new FormData(e),a={};for(const[t,e]of n.entries())"array"===this.schema?.attributes[t]?.type?a[t]=e.split("\n").map(t=>t.trim()).filter(t=>t):"number"===this.schema?.attributes[t]?.type||"integer"===this.schema?.attributes[t]?.type?a[t]=Number(e):a[t]=e;try{const t=function(t,e){const n={};for(const[a,s]of Object.entries(e)){if("dn"===a)continue;const e=i(s),o=e.map(String).sort(),r=i(t?.[a]).map(String).sort();o.length===r.length&&o.every((t,e)=>t===r[e])||(n[a]=Array.isArray(s)?e:e.length?s:[])}return n}(this.unit,a);Object.keys(t).length&&await this.api.updateUnit(this.unitDn,t),alert("Organizational unit updated successfully!"),this.saveCallback&&this.saveCallback()}catch(t){console.error("Failed to update unit:",t),alert(`Failed to update unit: ${t.message}`)}}async handleMove(){if(!this.unit)return;const t=this.unitDn.split(",").slice(1).join(","),e=new n(this.api,t,async t=>{try{const e=await this.api.moveUnit(this.unitDn,t);alert("Unit moved successfully!"),e.newDn&&(this.unitDn=e.newDn,await this.loadUnit(),this.render(),this.attachEventListeners()),this.saveCallback&&this.saveCallback()}catch(t){console.error("Failed to move unit:",t),alert(`Failed to move unit: ${t.message}`)}});await e.show()}async handleDelete(){if(this.hasSubnodes)alert("Cannot delete this organizational unit because it contains sub-organizations. Please delete all sub-organizations first.");else if(confirm(`Are you sure you want to delete this organizational unit?\n\n${this.unitDn}\n\nThis action cannot be undone.`))try{await this.api.deleteEntry(this.unitDn),alert("Organizational unit deleted successfully!"),this.container.innerHTML='\n <div class="empty-state">\n <span class="material-icons">business</span>\n <p>Unit deleted. Select another unit to edit.</p>\n </div>\n '}catch(t){console.error("Failed to delete unit:",t),alert(`Failed to delete unit: ${t.message}`)}}escapeHtml(t){if(null==t)return"";const e={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","/":"&#x2F;"};return String(t).replace(/[&<>"'/]/g,t=>e[t])}}class s{constructor(t){this.baseUrl=t}async getConfig(){const t=await fetch(`${this.baseUrl}/api/v1/config`);if(!t.ok)throw new Error(`Failed to load config: ${t.statusText}`);return t.json()}async getOrganizations(){const t=await fetch(`${this.baseUrl}/api/v1/ldap/organizations/top`);if(!t.ok)throw new Error(`Failed to load organizations: ${t.statusText}`);return t.json()}async getUnit(t){const e=await fetch(`${this.baseUrl}/api/v1/ldap/organizations/${encodeURIComponent(t)}`);if(!e.ok)throw new Error(`Failed to load unit: ${e.statusText}`);return e.json()}async updateUnit(t,e){const n=await fetch(`${this.baseUrl}/api/v1/ldap/organizations/${encodeURIComponent(t)}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({replace:e})});if(!n.ok){const t=await n.text();throw new Error(`Failed to update unit: ${t}`)}}async createEntry(t,e){const n=t.match(/^ou=([^,]+),(.+)$/);if(!n)throw new Error(`Invalid DN format: ${t}`);const[,i,a]=n,s=await fetch(`${this.baseUrl}/api/v1/ldap/organizations`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({ou:i,parentDn:a,...e})});if(!s.ok){const t=await s.text();throw new Error(`Failed to create entry: ${t}`)}}async deleteEntry(t){const e=await fetch(`${this.baseUrl}/api/v1/ldap/organizations/${encodeURIComponent(t)}`,{method:"DELETE"});if(!e.ok){const t=await e.text();throw new Error(`Failed to delete entry: ${t}`)}}async moveUnit(t,e){const n=await fetch(`${this.baseUrl}/api/v1/ldap/organizations/${encodeURIComponent(t)}/move`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({targetOrgDn:e})});if(!n.ok){const t=await n.text();throw new Error(t||"Failed to move unit")}return n.json()}}t.LdapUnitEditor=class{constructor(t){this.container=null,this.unitTree=null,this.unitEditor=null,this.currentUnitDn=null,this.config=null,this.options=t,this.api=new s(t.apiBaseUrl||"")}async init(){const t=document.getElementById(this.options.containerId);if(!t)throw new Error(`Container element with id '${this.options.containerId}' not found`);this.container=t,this.config=await this.api.getConfig(),this.render(),await this.initializeComponents()}render(){this.container&&(this.container.innerHTML='\n <div class="ldap-unit-editor" style="display: flex; gap: 24px; height: 100%;">\n <div id="unit-tree-container" style="flex: 0 0 300px; overflow-y: auto; border-right: 1px solid #e0e0e0; padding-right: 24px;"></div>\n <div id="unit-editor-container" style="flex: 1; overflow-y: auto;">\n <div class="empty-state" style="display: flex; flex-direction: column; align-items: center; justify-content: center; height: 100%; color: #999;">\n <span class="material-icons" style="font-size: 64px; margin-bottom: 16px;">business</span>\n <p style="font-size: 16px; margin: 0;">Select an organizational unit to edit</p>\n </div>\n </div>\n </div>\n ')}async initializeComponents(){const t=document.getElementById("unit-tree-container");t&&(this.unitTree=new e(t,this.options.apiBaseUrl||"",t=>this.onUnitSelected(t)),await this.unitTree.init())}async onUnitSelected(t){this.currentUnitDn=t;const e=document.getElementById("unit-editor-container");if(e)try{this.unitEditor=new a(e,this.api,t),await this.unitEditor.init(),this.unitEditor.onSave(()=>{this.options.onUnitSaved&&this.options.onUnitSaved(t)})}catch(t){console.error("Failed to load unit editor:",t),e.innerHTML=`\n <div class="error-state" style="padding: 24px; color: #f44336;">\n <h3>Error loading unit</h3>\n <p>${t.message}</p>\n </div>\n `,this.options.onError&&this.options.onError(t)}}getCurrentUnitDn(){return this.currentUnitDn}async refresh(){if(this.unitTree&&await this.unitTree.init(),this.currentUnitDn&&this.unitEditor){const t=document.getElementById("unit-editor-container");t&&(this.unitEditor=new a(t,this.api,this.currentUnitDn),await this.unitEditor.init())}}getApi(){return this.api}getConfig(){return this.config}getCurrentOrgDn(){return this.currentUnitDn}getCurrentUserDn(){return this.currentUnitDn}async createUser(t){return this.api.createEntry(t.dn,t)}async deleteUser(t){return this.api.deleteEntry(t)}}});
2
2
  //# sourceMappingURL=ldap-unit-editor.min.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ldap-unit-editor.min.js","sources":["../../../../src/browser/ldap-unit-editor/components/UnitTree.ts","../../../../src/browser/ldap-unit-editor/components/MoveUnitModal.ts","../../../../src/browser/ldap-unit-editor/components/UnitPropertyEditor.ts","../../../../src/browser/ldap-unit-editor/api/UnitApiClient.ts","../../../../src/browser/ldap-unit-editor/LdapUnitEditor.ts"],"sourcesContent":[null,null,null,null,null],"names":["UnitTree","constructor","container","apiBaseUrl","onOrgSelect","this","expandedNodes","Set","selectedDn","rootDn","init","innerHTML","response","fetch","ok","Error","topOrg","json","dn","renderTree","createBtn","querySelector","addEventListener","handleCreateUnit","error","console","treeEl","parentDn","alert","ouName","prompt","trim","method","headers","body","JSON","stringify","ou","text","add","message","html","renderNode","attachEventListeners","level","isExpanded","has","isSelected","indent","encodeURIComponent","node","displayName","Array","isArray","cn","escapeHtml","subnodesResponse","orgs","filter","n","classes","objectClass","includes","subnode","querySelectorAll","forEach","el","async","e","stopPropagation","getAttribute","delete","map","String","replace","m","MoveUnitModal","api","currentOrgDn","onMove","modal","selectedOrgDn","show","document","createElement","className","appendChild","attachHandlers","loadOrganizationTree","closeBtn","close","cancelBtn","moveBtn","handleMove","target","handleEscape","key","removeEventListener","getOrganizations","attachTreeHandlers","isCurrentOrg","getUnit","twakeDepartmentPath","undefined","toggles","toggle","nodes","orgDn","selectOrganization","disabled","alertContainer","remove","UnitPropertyEditor","unitDn","unit","schema","saveCallback","hasSubnodes","loadUnit","loadSchema","checkSubnodes","render","subnodes","some","warn","config","getConfig","orgsConfig","features","ldapOrganizations","schemaUrl","unitsResource","ldapFlatGeneric","flatResources","find","r","pluralName","name","entity","attributes","type","required","description","onSave","callback","renderFields","basicFields","otherFields","fieldName","attribute","Object","entries","fixed","push","length","renderField","value","label","getFieldLabel","arrayValue","join","str","toUpperCase","form","getElementById","handleSubmit","deleteBtn","handleDelete","preventDefault","formData","FormData","updates","split","v","Number","updateUnit","slice","targetOrgDn","result","moveUnit","newDn","confirm","deleteEntry","UnitApiClient","baseUrl","statusText","data","createEntry","match","getPointerOptions","branch","entry","options","unitTree","unitEditor","currentUnitDn","containerId","initializeComponents","treeContainer","onUnitSelected","editorContainer","onUnitSaved","onError","getCurrentUnitDn","refresh","getApi","getCurrentOrgDn","getCurrentUserDn","createUser","deleteUser"],"mappings":"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"}
1
+ {"version":3,"file":"ldap-unit-editor.min.js","sources":["../../../../src/browser/ldap-unit-editor/components/UnitTree.ts","../../../../src/browser/ldap-unit-editor/components/MoveUnitModal.ts","../../../../src/browser/shared/utils/form.ts","../../../../src/browser/ldap-unit-editor/components/UnitPropertyEditor.ts","../../../../src/browser/ldap-unit-editor/api/UnitApiClient.ts","../../../../src/browser/ldap-unit-editor/LdapUnitEditor.ts"],"sourcesContent":[null,null,null,null,null,null],"names":["UnitTree","constructor","container","apiBaseUrl","onOrgSelect","this","expandedNodes","Set","selectedDn","rootDn","init","innerHTML","response","fetch","ok","Error","topOrg","json","dn","renderTree","createBtn","querySelector","addEventListener","handleCreateUnit","error","console","treeEl","parentDn","alert","ouName","prompt","trim","method","headers","body","JSON","stringify","ou","text","add","message","html","renderNode","attachEventListeners","level","isExpanded","has","isSelected","indent","encodeURIComponent","node","displayName","Array","isArray","cn","escapeHtml","subnodesResponse","orgs","filter","n","classes","objectClass","includes","subnode","querySelectorAll","forEach","el","async","e","stopPropagation","getAttribute","delete","map","String","replace","m","MoveUnitModal","api","currentOrgDn","onMove","modal","selectedOrgDn","show","document","createElement","className","appendChild","attachHandlers","loadOrganizationTree","closeBtn","close","cancelBtn","moveBtn","handleMove","target","handleEscape","key","removeEventListener","getOrganizations","attachTreeHandlers","isCurrentOrg","getUnit","twakeDepartmentPath","undefined","toggles","toggle","nodes","orgDn","selectOrganization","disabled","alertContainer","remove","valueList","value","v","isEmpty","UnitPropertyEditor","unitDn","unit","schema","saveCallback","hasSubnodes","loadUnit","loadSchema","checkSubnodes","render","subnodes","some","warn","config","getConfig","orgsConfig","features","ldapOrganizations","schemaUrl","unitsResource","ldapFlatGeneric","flatResources","find","r","pluralName","name","entity","attributes","type","required","description","onSave","callback","renderFields","basicFields","otherFields","fieldName","attribute","Object","entries","fixed","push","length","renderField","label","getFieldLabel","arrayValue","listValues","join","str","toUpperCase","form","getElementById","handleSubmit","deleteBtn","handleDelete","preventDefault","formData","FormData","updates","split","Number","original","edited","after","a","sort","b","every","i","changedAttributes","keys","updateUnit","slice","targetOrgDn","result","moveUnit","newDn","confirm","deleteEntry","UnitApiClient","baseUrl","statusText","createEntry","data","match","options","unitTree","unitEditor","currentUnitDn","containerId","initializeComponents","treeContainer","onUnitSelected","editorContainer","onUnitSaved","onError","getCurrentUnitDn","refresh","getApi","getCurrentOrgDn","getCurrentUserDn","createUser","deleteUser"],"mappings":"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"}
@@ -95,10 +95,9 @@ class LdapUserEditor {
95
95
  if (this.currentOrgDn && this.userList) {
96
96
  this.userList.refresh();
97
97
  }
98
- }, () => {
99
- // On user deleted
100
- this.deleteUser(dn);
101
- });
98
+ },
99
+ // UserEditor has deleted the entry already
100
+ () => void this.userDeleted(dn));
102
101
  try {
103
102
  await this.userEditor.init();
104
103
  }
@@ -143,29 +142,31 @@ class LdapUserEditor {
143
142
  async deleteUser(dn) {
144
143
  try {
145
144
  await this.api.deleteUser(dn);
146
- // Clear current selection if we deleted the selected user
147
- if (this.currentUserDn === dn) {
148
- this.currentUserDn = null;
149
- const editorContainer = document.getElementById('user-editor-container');
150
- if (editorContainer) {
151
- editorContainer.innerHTML = `
152
- <div class="empty-state">
153
- <span class="material-icons">person_search</span>
154
- <p>Select a user from the list to edit</p>
155
- </div>
156
- `;
157
- }
158
- }
159
- // Refresh the user list
160
- if (this.userList) {
161
- await this.userList.refresh();
162
- }
145
+ await this.userDeleted(dn);
163
146
  }
164
147
  catch (error) {
165
148
  this.handleError(error);
166
149
  throw error;
167
150
  }
168
151
  }
152
+ /** Clear the selection and refresh the list once `dn` is deleted */
153
+ async userDeleted(dn) {
154
+ if (this.currentUserDn === dn) {
155
+ this.currentUserDn = null;
156
+ const editorContainer = document.getElementById('user-editor-container');
157
+ if (editorContainer) {
158
+ editorContainer.innerHTML = `
159
+ <div class="empty-state">
160
+ <span class="material-icons">person_search</span>
161
+ <p>Select a user from the list to edit</p>
162
+ </div>
163
+ `;
164
+ }
165
+ }
166
+ if (this.userList) {
167
+ await this.userList.refresh();
168
+ }
169
+ }
169
170
  getConfig() {
170
171
  return this.config;
171
172
  }
@@ -1 +1 @@
1
- {"version":3,"file":"LdapUserEditor.js","sources":["../../../../src/browser/ldap-user-editor/LdapUserEditor.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LdapUserEditor.js","sources":["../../../../src/browser/ldap-user-editor/LdapUserEditor.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -69,11 +69,17 @@ class UserApiClient {
69
69
  const url = `${this.getApiBase()}/ldap/users/${encodeURIComponent(dn)}`;
70
70
  return this.cachedFetch(url);
71
71
  }
72
- async updateUser(dn, data) {
72
+ /**
73
+ * Replace attributes of an entry.
74
+ *
75
+ * @param dn entry to change
76
+ * @param replace attributes to replace; see `changedAttributes`
77
+ */
78
+ async updateUser(dn, replace) {
73
79
  const res = await fetch(`${this.getApiBase()}/ldap/users/${encodeURIComponent(dn)}`, {
74
80
  method: 'PUT',
75
81
  headers: { 'Content-Type': 'application/json' },
76
- body: JSON.stringify(data),
82
+ body: JSON.stringify({ replace }),
77
83
  });
78
84
  if (!res.ok) {
79
85
  const error = await res.text();
@@ -1 +1 @@
1
- {"version":3,"file":"UserApiClient.js","sources":["../../../../../src/browser/ldap-user-editor/api/UserApiClient.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"UserApiClient.js","sources":["../../../../../src/browser/ldap-user-editor/api/UserApiClient.ts"],"sourcesContent":[null],"names":[],"mappings":";;;AAAA;;AAEG;MAMU,aAAa,CAAA;IAIxB,WAAA,CACE,OAAA,GAAkB,EAAE,EACpB,YAAoD,EAAA;AAEpD,QAAA,IAAI,CAAC,OAAO;AACV,YAAA,OAAO,KAAK,OAAO,MAAM,KAAK,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,EAAE,CAAC;QAC1E,IAAI,CAAC,KAAK,GAAG,IAAI,YAAY,CAAC,YAAY,CAAC;;AAG3C,QAAA,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;AACjC,YAAA,MAAM,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;QACpE;IACF;IAEQ,UAAU,GAAA;AAChB,QAAA,OAAO,CAAA,EAAG,IAAI,CAAC,OAAO,SAAS;IACjC;AAEQ,IAAA,aAAa,CAAC,KAAc,EAAA;AAClC,QAAA,IAAI,CAAC,KAAK;AAAE,YAAA,OAAO,EAAE;AACrB,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;AAAE,YAAA,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE;AAC/C,QAAA,OAAO,MAAM,CAAC,KAAK,CAAC;IACtB;AAEA;;AAEG;AACK,IAAA,MAAM,WAAW,CAAI,GAAW,EAAE,OAAqB,EAAA;AAC7D,QAAA,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,KAAK;;AAGvC,QAAA,IAAI,MAAM,KAAK,KAAK,EAAE;YACpB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAI,GAAG,CAAC;AACrC,YAAA,IAAI,MAAM,KAAK,IAAI,EAAE;AACnB,gBAAA,OAAO,MAAM;YACf;QACF;QAEA,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC;AACrC,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE;AACX,YAAA,MAAM,IAAI,KAAK,CAAC,CAAA,KAAA,EAAQ,GAAG,CAAC,MAAM,CAAA,EAAA,EAAK,GAAG,CAAC,UAAU,CAAA,CAAE,CAAC;QAC1D;QAEA,MAAM,IAAI,IAAI,MAAM,GAAG,CAAC,IAAI,EAAE,CAAM;;AAGpC,QAAA,IAAI,MAAM,KAAK,KAAK,EAAE;YACpB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC;QAC3B;AAEA,QAAA,OAAO,IAAI;IACb;AAEA,IAAA,MAAM,SAAS,GAAA;QACb,OAAO,IAAI,CAAC,WAAW,CAAS,CAAA,EAAG,IAAI,CAAC,UAAU,EAAE,CAAA,OAAA,CAAS,CAAC;IAChE;IAEA,MAAM,SAAS,CAAC,SAAiB,EAAA;;AAE/B,QAAA,MAAM,GAAG,GAAG,SAAS,CAAC,UAAU,CAAC,MAAM;AACrC,cAAE;cACA,GAAG,IAAI,CAAC,OAAO,CAAA,EAAG,SAAS,EAAE;AACjC,QAAA,OAAO,IAAI,CAAC,WAAW,CAAS,GAAG,CAAC;IACtC;AAEA,IAAA,MAAM,QAAQ,CAAC,MAAM,GAAG,EAAE,EAAA;QACxB,MAAM,GAAG,GAAG;cACR,CAAA,EAAG,IAAI,CAAC,UAAU,EAAE,CAAA,kBAAA,EAAqB,kBAAkB,CAAC,MAAM,CAAC,CAAA,cAAA;AACrE,cAAE,CAAA,EAAG,IAAI,CAAC,UAAU,EAAE,aAAa;QACrC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CACjC,GAAG,CACJ;;AAED,QAAA,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;IACzD;IAEA,MAAM,OAAO,CAAC,EAAU,EAAA;AACtB,QAAA,MAAM,GAAG,GAAG,CAAA,EAAG,IAAI,CAAC,UAAU,EAAE,CAAA,YAAA,EAAe,kBAAkB,CAAC,EAAE,CAAC,EAAE;AACvE,QAAA,OAAO,IAAI,CAAC,WAAW,CAAW,GAAG,CAAC;IACxC;AAEA;;;;;AAKG;AACH,IAAA,MAAM,UAAU,CACd,EAAU,EACV,OAAgC,EAAA;AAEhC,QAAA,MAAM,GAAG,GAAG,MAAM,KAAK,CACrB,GAAG,IAAI,CAAC,UAAU,EAAE,eAAe,kBAAkB,CAAC,EAAE,CAAC,EAAE,EAC3D;AACE,YAAA,MAAM,EAAE,KAAK;AACb,YAAA,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC;AAClC,SAAA,CACF;AACD,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE;AACX,YAAA,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE;AAC9B,YAAA,MAAM,IAAI,KAAK,CAAC,KAAK,IAAI,uBAAuB,CAAC;QACnD;AACA,QAAA,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE;;AAG/B,QAAA,IAAI,CAAC,KAAK,CAAC,UAAU,CACnB,GAAG,IAAI,CAAC,UAAU,EAAE,eAAe,kBAAkB,CAAC,EAAE,CAAC,CAAA,CAAE,CAC5D;AACD,QAAA,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAA,EAAG,IAAI,CAAC,UAAU,EAAE,CAAA,YAAA,CAAc,CAAC;AAEhE,QAAA,OAAO,MAAM;IACf;IAEA,MAAM,UAAU,CAAC,IAAuB,EAAA;QACtC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,CAAA,EAAG,IAAI,CAAC,UAAU,EAAE,CAAA,WAAA,CAAa,EAAE;AACzD,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;AAC/C,YAAA,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;AAC3B,SAAA,CAAC;AACF,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE;AACX,YAAA,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE;AAC9B,YAAA,MAAM,IAAI,KAAK,CAAC,KAAK,IAAI,uBAAuB,CAAC;QACnD;AACA,QAAA,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE;;AAG/B,QAAA,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAA,EAAG,IAAI,CAAC,UAAU,EAAE,CAAA,YAAA,CAAc,CAAC;AAEhE,QAAA,OAAO,MAAM;IACf;IAEA,MAAM,UAAU,CAAC,EAAU,EAAA;AACzB,QAAA,MAAM,GAAG,GAAG,MAAM,KAAK,CACrB,GAAG,IAAI,CAAC,UAAU,EAAE,eAAe,kBAAkB,CAAC,EAAE,CAAC,EAAE,EAC3D;AACE,YAAA,MAAM,EAAE,QAAQ;AACjB,SAAA,CACF;AACD,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE;AACX,YAAA,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE;AAC9B,YAAA,MAAM,IAAI,KAAK,CAAC,KAAK,IAAI,uBAAuB,CAAC;QACnD;;AAGA,QAAA,IAAI,CAAC,KAAK,CAAC,UAAU,CACnB,GAAG,IAAI,CAAC,UAAU,EAAE,eAAe,kBAAkB,CAAC,EAAE,CAAC,CAAA,CAAE,CAC5D;AACD,QAAA,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAA,EAAG,IAAI,CAAC,UAAU,EAAE,CAAA,YAAA,CAAc,CAAC;IAClE;AAEA,IAAA,MAAM,QAAQ,CACZ,EAAU,EACV,WAAmB,EAAA;AAEnB,QAAA,MAAM,GAAG,GAAG,MAAM,KAAK,CACrB,GAAG,IAAI,CAAC,UAAU,EAAE,eAAe,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAChE;AACE,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,CAAC;AACtC,SAAA,CACF;AACD,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE;AACX,YAAA,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE;AAC9B,YAAA,MAAM,IAAI,KAAK,CAAC,KAAK,IAAI,qBAAqB,CAAC;QACjD;AACA,QAAA,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE;;AAG/B,QAAA,IAAI,CAAC,KAAK,CAAC,UAAU,CACnB,GAAG,IAAI,CAAC,UAAU,EAAE,eAAe,kBAAkB,CAAC,EAAE,CAAC,CAAA,CAAE,CAC5D;AACD,QAAA,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAA,EAAG,IAAI,CAAC,UAAU,EAAE,CAAA,YAAA,CAAc,CAAC;AAEhE,QAAA,OAAO,MAAM;IACf;IAEA,MAAM,iBAAiB,CAAC,MAAc,EAAA;AACpC,QAAA,IAAI;;AAEF,YAAA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE;;AAGrC,YAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,EAAE,eAAe,EAAE,aAAa,EAAE,IAAI,CACpE,CAAC,IAAG;;AAEF,gBAAA,OAAO,MAAM,KAAK,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;AACvD,YAAA,CAAC,CACF;YAED,IAAI,QAAQ,IAAI,QAAQ,CAAC,SAAS,EAAE,IAAI,EAAE;;AAExC,gBAAA,MAAM,GAAG,GAAG,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,EAAG,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE;gBACvD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAEjC,GAAG,CAAC;;gBAGN,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;;AAG9D,gBAAA,IAAI,gBAAgB,GAAG,IAAI,CAAC;AAC5B,gBAAA,MAAM,eAAe,GAAG,QAAQ,CAAC,aAAa;AAE9C,gBAAA,IAAI,QAAQ,CAAC,SAAS,EAAE;AACtB,oBAAA,IAAI;wBACF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC;;AAEvD,wBAAA,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CACzD,CAAC,GAAG,IAAI,CAAC,KAAK,OAAO,CAAC,IAAI,EAAE,aAAa,CAAC,CAC3C;wBACD,IAAI,YAAY,EAAE;AAChB,4BAAA,gBAAgB,GAAG,YAAY,CAAC,CAAC,CAAC;wBACpC;;oBAEF;oBAAE,OAAO,CAAC,EAAE;;oBAEZ;gBACF;AAEA,gBAAA,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAc,KAAI;oBAClC,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;oBAC9D,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;oBAC5D,OAAO;wBACL,EAAE,EAAE,IAAI,CAAC,EAAE;AACX,wBAAA,KAAK,EAAE,WAAW,IAAI,UAAU,IAAI,IAAI,CAAC,EAAE;qBAC5C;AACH,gBAAA,CAAC,CAAC;YACJ;;AAGA,YAAA,MAAM,IAAI,KAAK,CAAC,+CAA+C,MAAM,CAAA,CAAE,CAAC;QAC1E;QAAE,OAAO,KAAK,EAAE;YACd,OAAO,CAAC,KAAK,CACX,4CAA4C,EAC5C,MAAM,EACN,KAAK,CACN;AACD,YAAA,OAAO,EAAE;QACX;IACF;AAEA;;AAEG;AAEH;;AAEG;IACH,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;IACpB;AAEA;;AAEG;AACH,IAAA,eAAe,CAAC,OAAe,EAAA;AAC7B,QAAA,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC;IACvC;AAEA;;AAEG;IACH,aAAa,GAAA;AAMX,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;IAC9B;AAEA;;AAEG;IACH,QAAQ,GAAA;QACN,OAAO,IAAI,CAAC,KAAK;IACnB;AACD;;;;"}
@@ -1,6 +1,7 @@
1
1
  import { PointerField } from './PointerField.js';
2
2
  import { MoveUserModal } from './MoveUserModal.js';
3
3
  import { hasRole, localizedText } from '../../shared/utils/schema.js';
4
+ import { listValues, changedAttributes } from '../../shared/utils/form.js';
4
5
 
5
6
  /**
6
7
  * LDAP User Editor - User Editor Component
@@ -81,6 +82,11 @@ class UserEditor {
81
82
  this.replacePlaceholders(this.schema);
82
83
  }
83
84
  this.formData = { ...this.user };
85
+ // One value comes as a scalar: as a list, it is shown and kept when a
86
+ // row is added
87
+ for (const [name, attr] of Object.entries(this.schema?.attributes ?? {}))
88
+ if (attr.type === 'array' && this.formData[name] !== undefined)
89
+ this.formData[name] = listValues(this.formData[name]);
84
90
  }
85
91
  replacePlaceholders(schema) {
86
92
  for (const attr of Object.values(schema.attributes)) {
@@ -466,7 +472,9 @@ class UserEditor {
466
472
  if (submitBtn)
467
473
  submitBtn.disabled = true;
468
474
  try {
469
- await this.api.updateUser(this.userDn, this.formData);
475
+ const replace = changedAttributes(this.user, this.formData);
476
+ if (Object.keys(replace).length)
477
+ await this.api.updateUser(this.userDn, replace);
470
478
  if (alertContainer) {
471
479
  alertContainer.innerHTML = `
472
480
  <div class="alert alert-success">
@@ -529,20 +537,22 @@ class UserEditor {
529
537
  }
530
538
  try {
531
539
  const result = await this.api.moveUser(this.userDn, targetOrgDn);
532
- if (alertContainer) {
533
- alertContainer.innerHTML = `
540
+ // Update the userDn if it changed
541
+ if (result.newDn) {
542
+ this.userDn = result.newDn;
543
+ }
544
+ // Reload the user data to show updated organization; it renders the
545
+ // container anew, so the message comes after
546
+ await this.init();
547
+ const alert = this.container.querySelector('#alert-container');
548
+ if (alert) {
549
+ alert.innerHTML = `
534
550
  <div class="alert alert-success">
535
551
  <span class="material-icons">check_circle</span>
536
552
  <div>User moved successfully!</div>
537
553
  </div>
538
554
  `;
539
555
  }
540
- // Update the userDn if it changed
541
- if (result.newDn) {
542
- this.userDn = result.newDn;
543
- }
544
- // Reload the user data to show updated organization
545
- await this.init();
546
556
  if (this.onSaved)
547
557
  this.onSaved();
548
558
  }
@@ -1 +1 @@
1
- {"version":3,"file":"UserEditor.js","sources":["../../../../../src/browser/ldap-user-editor/components/UserEditor.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"UserEditor.js","sources":["../../../../../src/browser/ldap-user-editor/components/UserEditor.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}