File: addon/mixins/osf-agnostic-auth-controller.js
import Ember from 'ember';
import config from 'ember-get-config';
import OsfTokenLoginController from '../mixins/osf-token-login-controller';
import OsfCookieLoginController from '../mixins/osf-cookie-login-controller';
/**
* @module ember-osf
* @submodule mixins
*/
var AuthMixin;
let authType = config.authorizationType;
if (authType === 'token') {
AuthMixin = OsfTokenLoginController;
} else if (authType === 'cookie') {
AuthMixin = OsfCookieLoginController;
} else {
throw new Ember.Error(`Unrecognized authorization type: ${authType}`);
}
/**
* Controller mixin for authentication-agnostic login: defines the application at runtime to use the authentication method
* specified in environment config. Intended to be used in tandem with OsfAuthController mixin.
* Some authentication methods (eg cookies) are not available to third-party applications.
* This has limited use, since most applications will only need to support one method. It may be useful for ember apps
* that run inside the OSF, eg to use the standalone dev server, or to offer support for branded apps
* on third-party domains.
*
* @class OsfAgnosticAuthController
* @extends Ember.Mixin
* @uses ember-osf/OsfCookieLoginController
* @uses ember-osf/OsfTokenLoginController
*/
export default AuthMixin;