dreamjob/app/Controller/RegistrationController.php

209 lines
12 KiB
PHP
Raw Normal View History

2015-03-31 14:49:03 +02:00
<?php
App::uses('AppController', 'Controller');
class RegistrationController extends AppController {
/**
* This controller use User Model
*
* @var array
*/
public $componens = array('MiconwareSession');
public $uses = array('Mannerofaddress', 'DreamjobListGraducation', 'DreamjobListBranch', 'DreamjobWorker', 'DreamjobCompany', 'User', 'DreamjobListCity');
public function main() {
$this->MiconwareSession->init($this);
$this->MiconwareSession->initWeb($this);
if (!$this->MiconwareSession->isLoggedin()) {
$this->render('/Registration/main');
} else {
$this->set('error', array('title'=>__('dreamjob.error.loggedin.title'),'text'=>__('dreamjob.error.loggedin.text')));
$this->render('/Home/error');
}
}
public function company() {
$this->MiconwareSession->init($this);
$this->MiconwareSession->initWeb($this);
if (!$this->MiconwareSession->isLoggedin()) {
$regResult = false;
if ($this->request->is('post')) {
if ($this->request->data['DreamjobCompany']['agb']) {
unset($this->request->data['DreamjobCompany']['agb']);
if ($this->request->data['User']['password1'] == $this->request->data['User']['password2']) {
$data = array();
$data['User']['password'] = $this->MiconwareSession->create_hash($this->request->data['User']['password1']);
$data['User']['mail'] = $this->request->data['User']['mail'];
$data['DreamjobUser']['city_id'] = $this->request->data['DreamjobUser']['city_id'];
$data['DreamjobUser']['street'] = $this->request->data['DreamjobUser']['street'];
$data['DreamjobUser']['postcode'] = $this->request->data['DreamjobUser']['postcode'];
$data['AppUser']['nickname'] = $this->request->data['AppUser']['nickname'];
$data['AppUser']['take_systemwide'] = true;
$data['DreamjobCompany']['corporateform'] = $this->request->data['DreamjobCompany']['corporateform'];
$data['DreamjobCompany']['owner'] = $this->request->data['DreamjobCompany']['owner'];
$data['DreamjobCompany']['branch_id'] = $this->request->data['DreamjobCompany']['branch_id'];
$data['DreamjobCompany']['headcount'] = $this->request->data['DreamjobCompany']['headcount'];
$data['DreamjobCompany']['bank_details'] = '';
//$data['DreamjobCompany']['bank_details'] = $this->request->data['DreamjobCompany']['bank_details'];
$data['DreamjobCompany']['website'] = $this->request->data['DreamjobCompany']['website'];
$key = $this->MiconwareSession->generateKey();
$data['User']['code'] = "a:" . $key;
$data['User']['is_active'] = false;
$result = $this->DreamjobCompany->registration($data);
if ($result) {
$regResult = true;
$this->MiconwareSession->setFlash(__('dreamjob.registration.success'), 'flash', array('alert' => 'success'));
} else {
$this->MiconwareSession->setFlash(__('dreamjob.registration.error'), 'flash', array('alert' => 'danger'));
}
} else if ($this->request->data['User']['password1'] != '' or $this->request->data['User']['password2'] != '') {
$this->MiconwareSession->setFlash(__('dreamjob.password.error.notEqual'), 'flash', array('alert' => 'danger'));
}
} else {
$this->MiconwareSession->setFlash(__('dreamjob.agb.error.notAccept'), 'flash', array('alert' => 'danger'));
}
} else
if (empty($this->request->data['DreamjobCompany']['website']))
$this->request->data['DreamjobCompany']['website'] = 'http://';
$this->set('result', $regResult);
$this->set('cities', $this->DreamjobListCity->find('list'));
$this->set('branches', $this->DreamjobListBranch->find('list'));
$this->render('/Registration/company');
}else {
$this->set('error', array('title'=>__('dreamjob.error.loggedin.title'),'text'=>__('dreamjob.error.loggedin.text')));
$this->render('/Home/error');
}
}
public function worker() {
$this->MiconwareSession->init($this);
$this->MiconwareSession->initWeb($this);
if (!$this->MiconwareSession->isLoggedin()) {
$regResult = false;
if ($this->request->is('post')) {
if ($this->request->data['DreamjobWorker']['agb']) {
unset($this->request->data['DreamjobWorker']['agb']);
if ($this->request->data['User']['password1'] == $this->request->data['User']['password2']) {
$data = array();
$data['User']['password'] = $this->MiconwareSession->create_hash($this->request->data['User']['password1']);
$data['User']['mail'] = $this->request->data['User']['mail'];
$data['DreamjobUser']['city_id'] = $this->request->data['DreamjobUser']['city_id'];
$data['DreamjobUser']['street'] = $this->request->data['DreamjobUser']['street'];
$data['DreamjobUser']['postcode'] = $this->request->data['DreamjobUser']['postcode'];
$data['AppUser']['bday'] = $this->request->data['AppUser']['bday'];
$data['AppUser']['first_name'] = $this->request->data['AppUser']['first_name'];
$data['AppUser']['last_name'] = $this->request->data['AppUser']['last_name'];
$data['AppUser']['take_systemwide'] = true;
//WORKER
$data['AppUser']['mannerofaddress_id'] = $this->request->data['AppUser']['mannerofaddress_id'];
$data['DreamjobWorker']['country'] = $this->request->data['DreamjobWorker']['country'];
$data['DreamjobWorker']['iam'] = $this->request->data['DreamjobWorker']['iam'];
$data['DreamjobWorker']['graducation_id'] = $this->request->data['DreamjobWorker']['graducation_id'];
$data['DreamjobWorker']['searchhidden'] = true;
$data['DreamjobWorker']['workexperience'] = $this->request->data['DreamjobWorker']['workexperience'];
$key = $this->MiconwareSession->generateKey();
$data['User']['code'] = "a:" . $key;
$data['User']['is_active'] = false;
$result = $this->DreamjobWorker->registration($data);
if ($result) {
$regResult = true;
$this->MiconwareSession->setFlash(__('dreamjob.registration.success'), 'flash', array('alert' => 'success'));
} else {
$this->MiconwareSession->setFlash(__('dreamjob.registration.error'), 'flash', array('alert' => 'danger'));
}
} else if ($this->request->data['User']['password1'] != '' or $this->request->data['User']['password2'] != '') {
$this->MiconwareSession->setFlash(__('dreamjob.password.error.notEqual'), 'flash', array('alert' => 'danger'));
}
} else {
$this->MiconwareSession->setFlash(__('dreamjob.agb.error.notAccept'), 'flash', array('alert' => 'danger'));
}
}
$this->set('result', $regResult);
$this->set('cities', $this->DreamjobListCity->find('list'));
$this->set('mannerofaddresses', $this->Mannerofaddress->find('list'));
$this->set('graducations', $this->DreamjobListGraducation->find('list'));
$this->render('/Registration/worker');
} else {
$this->set('error', array('title'=>__('dreamjob.error.loggedin.title'),'text'=>__('dreamjob.error.loggedin.text')));
$this->render('/Home/error');
}
}
public function active() {
$this->MiconwareSession->init($this);
$this->MiconwareSession->initWeb($this);
if (!$this->MiconwareSession->isLoggedin() and ! empty($this->request->params['code']) and ! empty($this->request->query['mail'])) {
$result = $this->User->activeLinkUser($this->request->query['mail'], $this->request->params['code']);
$this->set("result", $result);
$this->render('/Registration/active');
} else {
$this->set('error', array('title'=>__('dreamjob.error.loggedin.title'),'text'=>__('dreamjob.error.loggedin.text')));
$this->render('/Home/error');
}
}
public function password_reset() {
$this->MiconwareSession->init($this);
$this->MiconwareSession->initWeb($this);
if (!$this->MiconwareSession->isLoggedin()) {
if ($this->request->is('post')) {
$key = $this->MiconwareSession->generateKey();
$profil['User']['mail'] = $this->request->data['User']['mail'];
$profil['User']['code'] = "f:" . $key;
$result = $this->User->sendPasswortReset($profil);
if ($result) {
$this->MiconwareSession->setFlash(__('dreamjob.password_reset.send.success'), 'flash', array('alert' => 'success'));
return $this->redirect(array('controller'=>'home','action' => 'home'));
} else {
$this->MiconwareSession->setFlash(__('dreamjob.password_reset.send.error'), 'flash', array('alert' => 'danger'));
}
}
$this->render('/Registration/password_reset');
} else {
$this->set('error', array('title'=>__('dreamjob.error.loggedin.title'),'text'=>__('dreamjob.error.loggedin.text')));
$this->render('/Home/error');
}
}
public function password_replace() {
$this->MiconwareSession->init($this);
$this->MiconwareSession->initWeb($this);
if (!$this->MiconwareSession->isLoggedin() and ! empty($this->request->params['code']) and ! empty($this->request->query['mail'])) {
$send = false;
$try = $this->User->find('first',array('conditions'=>array('User.code LIKE'=>'_:'.$this->request->params['code'],'User.mail'=>$this->request->query['mail'])));
if (count($try)<2) {
$this->MiconwareSession->setFlash(__('dreamjob.password_replace.notFound'), 'flash', array('alert' => 'danger'));
$send = true;
}
if (!$send and $this->request->is('post')) {
if ($this->request->data['User']['password1'] == $this->request->data['User']['password2']) {
$password = $this->MiconwareSession->create_hash($this->request->data['User']['password1']);
$result = $this->User->replace_password($try,$password);
if ($result) {
$this->MiconwareSession->setFlash(__('dreamjob.password_replace.success'), 'flash', array('alert' => 'success'));
return $this->redirect(array('controller'=>'home','action' => 'home'));
} else {
$this->MiconwareSession->setFlash(__('dreamjob.password_replace.error'), 'flash', array('alert' => 'danger'));
}
}else
$this->MiconwareSession->setFlash(__('dreamjob.password.error.notEqual'), 'flash', array('alert' => 'danger'));
}
$this->render('/Registration/password_replace');
} else {
$this->set('error', array('title'=>__('dreamjob.error.link.title'),'text'=>__('dreamjob.error.link.text')));
$this->render('/Home/error');
}
}
}
?>