});
}
- login(args: AuthLoginArgs, isOpChange?: boolean): Promise<void> {
- return this.net.request('open-ils.auth', 'open-ils.auth.login', args)
+ loginApi(args: AuthLoginArgs, service: string,
+ method: string, isOpChange?: boolean): Promise<void> {
+
+ return this.net.request(service, method, args)
.toPromise().then(res => {
return this.handleLoginResponse(
args, this.egEvt.parse(res), isOpChange);
});
}
+ login(args: AuthLoginArgs, isOpChange?: boolean): Promise<void> {
+ let service = 'open-ils.auth';
+ let method = 'open-ils.auth.login';
+
+ return this.net.request(
+ 'open-ils.auth_proxy',
+ 'open-ils.auth_proxy.enabled')
+ .toPromise().then(
+ enabled => {
+ if (Number(enabled) === 1) {
+ service = 'open-ils.auth_proxy';
+ method = 'open-ils.auth_proxy.login';
+ }
+ return this.loginApi(args, service, method, isOpChange);
+ },
+ error => {
+ // auth_proxy check resulted in a low-level error.
+ // Likely the service is not running. Fall back to
+ // standard auth login.
+ return this.loginApi(args, service, method, isOpChange);
+ }
+ );
+ }
+
handleLoginResponse(
args: AuthLoginArgs, evt: EgEvent, isOpChange: boolean): Promise<void> {