identity
Version:
Identity client
66 lines (52 loc) • 1.7 kB
JavaScript
exports.definition = {
mixinCallback: function(){
this.scope('withAccessToken', function(token){
if(token){
var tmp = this.temporaryDefinition();
tmp.beforeFind(function(options){
options.params.access_token = token;
});
tmp.beforeSave(function(record, options){
options.params.access_token = token;
});
tmp.beforeDestroy(function(record, options){
options.params.access_token = token;
});
}
});
this.scope('asApplication', function(on_application, force){
if(!this.definition.temporary || force === true){
this.temporaryDefinition().asApplication(on_application);
}
});
this.defaultScope('asApplication');
},
asApplication: function(on_application){
var api = this.store.config.actionhero;
var application = api.identity.application(on_application || 'identity');
this.beforeFind(function(options, next){
application.getAccessToken(function(app){
if(app){
options.params.access_token = app.access_token;
}
next();
});
});
this.beforeSave(function(record, options, next){
application.getAccessToken(function(app){
if(app){
options.params.access_token = app.access_token;
}
next();
});
});
this.beforeDestroy(function(record, options, next){
application.getAccessToken(function(app){
if(app){
options.params.access_token = app.access_token;
}
next();
});
});
}
}