summaryrefslogtreecommitdiffstats
path: root/application/controllers/AuthController.php
blob: 8ccb25c200892df8cb3c0b8b06b9683e67333e35 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
<?php

class AuthController extends Zend_Controller_Action
{
	private $db = null;
    public function init()
    {
        $this->db = Zend_Db_Table::getDefaultAdapter();
    }

	 public function indexAction()
    {
        $this->_redirect('/auth/login');
    }

    public function loginAction()
    {
		if (Zend_Auth::getInstance()->hasIdentity()) {		
			print_a('bereits angemeldet');
		}
        if (!isset($_POST["login"])){
        	        $loginForm = new Application_Form_AuthLogin();
        		} else {
        		    $loginForm = new Application_Form_AuthLogin($_POST);
        	 		
        		    if ($loginForm->isValid($_POST)) {
        
        				$auth = Zend_Auth::getInstance();
        
        		        $adapter = new Zend_Auth_Adapter_DbTable(
        		            $this->db,
        		            'pbs_person',
        		            'email',
        		            'password',
        		            'MD5(CONCAT(?, password_salt))'
        		            );
        	 			
        
        		        $adapter->setIdentity($loginForm->getValue('email'));
        		        $adapter->setCredential($loginForm->getValue('password'));
        
        		        $result = $auth->authenticate($adapter);				
        
        	 			// TODO: erweiterte fehlerbeschreibung des Users
        
        		        if ($result->isValid()) {
        					$this->_redirect('/auth/login');
        		            return;
        		        } else {
        					echo "Falsche Email oder Passwort";
        				} 
        		    }
        		}
        
                $this->view->loginForm = $loginForm;
    }

    public function registerAction()
    {
		if (Zend_Auth::getInstance()->hasIdentity()) {		
			print_a('bereits angemeldet');
		}
        if (!isset($_POST["register"])){
            	        $registerForm = new Application_Form_AuthRegister();
            		} else {
            		    $registerForm = new Application_Form_AuthRegister($_POST);
            	 		
            		    if ($registerForm->isValid($_POST)) {
            		    	
            		        $person = new Application_Model_Person($_POST);
            		        $personmapper = new Application_Model_PersonMapper();
            		        
            		        $date = new DateTime();
            		        $person->setRegisterdate($date->getTimestamp());
            		        $person->setPasswordSalt(MD5($date->getTimestamp()));
            		        $person->setPassword(MD5($person->getPassword() . $person->getPasswordSalt()));
            		        	print_a($person);
            		        try {    		 
            		            $personmapper->save($person);
            		        }catch(Zend_Exception $e)
            		        {
            		            echo "Caught exception: " . get_class($e) . "<br/>";
            					echo "Message: " . $e->getMessage() . "<br/>";
            					echo "Email Adresse bereits vorhanden.";
            					return;
            		        }
            		        echo "Erfolgreich registriert. <br/>";
            		        echo "Weiter zum Login: <a href=\""."/auth/login"."\">Login</a>";
							$this->_redirect('/auth/login');
            		        return;
            		     }
            		}
            
                    $this->view->registerForm = $registerForm;
    }

    public function logoutAction()
    {
        // action body
    }

    public function recoverPasswordAction()
    {
        // action body
    }

    public function deleteAction()
    {
        if (!isset($_POST["delete"])){
            	   	$deleteForm = new Application_Form_AuthDelete();
            	} else {
            		    $deleteForm = new Application_Form_AuthDelete($_POST);
            	 		
            		    if ($deleteForm->isValid($_POST)) {
            		    	
            		        $person = new Application_Model_Person($_POST);
            		        $personmapper = new Application_Model_PersonMapper();
            		        
            		        
              		        $personmapper->delete($person);
            		    }
            	}
            
               	$this->view->deleteForm = $deleteForm;
    }
   


}