From bf74e196a8c1b8a940ab8e3d369f3c0932b1123a Mon Sep 17 00:00:00 2001 From: Leonardo Merlin Date: Thu, 10 Sep 2015 14:16:20 -0300 Subject: [PATCH] Prepare to oauth --- gulp/scripts.js | 10 +++++----- src/app/index.run.js | 33 +++++++++++++++++++++++++++++++++ src/app/pages/auth/auth.controller.js | 29 ++++++++++++++++++++++++++++- src/app/pages/auth/signin.html | 8 ++++---- 4 files changed, 70 insertions(+), 10 deletions(-) diff --git a/gulp/scripts.js b/gulp/scripts.js index bf43786..f0b9b2f 100644 --- a/gulp/scripts.js +++ b/gulp/scripts.js @@ -9,9 +9,9 @@ var browserSync = require('browser-sync'); var $ = require('gulp-load-plugins')(); gulp.task('scripts', function () { - return gulp.src(path.join(conf.paths.src, '/app/**/*.js')) - .pipe($.jshint()) - .pipe($.jshint.reporter('jshint-stylish')) - .pipe(browserSync.reload({ stream: true })) - .pipe($.size()); + return gulp.src(path.join(conf.paths.src, '/app/**/*.js')) + .pipe($.jshint()) + .pipe($.jshint.reporter('jshint-stylish')) + .pipe(browserSync.reload({ stream: true })) + .pipe($.size()); }); diff --git a/src/app/index.run.js b/src/app/index.run.js index 394e620..04a4372 100644 --- a/src/app/index.run.js +++ b/src/app/index.run.js @@ -5,6 +5,7 @@ angular .module('dialoga') .run(runAuth) + .run(runSocialAuth) .run(runAccessibility) .run(runHistory) .run(runPath) @@ -44,6 +45,38 @@ } /** @ngInject */ + function runSocialAuth($window, $rootScope, $interval, $log) { + + $window.oauthClientAction = function (url){ + var child = $window.open(url, '_blank'); + var interval = $interval(function() { + try { + if(!child.closed) { + child.postMessage({ + message: 'requestOauthClientPluginResult' + }, '*'); + } + } catch(e) { + // we're here when the child window has been navigated away or closed + if (child.closed) { + $interval.cancel(interval); + interval = undefined; + } + } + }, 300); + }; + + $window.addEventListener('message', function(eventMessage) { + $log.debug('eventMessage', eventMessage); + + if (eventMessage.data.message === 'oauthClientPluginResult') { + $rootScope.$broadcast('oauthClientPluginResult', eventMessage); + // eventMessage.source.close(); + } + }); + } + + /** @ngInject */ function runAccessibility($rootScope, $timeout, $cookies, $log) { var contrast = $cookies.get('dialoga_contraste') === 'true'; diff --git a/src/app/pages/auth/auth.controller.js b/src/app/pages/auth/auth.controller.js index 1aead7d..5f6a928 100644 --- a/src/app/pages/auth/auth.controller.js +++ b/src/app/pages/auth/auth.controller.js @@ -6,11 +6,12 @@ .controller('AuthPageController', AuthPageController); /** @ngInject */ - function AuthPageController($scope, $rootScope, $location, $state, $timeout, AUTH_EVENTS, AuthService, DialogaService, Session, $log) { + function AuthPageController($scope, $rootScope, $window, $location, $state, $timeout, AUTH_EVENTS, AuthService, DialogaService, Session, $log) { var vm = this; vm.$scope = $scope; vm.$rootScope = $rootScope; + vm.$window = $window; vm.$location = $location; vm.$state = $state; vm.$timeout = $timeout; @@ -22,6 +23,7 @@ vm.init(); vm.loadData(); + vm.attachListeners(); vm.$log.debug('AuthPageController'); } @@ -73,6 +75,18 @@ }); }; + AuthPageController.prototype.attachListeners = function () { + var vm = this; + + vm.$scope.$on('oauthClientPluginResult', function(event, response){ + vm.$log.debug('response', response); + + // var logged_id = response.data.logged_id; + // var private_token = response.data.private_token; + // var user = response.data.user; + + }); + }; AuthPageController.prototype.onClickLogout = function (){ var vm = this; @@ -154,4 +168,17 @@ } }, vm.delay * 1000); }; + + AuthPageController.prototype.authWithFacebook = function(){ + var vm = this; + var url = 'http://login.dialoga.gov.br/plugin/oauth_client/facebook?oauth_client_popup=true&id=1'; + vm.$window.oauthClientAction(url); + }; + + AuthPageController.prototype.authWithGooglePlus = function(){ + var vm = this; + + var url = 'http://login.dialoga.gov.br/plugin/oauth_client/google_oauth2?oauth_client_popup=true&id=4'; + vm.$window.oauthClientAction(url); + }; })(); diff --git a/src/app/pages/auth/signin.html b/src/app/pages/auth/signin.html index b7b5729..88a94f3 100644 --- a/src/app/pages/auth/signin.html +++ b/src/app/pages/auth/signin.html @@ -54,7 +54,7 @@
-
-
-
-