-
Notifications
You must be signed in to change notification settings - Fork 530
/
annotator.annotateitpermissions.min.js
1 lines (1 loc) · 2.6 KB
/
annotator.annotateitpermissions.min.js
1
((function(){var a=function(a,b){return function(){return a.apply(b,arguments)}},b=Object.prototype.hasOwnProperty,c=function(a,c){function e(){this.constructor=a}for(var d in c)b.call(c,d)&&(a[d]=c[d]);return e.prototype=c.prototype,a.prototype=new e,a.__super__=c.prototype,a},d=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;b<c;b++)if(b in this&&this[b]===a)return b;return-1};Annotator.Plugin.AnnotateItPermissions=function(b){function e(b,c){this._setAuthFromToken=a(this._setAuthFromToken,this),this.updateAnnotationPermissions=a(this.updateAnnotationPermissions,this),this.updatePermissionsField=a(this.updatePermissionsField,this),this.addFieldsToAnnotation=a(this.addFieldsToAnnotation,this),e.__super__.constructor.apply(this,arguments),this.options.consumer&&(this.setConsumer(this.options.consumer),delete this.options.consumer)}return c(e,b),e.prototype.options={showViewPermissionsCheckbox:!0,showEditPermissionsCheckbox:!0,groups:{world:"group:__world__",authenticated:"group:__authenticated__",consumer:"group:__consumer__"},userString:function(a){return a},userAuthorize:function(a,b,c,e){var f,g,h,i,j,k;return g=b.permissions||{},f=g[a]||[],!c||!e?(h=this.groups.world,d.call(f,h)>=0):(i=this.groups.world,d.call(f,i)>=0)?!0:c===b.user&&e===b.consumer?!0:(j=this.groups.authenticated,d.call(f,j)>=0)?!0:e===b.consumer&&(k=this.groups.consumer,d.call(f,k)>=0)?!0:e===b.consumer&&d.call(f,c)>=0?!0:!1},user:"",consumer:"annotateit",permissions:{read:["group:__world__"],update:[],"delete":[],admin:[]}},e.prototype.setConsumer=function(a){return this.consumer=a},e.prototype.authorize=function(a,b,c,d){return c===void 0&&(c=this.user),d===void 0&&(d=this.consumer),this.options.userAuthorize?this.options.userAuthorize.call(this.options,a,b,c,d):!0},e.prototype.addFieldsToAnnotation=function(a){e.__super__.addFieldsToAnnotation.apply(this,arguments);if(a&&this.consumer)return a.consumer=this.consumer},e.prototype.updatePermissionsField=function(a,b,c){var d;return b=$(b).show(),d=b.find("input").removeAttr("disabled"),this.authorize("admin",c)||b.hide(),this.authorize(a,c||{},"__nonexistentuser__")?d.attr("checked","checked"):d.removeAttr("checked")},e.prototype.updateAnnotationPermissions=function(a,b,c){var d;return c.permissions||(c.permissions=this.options.permissions),d=a+"-permissions",$(b).find("input").is(":checked")?c.permissions[a]=[a==="read"?this.options.groups.world:this.options.groups.consumer]:c.permissions[a]=[]},e.prototype._setAuthFromToken=function(a){return e.__super__._setAuthFromToken.apply(this,arguments),this.setConsumer(a.consumerKey)},e}(Annotator.Plugin.Permissions)})).call(this);