password
This commit is contained in:
parent
315fe1ab67
commit
3a4d58f6b9
|
@ -36,6 +36,8 @@
|
|||
Router::connect('/company/registration', array('controller' => 'registration', 'action' => 'company'));
|
||||
//Router::connect('/registration', array('controller' => 'registration', 'action' => 'main'));
|
||||
Router::connect('/registration', array('controller' => 'registration', 'action' => 'worker'));
|
||||
Router::connect('/password/reset', array('controller' => 'registration', 'action' => 'password_reset'));
|
||||
Router::connect('/password/replace/:code', array('controller' => 'registration', 'action' => 'password_replace'),array("code" => ".+"));
|
||||
Router::connect('/registration/active/:code', array('controller' => 'registration', 'action' => 'active'),array("code" => ".+"));
|
||||
|
||||
Router::connect('/profil', array('controller' => 'user', 'action' => 'profil'));
|
||||
|
|
|
@ -10,15 +10,14 @@ class RegistrationController extends AppController {
|
|||
* @var array
|
||||
*/
|
||||
public $componens = array('MiconwareSession');
|
||||
public $uses = array('Mannerofaddress','DreamjobListGraducation','DreamjobListBranch','DreamjobWorker','DreamjobCompany','User','DreamjobListCity');
|
||||
|
||||
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()){
|
||||
if (!$this->MiconwareSession->isLoggedin()) {
|
||||
$this->render('/Registration/main');
|
||||
}else{
|
||||
} else {
|
||||
$this->set('error', 'dreamjob.error.loggedin');
|
||||
$this->render('/Home/error');
|
||||
}
|
||||
|
@ -27,12 +26,12 @@ class RegistrationController extends AppController {
|
|||
public function company() {
|
||||
$this->MiconwareSession->init($this);
|
||||
$this->MiconwareSession->initWeb($this);
|
||||
if(!$this->MiconwareSession->isLoggedin()){
|
||||
if (!$this->MiconwareSession->isLoggedin()) {
|
||||
$regResult = false;
|
||||
if ($this->request->is('post')){
|
||||
if($this->request->data['DreamjobCompany']['agb']) {
|
||||
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']) {
|
||||
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'];
|
||||
|
@ -50,30 +49,30 @@ class RegistrationController extends AppController {
|
|||
//$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']['code'] = "a:" . $key;
|
||||
$data['User']['is_active'] = false;
|
||||
|
||||
$result = $this->DreamjobCompany->registration($data);
|
||||
if ($result) {
|
||||
$regResult = true;
|
||||
$this->MiconwareSession->setFlash(__('dreamjob.registration.done'),'flash',array('alert'=>'success'));
|
||||
}else{
|
||||
$this->MiconwareSession->setFlash(__('dreamjob.registration.error'),'flash',array('alert'=>'danger'));
|
||||
$this->MiconwareSession->setFlash(__('dreamjob.registration.done'), '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.error.password.notEqual'),'flash',array('alert'=>'danger'));
|
||||
} else if ($this->request->data['User']['password1'] != '' or $this->request->data['User']['password2'] != '') {
|
||||
$this->MiconwareSession->setFlash(__('dreamjob.error.password.notEqual'), 'flash', array('alert' => 'danger'));
|
||||
}
|
||||
}else{
|
||||
$this->MiconwareSession->setFlash(__('dreamjob.agb.error.notAccept'),'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'));
|
||||
} 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{
|
||||
}else {
|
||||
$this->set('error', 'dreamjob.error.loggedin');
|
||||
$this->render('/Home/error');
|
||||
}
|
||||
|
@ -82,12 +81,12 @@ class RegistrationController extends AppController {
|
|||
public function worker() {
|
||||
$this->MiconwareSession->init($this);
|
||||
$this->MiconwareSession->initWeb($this);
|
||||
if(!$this->MiconwareSession->isLoggedin()){
|
||||
if (!$this->MiconwareSession->isLoggedin()) {
|
||||
$regResult = false;
|
||||
if ($this->request->is('post')){
|
||||
if($this->request->data['DreamjobWorker']['agb']) {
|
||||
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']) {
|
||||
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'];
|
||||
|
@ -108,46 +107,101 @@ class RegistrationController extends AppController {
|
|||
$data['DreamjobWorker']['workexperience'] = $this->request->data['DreamjobWorker']['workexperience'];
|
||||
|
||||
$key = $this->MiconwareSession->generateKey();
|
||||
$data['User']['code'] = "a:".$key;
|
||||
$data['User']['code'] = "a:" . $key;
|
||||
$data['User']['is_active'] = false;
|
||||
|
||||
$result = $this->DreamjobWorker->registration($data);
|
||||
|
||||
if ($result) {
|
||||
$regResult = true;
|
||||
$this->MiconwareSession->setFlash(__('dreamjob.registration.done'),'flash',array('alert'=>'success'));
|
||||
}else{
|
||||
$this->MiconwareSession->setFlash(__('dreamjob.registration.error'),'flash',array('alert'=>'danger'));
|
||||
$this->MiconwareSession->setFlash(__('dreamjob.registration.done'), '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.error.password.notEqual'),'flash',array('alert'=>'danger'));
|
||||
} else if ($this->request->data['User']['password1'] != '' or $this->request->data['User']['password2'] != '') {
|
||||
$this->MiconwareSession->setFlash(__('dreamjob.error.password.notEqual'), 'flash', array('alert' => 'danger'));
|
||||
}
|
||||
}else{
|
||||
$this->MiconwareSession->setFlash(__('dreamjob.agb.error.notAccept'),'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->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', 'dreamjob.error.loggedin');
|
||||
$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{
|
||||
} else {
|
||||
$this->set('error', 'dreamjob.error.loggedin');
|
||||
$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', 'dreamjob.error.loggedin');
|
||||
$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'), 'flash', array('alert' => 'success'));
|
||||
} else {
|
||||
$this->MiconwareSession->setFlash(__('dreamjob.password_reset.send.error'), 'flash', array('alert' => 'danger'));
|
||||
}
|
||||
}
|
||||
$this->render('/Registration/password_reset');
|
||||
} else {
|
||||
$this->set('error', 'dreamjob.error.loggedin');
|
||||
$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']) {
|
||||
$profil['User']['password'] = $this->MiconwareSession->create_hash($this->request->data['User']['password1']);
|
||||
$this->User->id=$try['User']['id'];
|
||||
$result = $this->User->saveField('password',$profil['User']['password']);
|
||||
if ($result) {
|
||||
$this->MiconwareSession->setFlash(__('dreamjob.password_replace.done'), 'flash', array('alert' => 'success'));
|
||||
} else {
|
||||
$this->MiconwareSession->setFlash(__('dreamjob.password_replace.error'), 'flash', array('alert' => 'danger'));
|
||||
}
|
||||
}else
|
||||
$this->MiconwareSession->setFlash(__('dreamjob.error.password.notEqual'), 'flash', array('alert' => 'danger'));
|
||||
}
|
||||
$this->render('/Registration/password_replace');
|
||||
} else {
|
||||
$this->set('error', 'dreamjob.error.link');
|
||||
$this->render('/Home/error');
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
?>
|
||||
|
|
|
@ -1142,6 +1142,32 @@ msgstr ""
|
|||
|
||||
|
||||
|
||||
msgid "dreamjob.password.reset"
|
||||
msgstr ""
|
||||
|
||||
msgid "dreamjob.password.replace"
|
||||
msgstr ""
|
||||
|
||||
msgid "dreamjob.password.send"
|
||||
msgstr ""
|
||||
|
||||
msgid "dreamjob.password_reset.send"
|
||||
msgstr ""
|
||||
|
||||
msgid "dreamjob.password_reset.send.error"
|
||||
msgstr ""
|
||||
|
||||
msgid "dreamjob.password_replace.error"
|
||||
msgstr ""
|
||||
|
||||
msgid "dreamjob.password_replace.done"
|
||||
msgstr ""
|
||||
|
||||
msgid "dreamjob.password_replace.notFound"
|
||||
msgstr ""
|
||||
|
||||
|
||||
|
||||
|
||||
#
|
||||
# Generierte Fehlermeldungen eigenarbeit!
|
||||
|
@ -1182,3 +1208,10 @@ msgstr ""
|
|||
msgid "dreamjob.error.opening.notFound.text"
|
||||
msgstr ""
|
||||
|
||||
# -
|
||||
msgid "dreamjob.error.link.title"
|
||||
msgstr ""
|
||||
|
||||
msgid "dreamjob.error.link.text"
|
||||
msgstr ""
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
<?php
|
||||
App::uses('AppModel', 'Model');
|
||||
App::uses('CakeEmail', 'Network/Email');
|
||||
/**
|
||||
* MicSysMicacc Model
|
||||
*
|
||||
|
@ -42,6 +43,15 @@ class User extends AppModel {
|
|||
$Email->viewVars(array('data'=>$data,'key'=>$key));
|
||||
return $Email->send();
|
||||
}
|
||||
public static function sendPasswortResetMail($data){
|
||||
$Email = new CakeEmail('dreamjobMain');
|
||||
$Email->to($data['User']['mail']);
|
||||
$Email->subject('Welcome to our really cool thing');
|
||||
$Email->template('password_reset');
|
||||
$key = substr($data['User']['code'],2);
|
||||
$Email->viewVars(array('data'=>$data,'key'=>$key));
|
||||
return $Email->send();
|
||||
}
|
||||
public function sendDelete($data){
|
||||
$dataSource = $this->getDataSource();
|
||||
$dataSource->begin();
|
||||
|
@ -60,6 +70,27 @@ class User extends AppModel {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
public function sendPasswortReset($data){
|
||||
$dataSource = $this->getDataSource();
|
||||
$dataSource->begin();
|
||||
$result = $this->findByMail($data['User']['mail']);
|
||||
if($result)
|
||||
$this->id = $result['User']['id'];
|
||||
if($result)
|
||||
$result = $this->saveField('code',$data['User']['code']);
|
||||
if($result)
|
||||
$result = $this->saveField('is_active',false);
|
||||
if($result)
|
||||
$result=self::sendPasswortResetMail($data);
|
||||
|
||||
if($result) {
|
||||
$dataSource->commit();
|
||||
return true;
|
||||
} else {
|
||||
$dataSource->rollback();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
public function activeLinkUser($mail,$key){
|
||||
$dataSource = $this->getDataSource();
|
||||
|
||||
|
@ -192,6 +223,9 @@ class User extends AppModel {
|
|||
//'on' => 'create', // Limit validation to 'create' or 'update' operations
|
||||
),
|
||||
),
|
||||
/*
|
||||
* Legend: a=aktivierungscode, d=deaktivier zur Löschund, f=password vergessen
|
||||
*/
|
||||
'code' => array(
|
||||
'notEmpty' => array(
|
||||
'rule' => array('notEmpty'),
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
<?php
|
||||
echo $this->Html->link(__('dreamjob.password.reset.link'),array('controller' => 'registration', 'action' => 'password_replace','code'=>$key,
|
||||
'?'=>array('mail'=>$data['User']['mail']),'full_base' => true) );
|
||||
?>
|
|
@ -0,0 +1,4 @@
|
|||
<?php
|
||||
echo $this->Html->url(array('controller'=>'registration','action'=>'password_replace','code'=>$key,
|
||||
'?'=>array('mail'=>$data['User']['mail'])),true);
|
||||
?>
|
|
@ -0,0 +1,15 @@
|
|||
<?php
|
||||
|
||||
?>
|
||||
<div class="box">
|
||||
<h1><?=__('dreamjob.password.replace');?></h1>
|
||||
<?php
|
||||
echo $this->Form->create(false,$default_Form);
|
||||
echo $this->Form->input('User.password1',array('label'=>array('text'=>__("dreamjob.password"),"class"=>$default_Form['inputDefaults']['label']['class']),'type'=>'password'));
|
||||
echo $this->Form->input('User.password2',array('label'=>array('text'=>__("dreamjob.password2"),"class"=>$default_Form['inputDefaults']['label']['class']),'type'=>'password'));
|
||||
?>
|
||||
<div class="buttonrow">
|
||||
<?=$this->Form->button(__('dreamjob.save'),array('div' => false,'class'=>"btn btn-primary ",'type' => 'submit'));?>
|
||||
</div>
|
||||
<?php echo $this->Form->end(); ?>
|
||||
</div>
|
|
@ -0,0 +1,14 @@
|
|||
<?php
|
||||
|
||||
?>
|
||||
<div class="box">
|
||||
<h1><?=__('dreamjob.password.reset');?></h1>
|
||||
<?php
|
||||
echo $this->Form->create(false,$default_Form);
|
||||
echo $this->Form->input('User.mail',array('label'=>array('text'=>__("dreamjob.mail"),"class"=>$default_Form['inputDefaults']['label']['class'])));
|
||||
?>
|
||||
<div class="buttonrow">
|
||||
<?=$this->Form->button(__('dreamjob.password.send'),array('div' => false,'class'=>"btn btn-primary ",'type' => 'submit'));?>
|
||||
</div>
|
||||
<?php echo $this->Form->end(); ?>
|
||||
</div>
|
Loading…
Reference in New Issue