UNPKG

graphdb-workbench

Version:
2 lines 11 kB
export const __webpack_id__=34684;export const __webpack_ids__=[34684,47874,64358,87384];export const __webpack_modules__={34684:(e,t,s)=>{s.r(t),s(34483),s(47874),s(96e3);var o=s(64358),r=s(98980),l=s(79947),i=s(87384);function a(e,t,s,a,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=i.ACL_SCOPE.STATEMENT,e.ACL_SCOPE=i.ACL_SCOPE,e.DEFAULT_CONTEXT_VALUES=i.DEFAULT_CONTEXT_VALUES,e.DEFAULT_CLEAR_GRAPH_CONTEXT_VALUES=i.DEFAULT_CLEAR_GRAPH_CONTEXT_VALUES,e.DEFAULT_URI_VALUES=i.DEFAULT_URI_VALUES,e.rowHeights={},e.hasCustomPrefix=!1,e.isEditMode=()=>void 0===e.editedRuleIndex&&e.rulesModel&&e.modelIsDirty&&e.dirtyScope.size>0,e.addRule=(t,s)=>{e.rulesModel.addRule(t,s),e.showPrefixWarningIcon(!1),e.editedRuleIndex=s,e.editedRuleScope=t,e.isNewRule=!0,f(t)},e.editRule=(t,s)=>{e.editedRuleIndex=s,e.editedRuleScope=t,e.isNewRule=!1,e.editedRuleCopy=e.rulesModel.getRuleCopy(t,s),e.rulesModel.setPrefixWarningFlag(t,s),e.getRowHeight="height: "+e.rowHeights[e.editedRuleIndex],f(t)},e.deleteRule=(t,s)=>{u.openConfirmation(c.instant("common.confirm"),c.instant("acl_management.rulestable.messages.delete_rule_confirmation",{index:s+1}),()=>{e.rulesModel.removeRule(t,s),f(t)})},e.saveRule=t=>{e.rulesModel.setPrefixWarningFlag(e.editedRuleScope,e.editedRuleIndex),e.rulesModel.isRuleDuplicated(e.editedRuleScope,e.editedRuleIndex)?v():(e.editedRuleIndex=void 0,e.editedRuleScope=void 0,e.isNewRule=!1,f(t))},e.cancelEditing=(t,s)=>{e.isNewRule?(e.rulesModel.removeRule(t,s),e.isNewRule=!1):(e.rulesModel.replaceRule(t,s,e.editedRuleCopy),e.editedRuleCopy=void 0),e.rulesModel.setPrefixWarningFlag(t,s),e.editedRuleIndex=void 0,e.editedRuleScope=void 0,f(t)},e.moveUp=(t,s)=>{e.rulesModel.moveUp(t,s),f(t),e.modelIsDirty?e.selectedRule=s-1:e.selectedRule=void 0},e.moveDown=(t,s)=>{e.rulesModel.moveDown(t,s),f(t),e.modelIsDirty?e.selectedRule=s+1:e.selectedRule=void 0},e.saveAcl=()=>{e.loading=!0,g().then(_).catch(e=>{const t=getError(e);s.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"),()=>{R(),s.success(c.instant("acl_management.rulestable.messages.rules_reverted"))})},e.switchTab=(t,s)=>{void 0===e.editedRuleIndex?(e.selectedRule=void 0,e.activeTabScope=s,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,s,o){13===t.keyCode&&(t.stopPropagation(),t.preventDefault(),e.triggerValidation(o),o.$valid&&e.saveRule(s))},e.triggerValidation=function(e){angular.forEach(e,function(e){"object"==typeof e&&e.hasOwnProperty("$modelValue")&&e.$setTouched()})};const _=()=>{const t=A();return a.getAcl(t).then(t=>{e.rulesModel=(0,o.mapAclRulesResponse)(t),e.rulesModelCopy=(0,o.mapAclRulesResponse)(t),m()}).catch(e=>{const t=getError(e);s.error(t,c.instant("acl_management.errors.loading_rules"))})},g=()=>{const t=A();return a.updateAcl(t,e.rulesModel.toJSON()).then(()=>{s.success(c.instant("acl_management.rulestable.messages.rules_updated"))})},R=()=>{A()&&(e.loading=!0,_().finally(()=>{e.loading=!1}))},m=()=>{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,r.isEqual)(e.rulesModel.getRulesByScope(t),e.rulesModelCopy.getRulesByScope(t))?e.dirtyScope.delete(t):e.dirtyScope.add(t),e.modelIsDirty=e.dirtyScope.size>0},A=()=>n.getActiveRepository(),v=()=>{s.error(c.instant("acl_management.errors.duplicated_rules"))},S=t=>{e.modelIsDirty&&(t.returnValue=!0)},y=()=>{window.removeEventListener("beforeunload",S),h.forEach(e=>e())};n.getActiveRepository()&&d.getNamespaces(n.getActiveRepository()).then(l.mapNamespacesResponse).then(t=>{e.namespaces=t}).catch(e=>{const t=getError(e);s.error(t,c.instant("error.getting.namespaces.for.repo"))}),h.push(p.onAutocompleteEnabledUpdated(t=>{e.isAutocompleteEnabled=t})),h.push(e.$watch(A,()=>{m(),R()})),h.push(e.$on("$locationChangeStart",(s,o)=>{e.modelIsDirty&&(s.preventDefault(),u.openSimpleModal({title:c.instant("common.confirm"),message:c.instant("acl_management.rulestable.messages.unsaved_changes_confirmation"),warning:!0}).result.then(function(){y();const e=t.absUrl().length-t.url().length,s=o.substring(e);t.path(s)},function(){}))})),h.push(e.$on("$destroy",y)),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",a),a.$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(s){return t.get(`${e}/${s}/acl`)},updateAcl:function(s,o){return t.put(`${e}/${s}/acl`,o)}}}},64358:(e,t,s)=>{s.r(t),s.d(t,{mapAclRulesResponse:()=>r});var o=s(87384);const r=e=>{const t=new o.ACListModel;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}},87384:(e,t,s)=>{s.r(t),s.d(t,{ACL_OPERATION:()=>p,ACL_POLICY:()=>d,ACL_SCOPE:()=>h,ACListModel:()=>r,ACRuleModel:()=>l,ClearGraphACRuleModel:()=>n,DEFAULT_CLEAR_GRAPH_CONTEXT_VALUES:()=>g,DEFAULT_CONTEXT_VALUES:()=>_,DEFAULT_URI_VALUES:()=>R,PluginACRuleModel:()=>a,StatementACRuleModel:()=>i,SystemACRuleModel:()=>c});var o=s(98980);class r{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,s,o,r,l,i,a,n){const c=u.createRule(e,t,s,o,r,l,i,a,n);this._aclRules.has(e)||this._aclRules.set(e,[]),c.checkCustomOrNegatedPrefix(),this._aclRules.get(e).push(c)}addRule(e,t){const s=this._aclRules.get(e);s?s.splice(t,0,u.createRule(e)):this._aclRules.set(e,[u.createRule(e)])}removeRule(e,t){const s=this._aclRules.get(e);s&&s.splice(t,1)}replaceRule(e,t,s){const o=this._aclRules.get(e);o&&o.splice(t,1,s)}getRule(e,t){const s=this._aclRules.get(e);return s?s[t]:null}isRuleDuplicated(e,t){const s=this.getRule(e,t);return!!s&&this._aclRules.get(e).some((e,r)=>r!==t&&(0,o.isEqual)(s,e))}setPrefixWarningFlag(e,t){const s=this.getRule(e,t);s&&s.checkCustomOrNegatedPrefix()}getRuleCopy(e,t){const s=this.getRule(e,t);return u.createRule(s.scope,s.policy,s.role,s.operation,s.subject,s.predicate,s.object,s.context,s.plugin)}moveUp(e,t){const s=this._aclRules.get(e),o=s[t-1];s[t-1]=s[t],s[t]=o}moveDown(e,t){const s=this._aclRules.get(e),o=s[t+1];s[t+1]=s[t],s[t]=o}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 l{constructor(e,t,s=d.ALLOW){this._scope=e,this._role=t,this._policy=s}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 i extends l{constructor(e,t,s,o,r,l,i){super(h.STATEMENT,e,t),this._subject=s||"*",this._predicate=o||"*",this._object=r||"*",this._context=l||"*",this._operation=i||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 a extends l{constructor(e,t,s,o){super(h.PLUGIN,e,t),this._plugin=s||"*",this._operation=o||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 l{constructor(e,t,s,o){super(h.CLEAR_GRAPH,e,t),this._context=s||"*",this._defaultResults=o||["*","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 l{constructor(e,t,s){super(h.SYSTEM,e,t),this._operation=s||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,s,o,r,l,u,d,p){switch(e){case h.STATEMENT:return new i(s,t,r,l,u,d,o);case h.PLUGIN:return new a(s,t,p,o);case h.CLEAR_GRAPH:return new n(s,t,d);case h.SYSTEM:return new c(s,t,o);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"},_=[{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"}],g=[{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"}],R=[{type:"default",value:"*",description:"acl_management.defaults.asterisk"}]}}; //# sourceMappingURL=34684.42ce2a55c00585d51110.bundle.js.map