mirror of
https://github.com/LaCasemate/fab-manager.git
synced 2025-02-13 07:54:16 +01:00
34 lines
1.1 KiB
JavaScript
34 lines
1.1 KiB
JavaScript
devise.provider('AuthIntercept', function AuthInterceptProvider() {
|
|
/**
|
|
* Set to true to intercept 401 Unauthorized responses
|
|
*/
|
|
var interceptAuth = false;
|
|
|
|
// The interceptAuth config function
|
|
this.interceptAuth = function(value) {
|
|
interceptAuth = !!value || value === void 0;
|
|
return this;
|
|
};
|
|
|
|
this.$get = function($rootScope, $q) {
|
|
// Only for intercepting 401 requests.
|
|
return {
|
|
responseError: function(response) {
|
|
// Determine if the response is specifically disabling the interceptor.
|
|
var intercept = response.config.interceptAuth;
|
|
intercept = !!intercept || (interceptAuth && intercept === void 0);
|
|
|
|
if (intercept && response.status === 401) {
|
|
var deferred = $q.defer();
|
|
$rootScope.$broadcast('devise:unauthorized', response, deferred);
|
|
return deferred.promise;
|
|
}
|
|
|
|
return $q.reject(response);
|
|
}
|
|
};
|
|
};
|
|
}).config(function($httpProvider) {
|
|
$httpProvider.interceptors.push('AuthIntercept');
|
|
});
|