UNPKG

graphdb-workbench

Version:
2 lines 11.8 kB
export const __webpack_esm_id__=86294;export const __webpack_esm_ids__=[34684,47874,64358,84896,86294,87384];export const __webpack_esm_modules__={34684:(e,t,r)=>{r(34483),r(47874),r(96e3);var s=r(64358),o=r(98980),i=r(79947),a=r(87384);function l(e,t,r,l,n,c,u,d,p){e.contextValue=void 0;const h=[];e.ruleData={},e.loading=!1,e.namespaces=[],e.rulesModel=void 0,e.rulesModelCopy=void 0,e.selectedRule=void 0,e.editedRuleIndex=void 0,e.editedRuleScope=void 0,e.editedRuleCopy=void 0,e.isNewRule=!1,e.modelIsDirty=!1,e.dirtyScope=new Set,e.activeTabScope=a.g3.STATEMENT,e.ACL_SCOPE=a.g3,e.DEFAULT_CONTEXT_VALUES=a.pq,e.DEFAULT_CLEAR_GRAPH_CONTEXT_VALUES=a.iF,e.DEFAULT_URI_VALUES=a.KJ,e.rowHeights={},e.hasCustomPrefix=!1,e.isEditMode=()=>void 0===e.editedRuleIndex&&e.rulesModel&&e.modelIsDirty&&e.dirtyScope.size>0,e.addRule=(t,r)=>{e.rulesModel.addRule(t,r),e.showPrefixWarningIcon(!1),e.editedRuleIndex=r,e.editedRuleScope=t,e.isNewRule=!0,f(t)},e.editRule=(t,r)=>{e.editedRuleIndex=r,e.editedRuleScope=t,e.isNewRule=!1,e.editedRuleCopy=e.rulesModel.getRuleCopy(t,r),e.rulesModel.setPrefixWarningFlag(t,r),e.getRowHeight="height: "+e.rowHeights[e.editedRuleIndex],f(t)},e.deleteRule=(t,r)=>{u.openConfirmation(c.instant("common.confirm"),c.instant("acl_management.rulestable.messages.delete_rule_confirmation",{index:r+1}),()=>{e.rulesModel.removeRule(t,r),f(t)})},e.saveRule=t=>{e.rulesModel.setPrefixWarningFlag(e.editedRuleScope,e.editedRuleIndex),e.rulesModel.isRuleDuplicated(e.editedRuleScope,e.editedRuleIndex)?y():(e.editedRuleIndex=void 0,e.editedRuleScope=void 0,e.isNewRule=!1,f(t))},e.cancelEditing=(t,r)=>{e.isNewRule?(e.rulesModel.removeRule(t,r),e.isNewRule=!1):(e.rulesModel.replaceRule(t,r,e.editedRuleCopy),e.editedRuleCopy=void 0),e.rulesModel.setPrefixWarningFlag(t,r),e.editedRuleIndex=void 0,e.editedRuleScope=void 0,f(t)},e.moveUp=(t,r)=>{e.rulesModel.moveUp(t,r),f(t),e.modelIsDirty?e.selectedRule=r-1:e.selectedRule=void 0},e.moveDown=(t,r)=>{e.rulesModel.moveDown(t,r),f(t),e.modelIsDirty?e.selectedRule=r+1:e.selectedRule=void 0},e.saveAcl=()=>{e.loading=!0,_().then(g).catch(e=>{const t=getError(e);r.error(t,c.instant("acl_management.errors.updating_rules"))}).finally(()=>{e.loading=!1})},e.cancelAclSave=()=>{u.openConfirmation(c.instant("common.confirm"),c.instant("acl_management.rulestable.messages.revert_acl_list"),()=>{m(),r.success(c.instant("acl_management.rulestable.messages.rules_reverted"))})},e.switchTab=(t,r)=>{void 0===e.editedRuleIndex?(e.selectedRule=void 0,e.activeTabScope=r,e.ruleKeys=e.rulesModel.getRuleKeysByScope(e.activeTabScope)):t.preventDefault()},e.setDirty=function(e){f(e)},e.showPrefixWarningIcon=function(t){e.hasCustomPrefix=t},e.performSearchActionOnEnter=function(t,r,s){13===t.keyCode&&(t.stopPropagation(),t.preventDefault(),e.triggerValidation(s),s.$valid&&e.saveRule(r))},e.triggerValidation=function(e){angular.forEach(e,function(e){"object"==typeof e&&e.hasOwnProperty("$modelValue")&&e.$setTouched()})};const g=()=>{const t=v();return l.getAcl(t).then(t=>{e.rulesModel=(0,s.p)(t),e.rulesModelCopy=(0,s.p)(t),R()}).catch(e=>{const t=getError(e);r.error(t,c.instant("acl_management.errors.loading_rules"))})},_=()=>{const t=v();return l.updateAcl(t,e.rulesModel.toJSON()).then(()=>{r.success(c.instant("acl_management.rulestable.messages.rules_updated"))})},m=()=>{v()&&(e.loading=!0,g().finally(()=>{e.loading=!1}))},R=()=>{e.selectedRule=void 0,e.editedRuleIndex=void 0,e.editedRuleScope=void 0,e.modelIsDirty=!1,e.editedRuleCopy=void 0,e.dirtyScope.clear()},f=t=>{(0,o.isEqual)(e.rulesModel.getRulesByScope(t),e.rulesModelCopy.getRulesByScope(t))?e.dirtyScope.delete(t):e.dirtyScope.add(t),e.modelIsDirty=e.dirtyScope.size>0},v=()=>n.getActiveRepository(),y=()=>{r.error(c.instant("acl_management.errors.duplicated_rules"))},S=t=>{e.modelIsDirty&&(t.returnValue=!0)},w=()=>{window.removeEventListener("beforeunload",S),h.forEach(e=>e())};n.getActiveRepository()&&d.getNamespaces(n.getActiveRepository()).then(i.Sv).then(t=>{e.namespaces=t}).catch(e=>{const t=getError(e);r.error(t,c.instant("error.getting.namespaces.for.repo"))}),h.push(p.onAutocompleteEnabledUpdated(t=>{e.isAutocompleteEnabled=t})),h.push(e.$watch(v,()=>{R(),m()})),h.push(e.$on("$locationChangeStart",(r,s)=>{e.modelIsDirty&&(r.preventDefault(),u.openSimpleModal({title:c.instant("common.confirm"),message:c.instant("acl_management.rulestable.messages.unsaved_changes_confirmation"),warning:!0}).result.then(function(){w();const e=t.absUrl().length-t.url().length,r=s.substring(e);t.path(r)},function(){}))})),h.push(e.$on("$destroy",w)),window.addEventListener("beforeunload",S)}angular.module("graphdb.framework.aclmanagement.controllers",["graphdb.framework.rest.plugins.service","graphdb.framework.rest.aclmanagement.service","graphdb.core.services.workbench-context"]).controller("AclManagementCtrl",l),l.$inject=["$scope","$location","toastr","AclManagementRestService","$repositories","$translate","ModalService","RDF4JRepositoriesRestService","WorkbenchContextService"]},47874:()=>{angular.module("graphdb.framework.rest.aclmanagement.service",[]).factory("AclManagementRestService",t),t.$inject=["$http"];const e="rest/repositories";function t(t){return{getAcl:function(r){return t.get(`${e}/${r}/acl`)},updateAcl:function(r,s){return t.put(`${e}/${r}/acl`,s)}}}},64358:(e,t,r)=>{r.d(t,{p:()=>o});var s=r(87384);const o=e=>{const t=new s.CT;return e&&e.data&&e.data.forEach(e=>{t.appendNewRule(e.scope,e.policy,e.role,e.operation,e.subject,e.predicate,e.object,e.context,e.plugin)}),t}},84896:()=>{angular.module("graphdb.framework.aclmanagement.directives",[]).directive("customRoleHandler",function(){return{restrict:"A",require:"ngModel",link:function(e,t,r,s){const o="CUSTOM_",i="!CUSTOM_",a=[];function l(e,t){if(!e||"*"===e)return e;const r=e.startsWith("!"),s=r?i:o;return t?s+e.replace(/^!/,""):r?"!"+e.replace(s,""):e.replace(s,"")}s.$parsers.push(function(e){var t;return s.$warning=!!(e&&(t=e,t.toUpperCase().startsWith(o)||t.toUpperCase().startsWith(i))),e}),s.$formatters.push(function(e){return l(e,!1)}),s.$parsers.push(function(e){return l(e,!0)}),s.$validators.customRoleValidator=function(e){if(!e)return!0;const t=e.replace(/^(!CUSTOM_|CUSTOM_)/,"");return"*"===t||t.length>=2},a.push(e.$on("$destroy",()=>{a.forEach(e=>e())}))}}})},86294:(e,t,r)=>{r(82493),r(5687),r(60116),r(46591),r(34684),r(76933),r(84896),angular.module("graphdb.framework.aclmanagement",["ui.bootstrap","toastr","ngCookies","ngRoute","graphdb.framework.aclmanagement.directives","graphdb.framework.aclmanagement.controllers","graphdb.framework.core.services.repositories","graphdb.framework.core.directives","graphdb.framework.core.controllers"])},87384:(e,t,r)=>{r.d(t,{CT:()=>o,KJ:()=>m,g3:()=>h,iF:()=>_,pq:()=>g});var s=r(98980);class o{constructor(e=[]){this._aclRules=new Map,e.forEach(e=>{const t=e.scope;this._aclRules.has(t)||this._aclRules.set(t,[]),this._aclRules.get(t).push(e)})}size(e){return this._aclRules.get(e)&&this._aclRules.get(e).length}appendNewRule(e,t,r,s,o,i,a,l,n){const c=u.createRule(e,t,r,s,o,i,a,l,n);this._aclRules.has(e)||this._aclRules.set(e,[]),c.checkCustomOrNegatedPrefix(),this._aclRules.get(e).push(c)}addRule(e,t){const r=this._aclRules.get(e);r?r.splice(t,0,u.createRule(e)):this._aclRules.set(e,[u.createRule(e)])}removeRule(e,t){const r=this._aclRules.get(e);r&&r.splice(t,1)}replaceRule(e,t,r){const s=this._aclRules.get(e);s&&s.splice(t,1,r)}getRule(e,t){const r=this._aclRules.get(e);return r?r[t]:null}isRuleDuplicated(e,t){const r=this.getRule(e,t);return!!r&&this._aclRules.get(e).some((e,o)=>o!==t&&(0,s.isEqual)(r,e))}setPrefixWarningFlag(e,t){const r=this.getRule(e,t);r&&r.checkCustomOrNegatedPrefix()}getRuleCopy(e,t){const r=this.getRule(e,t);return u.createRule(r.scope,r.policy,r.role,r.operation,r.subject,r.predicate,r.object,r.context,r.plugin)}moveUp(e,t){const r=this._aclRules.get(e),s=r[t-1];r[t-1]=r[t],r[t]=s}moveDown(e,t){const r=this._aclRules.get(e),s=r[t+1];r[t+1]=r[t],r[t]=s}toJSON(){const e=[];return this._aclRules.forEach(t=>{t.forEach(t=>e.push(t.toJSON()))}),e}get aclRules(){return this._aclRules}set aclRules(e){this._aclRules=e}getRulesByScope(e){return this._aclRules.get(e)||[]}getRuleKeysByScope(e){return Object.keys(this.getRulesByScope(e)[0]||{})}}class i{constructor(e,t,r=d.ALLOW){this._scope=e,this._role=t,this._policy=r}get scope(){return this._scope}set scope(e){this._scope=e}get roleWithoutCustomPrefix(){return this._role.startsWith("!")?this._role.replace("CUSTOM_"," "):this._role.replace("CUSTOM_","")}get role(){return this._role}set role(e){this._role=e}get policy(){return this._policy}set policy(e){this._policy=e}get warnForPrefix(){return this._warnForPrefix}checkCustomOrNegatedPrefix(){this._warnForPrefix=this.role.startsWith("CUSTOM_CUSTOM_")||this.role.startsWith("!CUSTOM_CUSTOM_")}toJSON(){}}class a extends i{constructor(e,t,r,s,o,i,a){super(h.STATEMENT,e,t),this._subject=r||"*",this._predicate=s||"*",this._object=o||"*",this._context=i||"*",this._operation=a||p.ALL}get subject(){return this._subject}set subject(e){this._subject=e}get predicate(){return this._predicate}set predicate(e){this._predicate=e}get object(){return this._object}set object(e){this._object=e}get context(){return this._context}set context(e){this._context=e}get operation(){return this._operation}set operation(e){this._operation=e}toJSON(){return{scope:this.scope,policy:this.policy,role:this.role,operation:this.operation,subject:this.subject,predicate:this.predicate,object:this.object,context:this.context,warnForPrefix:this.warnForPrefix}}}class l extends i{constructor(e,t,r,s){super(h.PLUGIN,e,t),this._plugin=r||"*",this._operation=s||p.ALL}get plugin(){return this._plugin}set plugin(e){this._plugin=e}get operation(){return this._operation}set operation(e){this._operation=e}toJSON(){return{scope:this.scope,policy:this.policy,role:this.role,operation:this.operation,plugin:this.plugin,warnForPrefix:this.warnForPrefix}}}class n extends i{constructor(e,t,r,s){super(h.CLEAR_GRAPH,e,t),this._context=r||"*",this._defaultResults=s||["*","default","custom"]}get context(){return this._context}set context(e){this._context=e}get defaultResults(){return this._defaultResults}set defaultResults(e){this._defaultResults=e}toJSON(){return{scope:this.scope,policy:this.policy,role:this.role,context:this.context,warnForPrefix:this.warnForPrefix}}}class c extends i{constructor(e,t,r){super(h.SYSTEM,e,t),this._operation=r||p.ALL}get operation(){return this._operation}set operation(e){this._operation=e}toJSON(){return{scope:this.scope,policy:this.policy,role:this.role,operation:this.operation,warnForPrefix:this.warnForPrefix}}}class u{static createRule(e,t,r,s,o,i,u,d,p){switch(e){case h.STATEMENT:return new a(r,t,o,i,u,d,s);case h.PLUGIN:return new l(r,t,p,s);case h.CLEAR_GRAPH:return new n(r,t,d);case h.SYSTEM:return new c(r,t,s);default:throw new Error("Invalid scope: "+e+" provided")}}}const d={ALLOW:"allow",DENY:"deny"},p={READ:"read",WRITE:"write",ALL:"*"},h={STATEMENT:"statement",CLEAR_GRAPH:"clear_graph",PLUGIN:"plugin",SYSTEM:"system"},g=[{type:"default",value:"*",description:"acl_management.defaults.asterisk"},{type:"default",value:"default",description:"acl_management.defaults.default"},{type:"default",value:"named",description:"acl_management.defaults.named"}],_=[{type:"default",value:"*",description:"acl_management.defaults.asterisk"},{type:"default",value:"all",description:"acl_management.defaults.all"},{type:"default",value:"default",description:"acl_management.defaults.default"},{type:"default",value:"named",description:"acl_management.defaults.named"}],m=[{type:"default",value:"*",description:"acl_management.defaults.asterisk"}]}}; //# sourceMappingURL=86294.e24bd048953c13852525.bundle.js.map