Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4679)

Unified Diff: chrome/browser/resources/chromeos/login/screen_gaia_signin.js

Issue 2519823006: Chromad: Add authentication flow (Closed)
Patch Set: Rename HandleAdAuth. Use system_api enums Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/resources/chromeos/login/screen_gaia_signin.js
diff --git a/chrome/browser/resources/chromeos/login/screen_gaia_signin.js b/chrome/browser/resources/chromeos/login/screen_gaia_signin.js
index 26376a71520fb37c331ad69cabf4d40b79b533d7..cc35df7c29076d2445e9c1c2e687e56aba8584a6 100644
--- a/chrome/browser/resources/chromeos/login/screen_gaia_signin.js
+++ b/chrome/browser/resources/chromeos/login/screen_gaia_signin.js
@@ -39,7 +39,8 @@ login.createScreen('GaiaSigninScreen', 'gaia-signin', function() {
var ScreenMode = {
DEFAULT: 0, // Default GAIA login flow.
OFFLINE: 1, // GAIA offline login.
- SAML_INTERSTITIAL: 2 // Interstitial page before SAML redirection.
+ SAML_INTERSTITIAL: 2, // Interstitial page before SAML redirection.
+ AD_AUTH: 3 // Offline Active Directory login flow.
};
return {
@@ -193,12 +194,25 @@ login.createScreen('GaiaSigninScreen', 'gaia-signin', function() {
'ready', this.onAuthReady_.bind(this));
var that = this;
- [this.gaiaAuthHost_, $('offline-gaia')].forEach(function(frame) {
+ [this.gaiaAuthHost_, $('offline-gaia'), $('offline-ad-auth')].
+ forEach(function(frame) {
// Ignore events from currently inactive frame.
var frameFilter = function(callback) {
return function(e) {
- var isEventOffline = frame === $('offline-gaia');
- if (isEventOffline === that.isOffline())
+ var currentFrame = null;
+ switch (that.screenMode_) {
+ case ScreenMode.DEFAULT:
+ case ScreenMode.SAML_INTERSTITIAL:
+ currentFrame = that.gaiaAuthHost_;
+ break;
+ case ScreenMode.OFFLINE:
+ currentFrame = $('offline-gaia');
+ break;
+ case ScreenMode.AD_AUTH:
+ currentFrame = $('offline-ad-auth');
+ break;
+ }
+ if (frame === currentFrame)
callback.call(that, e);
};
};
@@ -314,16 +328,25 @@ login.createScreen('GaiaSigninScreen', 'gaia-signin', function() {
$('signin-frame').hidden = false;
$('offline-gaia').hidden = true;
$('saml-interstitial').hidden = true;
+ $('offline-ad-auth').hidden = true;
break;
case ScreenMode.OFFLINE:
$('signin-frame').hidden = true;
$('offline-gaia').hidden = false;
$('saml-interstitial').hidden = true;
+ $('offline-ad-auth').hidden = true;
+ break;
+ case ScreenMode.AD_AUTH:
+ $('signin-frame').hidden = true;
+ $('offline-gaia').hidden = true;
+ $('saml-interstitial').hidden = true;
+ $('offline-ad-auth').hidden = false;
break;
case ScreenMode.SAML_INTERSTITIAL:
$('signin-frame').hidden = true;
$('offline-gaia').hidden = true;
$('saml-interstitial').hidden = false;
+ $('offline-ad-auth').hidden = true;
break;
}
@@ -531,6 +554,8 @@ login.createScreen('GaiaSigninScreen', 'gaia-signin', function() {
return $('signin-frame');
case ScreenMode.OFFLINE:
return $('offline-gaia');
+ case ScreenMode.AD_AUTH:
+ return $('offline-ad-auth');
case ScreenMode.SAML_INTERSTITIAL:
return $('saml-interstitial');
}
@@ -606,6 +631,10 @@ login.createScreen('GaiaSigninScreen', 'gaia-signin', function() {
this.loadOffline(params);
break;
+ case ScreenMode.AD_AUTH:
+ this.loadAdAuth(params);
+ break;
+
case ScreenMode.SAML_INTERSTITIAL:
$('saml-interstitial').domain = data.enterpriseDomain;
if (this.loading)
@@ -872,7 +901,12 @@ login.createScreen('GaiaSigninScreen', 'gaia-signin', function() {
* @private
*/
onAuthCompleted_: function(credentials) {
- if (credentials.useOffline) {
+ if (this.screenMode_ == ScreenMode.AD_AUTH) {
+ this.email = credentials.username;
+ chrome.send('completeAdAuthentication',
+ [credentials.username,
+ credentials.password]);
+ } else if (credentials.useOffline) {
this.email = credentials.email;
chrome.send('authenticateUser',
[credentials.email,
@@ -1048,6 +1082,17 @@ login.createScreen('GaiaSigninScreen', 'gaia-signin', function() {
this.onAuthReady_();
},
+ loadAdAuth: function(params) {
+ this.loading = true;
+ this.startLoadingTimer_();
+ var ADAuthUI = this.getSigninFrame_();
+ if ('realm' in params) {
+ ADAuthUI.realm = params['realm'];
+ ADAuthUI.userRealm = '@' + params['realm'];
+ }
+ this.onAuthReady_();
+ },
+
/**
* Show/Hide error when user is not in whitelist. When UI is hidden
* GAIA is reloaded.

Powered by Google App Engine
This is Rietveld 408576698