client/app/auth/auth_controller.js
author rougeronj
Thu, 11 Jun 2015 15:36:42 +0200
changeset 169 76fb2dd72ce4
parent 113 b8400d8efac8
child 172 ffdfe491869c
permissions -rw-r--r--
update auth controller to fit to the new server side authentication

(function(){
    'use strict';

    angular.module('ammicoAuth',['ngRoute', 'ngMessages'])
    .controller('authCtrl', function($location, $rootScope, $routeParams, $modal){
        $modal.open({
            templateUrl: 'auth/' + $routeParams.action + '_modal.html',
            controller: 'auth' + $routeParams.action + 'Ctrl'
        }).result.then(function (result) {
            $location.path(result);
        }, function () {
            $location.path('/');
        });
    })
    .controller('authloginCtrl', function($modalInstance, $scope, authApi, $window, $http, $rootScope){
        $scope.login = function(){
            authApi.login.save({email:$scope.email, password:$scope.password}, function(data){
                $rootScope.globals.userLogged = true;
                localStorage.setItem('token', data.token);
                $http.defaults.headers.common.Authorization = 'Token ' + localStorage.getItem('token');
                $modalInstance.close('/');
            });
        };
        $scope.register = function () {
            $modalInstance.close('/auth/register');
        };
        $scope.cancel = function () {
            $modalInstance.close('/');
        };
    })
    .controller('authlogoutCtrl', function($modalInstance, $scope, $window, $http, $rootScope){
        localStorage.removeItem('token');
        $rootScope.globals.userLogged = false;
        delete $http.defaults.headers.common.Authorization;
        $scope.cancel = function () {
            $modalInstance.close('/');
        };
    })
    .controller('authregisterCtrl', function($scope, $modalInstance, authApi){
        $scope.message = "";

        $scope.user = {
            email: "",
            password: "",
            confirmPassword: ""
        };

        $scope.submit = function(isValid) {
            console.log(isValid);
            console.log($scope);
            console.log($scope.email);
            if (isValid) {
                authApi.user.save({
                    email: $scope.user.email,
                    password: $scope.user.password,
                }, function(){
                    $modalInstance.close('/auth/login');
                });
            } else {
                $scope.message = "Il reste toujours des champs invalides";
            }
        };
        $scope.back = function () {
            $modalInstance.close('/auth/login');
        };
    })
    .directive("compareTo", function(){
        return {
            require: "ngModel",
            scope: {
              otherModelValue: "=compareTo"
            },
            link: function($scope, element, attributes, ngModel) {

              ngModel.$validators.compareTo = function(modelValue) {
                return modelValue == $scope.otherModelValue;
              };

              $scope.$watch("otherModelValue", function() {
                  ngModel.$validate();
              });
            }
        }
    });
})();