!function(){"use strict";angular.module("access-admin",["ngSanitize","ui.select"]);var a=angular.module("pine-admin")?"pine-admin":"pine-access";angular.module(a).run(["$rootScope","$modal",function(a,b){var c=a.pineCommands;c&&(c.permissions={label:"Permissions",weight:10,group:"aspects",run:function(a){b.open({templateUrl:"/ng-templates/pine-access/perms-modal.html",controller:"access_EditCtrl",scope:a,resolve:{resource:function(){return a.copy}}})}})}]).controller("access_EditCtrl",["$scope","$http","resource","pineResource",function(a,b,c,d){function e(a){var b,c,d={};for(var e in a)b=a[e].filter(function(a){return 0===a.indexOf("u:")}).map(function(a){return{code:a.replace("u:",""),name:a.replace("u:","")}}),c=a[e].filter(function(a){return 0===a.indexOf("g:")}).map(function(a){return{code:a.replace("g:",""),name:a.replace("g:","")}}),d[e]={users:b,groups:c};return d}var f={edit:{label:"Edit",run:function(){a.permEdit=e(a.copy._perms),a.state="edit",a.actions=[f.view,f.apply],a.toAdd={r:{},w:{},d:{},ls:{},c:{}}}},view:{label:"Cancel",run:function(){delete a.permEdit,a.state="view",a.actions=[f.edit]}},apply:{label:"Apply",run:function(){var c,e=a.permEdit,g={};for(var h in e)e[h].all?g[h]=["*"]:(c=e[h].groups.map(function(a){return"g:"+a.code}),c=c.concat(e[h].users.map(function(a){return"u:"+a._id})),g[h]=c);var i=d(a.spec),j=i.resourceId(a.copy),k=i.href(j);b.put(k,{_perms:g}).success(function(b){console.log("chmod success",b),a.copy._perms=g,f.view.run()}).error(function(){console.error("chmod error"),console.error(arguments)})}}};a.labels={r:"View",w:"Edit",d:"Remove",ls:"Query",c:"Add"},a.groups=function(a,c){return b.get("/user-groups?qt=search&term="+a).then(function(b){console.log("codeNotIn",a,c,b);var d=c.map(function(a){return a.code});return b.data.filter(function(a){return d.indexOf(a.code)===-1})})},a.users=function(a){return b.get("/users?qt=search&term="+a).then(function(a){return a.data})},a.add=function(b,c,d){console.log("$scope.toAdd",a.toAdd),a.toAdd[b]&&a.toAdd[b][c]&&null!==a.toAdd[b][c]&&(d.push(a.toAdd[b][c]),delete a.toAdd[b][c])},a.gRemove=function(b,c){var d=a.permEdit[c].groups;"[object Array]"===Object.prototype.toString.apply(d)&&(a.permEdit[c].groups=d.filter(function(a){return a.code!=b.code}))},a.uRemove=function(b,c){console.log("$scope.permEdit[op]",a.permEdit[c],b);var d=a.permEdit[c].users;"[object Array]"===Object.prototype.toString.apply(d)&&(a.permEdit[c].users=d.filter(function(a){return a.uid!=b.uid}))},f.view.run()}])}();