Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
smart_core_connect
/
core-connect
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
1985886c
authored
May 31, 2018
by
Zen-PC\Zen
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Zen : new UserController
parent
dfd654f4
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
211 additions
and
296 deletions
+211
-296
www/src/Controller/UsersController.php
+211
-296
No files found.
www/src/Controller/UsersController.php
View file @
1985886c
<?php
<?php
namespace
App\Controller
;
namespace
App\Controller
;
use
App\Controller\AppController
;
use
App\Controller\AppController
;
use
Cake\Auth\DefaultPasswordHasher
;
use
Cake\Auth\DefaultPasswordHasher
;
use
Cake\Core\Configure
;
use
Cake\Core\Configure
;
...
@@ -20,34 +18,22 @@ class UsersController extends AppController {
...
@@ -20,34 +18,22 @@ class UsersController extends AppController {
*/
*/
public
function
initialize
()
{
public
function
initialize
()
{
parent
::
initialize
();
parent
::
initialize
();
// $this->Auth->allow(['signin', 'signout', 'signup', 'verify', 'forgotPassword', 'createAccount', 'pinCode', 'pinCodepassword', 'changeForgotpassword']);
$this
->
Auth
->
allow
([
'signin'
,
'signout'
,
'signup'
,
'verify'
,
'forgotPassword'
,
'createAccount'
,
'pinCode'
,
'pinCodepassword'
,
'registersendpin'
,
'forgotsendpin'
,
'changeForgotpassword'
]);
$this
->
Auth
->
allow
([
'signin'
,
'signout'
,
'signup'
,
'verify'
,
'forgotPassword'
,
'createAccount'
,
'pinCode'
,
'pinCodepassword'
,
'registersendpin'
,
'forgotsendpin'
,
'changeForgotpassword'
]);
}
}
public
function
index
()
{
public
function
index
()
{
return
$this
->
redirect
([
'controller'
=>
'Users'
,
'action'
=>
'signin'
]);
return
$this
->
redirect
([
'controller'
=>
'Users'
,
'action'
=>
'signin'
]);
}
}
/**
*
* Function signin / login make for user authentication
* @author sarawutt.b
* @since 20108/05/24 10:49:20
* @license Pakgon
* @return void
*/
public
function
signin
()
{
public
function
signin
()
{
$this
->
viewBuilder
()
->
layout
(
'blank'
);
$this
->
viewBuilder
()
->
layout
(
'blank'
);
}
}
#Signin
#Signin
public
function
verify
()
{
public
function
verify
()
{
$this
->
viewBuilder
()
->
layout
(
'blank'
);
$this
->
viewBuilder
()
->
layout
(
'blank'
);
if
(
$this
->
request
->
is
(
'post'
))
{
if
(
$this
->
request
->
is
(
'post'
))
{
$data
=
$this
->
request
->
getData
();
$data
=
$this
->
request
->
getData
();
if
(
!
empty
(
$data
))
{
if
(
!
empty
(
$data
))
{
...
@@ -56,7 +42,7 @@ class UsersController extends AppController {
...
@@ -56,7 +42,7 @@ class UsersController extends AppController {
$http
=
new
Client
();
$http
=
new
Client
();
$response
=
$http
->
post
(
$api_core_signin
,
$data
[
'data'
])
->
body
();
$response
=
$http
->
post
(
$api_core_signin
,
$data
[
'data'
])
->
body
();
$response
=
json_decode
(
$response
,
'_full'
);
$response
=
json_decode
(
$response
,
'_full'
);
if
(
!
empty
(
$response
))
{
if
(
!
empty
(
$response
))
{
if
(
strtolower
(
trim
(
$response
[
'status'
]))
==
'success'
)
{
if
(
strtolower
(
trim
(
$response
[
'status'
]))
==
'success'
)
{
$response
[
'result'
][
'user'
][
'id'
]
=
$response
[
'result'
][
'user'
][
'user_id'
];
$response
[
'result'
][
'user'
][
'id'
]
=
$response
[
'result'
][
'user'
][
'user_id'
];
...
@@ -64,12 +50,14 @@ class UsersController extends AppController {
...
@@ -64,12 +50,14 @@ class UsersController extends AppController {
//$url = Router::url(['controller' => 'Homes', 'action' => 'index'], true);
//$url = Router::url(['controller' => 'Homes', 'action' => 'index'], true);
// Before chan logic to OAUTH
// Before chan logic to OAUTH
// echo "<script>setTimeout(function(){Login.onLogin('" . $response['result']['token'] . "','" . $url . "','" . $response['result']['topic'] . "')},1000);</script>";
// echo "<script>setTimeout(function(){Login.onLogin('" . $response['result']['token'] . "','" . $url . "','" . $response['result']['topic'] . "')},1000);</script>";
$statusCode
=
'200'
;
$statusCode
=
'200'
;
// echo "<script type='text/javascript'>setTimeout(function(){Login.onLogin('" . $statusCode . "','" . $this->_redirectApplicationURL . "','" . $response['result']['topic'] . "')},1000);</script>";
// echo "<script type='text/javascript'>setTimeout(function(){Login.onLogin('" . $statusCode . "','" . $this->_redirectApplicationURL . "','" . $response['result']['topic'] . "')},1000);</script>";
$RedirectApplicationURL
=
Configure
::
read
(
'RedirectApplicationURL'
);
$redirectApplicationURL
=
Configure
::
read
(
'RedirectApplicationURL'
);
$topic
=
$response
[
'result'
][
'topic'
];
$topic
=
$response
[
'result'
][
'topic'
];
$token
=
$response
[
'result'
][
'token'
];
$this
->
set
(
compact
(
'statusCode'
,
'redirectApplicationURL'
,
'topic'
));
$this
->
set
(
compact
(
'statusCode'
,
'RedirectApplicationURL'
,
'topic'
,
'token'
));
#echo "<script>setTimeout(function(){alert('".$response['result']['token']."')},1000);</script>";
#echo "<script>setTimeout(function(){alert('".$response['result']['token']."')},1000);</script>";
#echo "<script>Login.onLogin('".$response['result']['token']."','".$url."','".$response['result']['topic']."');</script>";
#echo "<script>Login.onLogin('".$response['result']['token']."','".$url."','".$response['result']['topic']."');</script>";
...
@@ -94,7 +82,6 @@ class UsersController extends AppController {
...
@@ -94,7 +82,6 @@ class UsersController extends AppController {
#------------------------------------------------------------------
#------------------------------------------------------------------
//$this->redirect($this->_redirectApplicationURL);
//$this->redirect($this->_redirectApplicationURL);
//header('Location: ' . $this->_redirectApplicationURL);
//header('Location: ' . $this->_redirectApplicationURL);
//return $this->redirect($redirectApplicationURL);
}
else
{
}
else
{
$this
->
Flash
->
error
(
__
(
'Verify Fail'
));
$this
->
Flash
->
error
(
__
(
'Verify Fail'
));
return
$this
->
redirect
([
'controller'
=>
'Users'
,
'action'
=>
'signin'
]);
return
$this
->
redirect
([
'controller'
=>
'Users'
,
'action'
=>
'signin'
]);
...
@@ -110,162 +97,162 @@ class UsersController extends AppController {
...
@@ -110,162 +97,162 @@ class UsersController extends AppController {
}
}
}
}
public
function
signup
()
{
public
function
signup
()
$this
->
loadModel
(
'MasterCountries'
);
{
$this
->
loadModel
(
'MasterProvinces'
);
$this
->
loadModel
(
'MasterCountries'
);
$this
->
loadModel
(
'MasterProvinces'
);
$countries
=
$this
->
MasterCountries
->
find
(
'list'
,
[
'conditions'
=>
[
'is_used'
=>
true
],
$countries
=
$this
->
MasterCountries
->
find
(
'list'
,
'keyField'
=>
'id'
,
[
'valueField'
=>
[
'country_name_th'
]
'conditions'
=>
[
'is_used'
=>
true
],
]
'keyField'
=>
'id'
,
)
'valueField'
=>
[
'country_name_th'
]
->
order
([
]
'country_name_th'
=>
'ASC'
,
);
]);
if
(
!
empty
(
$countries
))
$countries
=
$countries
->
toArray
();
if
(
!
empty
(
$countries
))
$countries
=
$countries
->
toArray
();
$provinces
=
$this
->
MasterProvinces
->
find
(
'list'
,
[
$provinces
=
$this
->
MasterProvinces
->
find
(
'list'
,
[
'conditions'
=>
[
'is_used'
=>
true
],
'conditions'
=>
[
'is_used'
=>
true
],
'keyField'
=>
'id'
,
'keyField'
=>
'id'
,
'valueField'
=>
'province_name_th'
'valueField'
=>
'province_name_th'
]
]
);
)
if
(
!
empty
(
$provinces
))
$provinces
=
$provinces
->
toArray
();
->
order
([
$this
->
set
(
compact
(
'provinces'
,
'countries'
));
'province_name_th'
=>
'DESC'
,
]);
if
(
!
empty
(
$provinces
))
$provinces
=
$provinces
->
toArray
();
$this
->
set
(
compact
(
'provinces'
,
'countries'
));
$this
->
viewBuilder
()
->
layout
(
'blank'
);
$this
->
viewBuilder
()
->
layout
(
'blank'
);
}
}
#---------------------------------------------------------------------------------------------------
#---------------------------------------------------------------------------------------------------
#Signup
public
function
createAccount
()
{
#Signup
$this
->
loadModel
(
'UserPersonals'
);
public
function
createAccount
()
{
$this
->
loadModel
(
'UserPersonals'
);
$users
=
$this
->
Users
->
newEntity
();
$users
=
$this
->
Users
->
newEntity
();
$user_personals
=
$this
->
UserPersonals
->
newEntity
();
$user_personals
=
$this
->
UserPersonals
->
newEntity
();
if
(
$this
->
request
->
is
(
'post'
))
{
if
(
$this
->
request
->
is
(
'post'
))
{
// $username_check = $this->MasterProvinces->find('all')->toArray();
// $username_check = $this->MasterProvinces->find('all')->toArray();
// pr($username_check);die;
// pr($username_check);die;
// pr($this->request->data);die;
// pr($this->request->data);die;
$today
=
Time
::
now
();
$today
=
Time
::
now
();
$dateNow
=
$today
->
i18nFormat
(
'yyyy-MM-dd HH:mm:ss'
);
$dateNow
=
$today
->
i18nFormat
(
'yyyy-MM-dd HH:mm:ss'
);
$hasher
=
new
DefaultPasswordHasher
();
$hasher
=
new
DefaultPasswordHasher
();
$firstname
=
$this
->
request
->
data
[
'firstname'
];
$firstname
=
$this
->
request
->
data
[
'firstname'
];
// $phone_no = $this->request->data['phone_no'];
// $phone_no = $this->request->data['phone_no'];
$lastname
=
$this
->
request
->
data
[
'lastname'
];
$lastname
=
$this
->
request
->
data
[
'lastname'
];
$master_country_id
=
$this
->
request
->
data
[
'master_country_id'
];
$master_country_id
=
$this
->
request
->
data
[
'master_country_id'
];
$master_province_id
=
$this
->
request
->
data
[
'master_province_id'
];
$master_province_id
=
$this
->
request
->
data
[
'master_province_id'
];
$password
=
$this
->
request
->
data
[
'password'
];
$password
=
$this
->
request
->
data
[
'password'
];
$confirm_password
=
$this
->
request
->
data
[
'confirm_password'
];
$confirm_password
=
$this
->
request
->
data
[
'confirm_password'
];
$btn
=
$this
->
request
->
data
[
'btn'
];
$btn
=
$this
->
request
->
data
[
'btn'
];
if
(
!
empty
(
$this
->
request
->
data
[
'birthdate'
]))
{
if
(
!
empty
(
$this
->
request
->
data
[
'birthdate'
]))
{
$birthdate
=
explode
(
"/"
,
$this
->
request
->
data
[
'birthdate'
]);
$birthdate
=
explode
(
"/"
,
$this
->
request
->
data
[
'birthdate'
]);
$birthdate
=
$birthdate
[
2
]
.
'-'
.
$birthdate
[
1
]
.
'-'
.
$birthdate
[
0
];
$birthdate
=
$birthdate
[
2
]
.
'-'
.
$birthdate
[
1
]
.
'-'
.
$birthdate
[
0
];
$this
->
request
->
data
[
'birthdate'
]
=
$birthdate
;
$this
->
request
->
data
[
'birthdate'
]
=
$birthdate
;
}
else
{
}
else
{
$birthdate
=
'2000-10-10'
;
$birthdate
=
'2000-10-10'
;
}
}
$this
->
request
->
data
[
'password'
]
=
$hasher
->
hash
(
$password
);
$this
->
request
->
data
[
'password'
]
=
$hasher
->
hash
(
$password
);
$users
[
'created_by'
]
=
0
;
$users
[
'created_by'
]
=
0
;
$users
[
'is_used'
]
=
false
;
$users
[
'is_used'
]
=
false
;
$users
[
'created'
]
=
$dateNow
;
$users
[
'created'
]
=
$dateNow
;
$users
[
'dynamic_key'
]
=
'dynamic_key'
;
$users
[
'dynamic_key'
]
=
'dynamic_key'
;
// $users['point'] = 0;
// $users['point'] = 0;
$users
[
'dynamic_key_expiry'
]
=
date
(
'Y-m-d'
,
strtotime
(
'+3 day'
));
$users
[
'dynamic_key_expiry'
]
=
date
(
'Y-m-d'
,
strtotime
(
'+3 day'
));
$users
[
'token'
]
=
Security
::
hash
(
$this
->
request
->
data
[
'username'
]
.
date
(
'Y-m-d h:i:s'
),
'md5'
,
true
);
$users
[
'token'
]
=
Security
::
hash
(
$this
->
request
->
data
[
'username'
]
.
date
(
'Y-m-d h:i:s'
),
'md5'
,
true
);
$users
[
'token_expiry'
]
=
date
(
'Y-m-d'
,
strtotime
(
'+3 day'
));
$users
[
'token_expiry'
]
=
date
(
'Y-m-d'
,
strtotime
(
'+3 day'
));
// $users['modified_by'] = $modified_by;
// $users['modified_by'] = $modified_by;
$digits
=
4
;
$digits
=
4
;
$users
[
'pin_code'
]
=
str_pad
(
rand
(
0
,
pow
(
10
,
$digits
)
-
1
),
$digits
,
'0'
,
STR_PAD_LEFT
);
$users
[
'pin_code'
]
=
str_pad
(
rand
(
0
,
pow
(
10
,
$digits
)
-
1
),
$digits
,
'0'
,
STR_PAD_LEFT
);
if
(
!
empty
(
$this
->
request
->
data
[
'accept'
]))
{
if
(
!
empty
(
$this
->
request
->
data
[
'accept'
])){
$username_check
=
$this
->
Users
->
find
(
'all'
,
[
$username_check
=
$this
->
Users
->
find
(
'all'
,[
'conditions'
=>
[
'conditions'
=>
[
'Users.username'
=>
$this
->
request
->
data
[
'username'
]
'Users.username'
=>
$this
->
request
->
data
[
'username'
]
]
]
])
->
toArray
();
])
->
toArray
();
$email_check
=
$this
->
UserPersonals
->
find
(
'all'
,
[
$email_check
=
$this
->
UserPersonals
->
find
(
'all'
,[
'conditions'
=>
[
'conditions'
=>
[
'UserPersonals.email'
=>
$this
->
request
->
data
[
'email'
]
'UserPersonals.email'
=>
$this
->
request
->
data
[
'email'
]
]
]
])
->
toArray
();
])
->
toArray
();
if
((
empty
(
$username_check
))
&&
(
empty
(
$email_check
))){
$users
=
$this
->
Users
->
patchEntity
(
$users
,
$this
->
request
->
getData
());
// pr($users);die;
if
((
empty
(
$username_check
))
&&
(
empty
(
$email_check
)))
{
$users
=
$this
->
Users
->
patchEntity
(
$users
,
$this
->
request
->
getData
());
// pr($users);die;
//------------------------------ ส่งอีเมล์ -----------------------------------------------------
//------------------------------ ส่งอีเมล์ -----------------------------------------------------
$data_notification
=
[];
$data_notification
=
[];
$data_notification
[
'email'
]
=
$this
->
request
->
data
[
'email'
];
$data_notification
[
'email'
]
=
$this
->
request
->
data
[
'email'
];
$data_notification
[
'pin_code'
]
=
$users
[
'pin_code'
];
$data_notification
[
'pin_code'
]
=
$users
[
'pin_code'
];
$this
->
notification
(
$data_notification
);
$this
->
notification
(
$data_notification
);
//----------------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------------
$this
->
Users
->
save
(
$users
);
$this
->
Users
->
save
(
$users
);
$user_personals
[
'master_country_id'
]
=
$master_country_id
;
$user_personals
[
'master_country_id'
]
=
$master_country_id
;
$user_personals
[
'master_province_id'
]
=
$master_province_id
;
$user_personals
[
'master_province_id'
]
=
$master_province_id
;
$user_personals
[
'user_id'
]
=
$users
[
'id'
];
$user_personals
[
'user_id'
]
=
$users
[
'id'
];
$user_personals
[
'firstname_th'
]
=
$firstname
;
$user_personals
[
'firstname_th'
]
=
$firstname
;
$user_personals
[
'lastname_th'
]
=
$lastname
;
$user_personals
[
'lastname_th'
]
=
$lastname
;
$user_personals
[
'created_by'
]
=
1
;
$user_personals
[
'created_by'
]
=
1
;
$user_personals
[
'created'
]
=
$dateNow
;
$user_personals
[
'created'
]
=
$dateNow
;
$user_personals
=
$this
->
UserPersonals
->
patchEntity
(
$user_personals
,
$this
->
request
->
getData
());
$user_personals
=
$this
->
UserPersonals
->
patchEntity
(
$user_personals
,
$this
->
request
->
getData
());
$this
->
UserPersonals
->
save
(
$user_personals
);
$this
->
UserPersonals
->
save
(
$user_personals
);
// $this->Flash->success(__('The register success.'));
// $this->Flash->success(__('The register success.'));
return
$this
->
redirect
([
'controller'
=>
'Users'
,
'action'
=>
'pinCode/'
.
$users
[
'token'
]]);
return
$this
->
redirect
([
'controller'
=>
'Users'
,
'action'
=>
'pinCode/'
.
$users
[
'token'
]]);
// return $this->redirect(['action' => 'signin']);
// return $this->redirect(['action' => 'signin']);
}
}
$this
->
Flash
->
error
(
__
(
'Username or Email Address already used by others.'
));
$this
->
Flash
->
error
(
__
(
'Username or Email Address already used by others.'
));
return
$this
->
redirect
([
'action'
=>
'signup'
]);
return
$this
->
redirect
([
'action'
=>
'signup'
]);
}
else
if
(
empty
(
$this
->
request
->
data
[
'accept'
]))
{
}
else
if
(
empty
(
$this
->
request
->
data
[
'accept'
]))
{
$this
->
Flash
->
error
(
__
(
'please accept'
));
$this
->
Flash
->
error
(
__
(
'please accept'
));
return
$this
->
redirect
([
'action'
=>
'signup'
]);
return
$this
->
redirect
([
'action'
=>
'signup'
]);
}
}
$this
->
Flash
->
error
(
__
(
'The article could not be saved. Please, try again.'
));
$this
->
Flash
->
error
(
__
(
'The article could not be saved. Please, try again.'
));
}
}
}
public
function
notification
(
$data
=
null
)
{
if
(
!
empty
(
$data
)){
$verify_code
=
$data
[
'pin_code'
];
$from_email
=
[
'support@pakgon.com'
=>
'Support'
];
$to_emails
=
[
$data
[
'email'
]];
$email
=
new
Email
();
$email
->
transport
(
'gmail'
);
try
{
$email
->
template
(
'notification_signup'
,
'connect'
);
$email
->
from
(
$from_email
);
$email
->
to
(
$to_emails
);
$email
->
subject
(
'Signup Connect Verify'
);
$email
->
emailFormat
(
'html'
);
$email
->
viewVars
(
compact
(
'verify_code'
));
#$email->send($message);
$email
->
send
();
}
catch
(
Exception
$e
)
{
echo
'Exception : '
,
$e
->
getMessage
(),
"
\n
"
;
}
#$this->httpStatusCode = 200;
#$this->apiResponse['message'] = 'Signup Connect Completed!!';
}
}
}
public
function
notification
(
$data
=
null
)
{
if
(
!
empty
(
$data
))
{
$verify_code
=
$data
[
'pin_code'
];
$from_email
=
[
'support@pakgon.com'
=>
'Support'
];
$to_emails
=
[
$data
[
'email'
]];
$email
=
new
Email
();
$email
->
transport
(
'gmail'
);
try
{
$email
->
template
(
'notification_signup'
,
'connect'
);
$email
->
from
(
$from_email
);
$email
->
to
(
$to_emails
);
$email
->
subject
(
'Signup Connect Verify'
);
$email
->
emailFormat
(
'html'
);
$email
->
viewVars
(
compact
(
'verify_code'
));
#$email->send($message);
$email
->
send
();
}
catch
(
Exception
$e
)
{
echo
'Exception : '
,
$e
->
getMessage
(),
"
\n
"
;
}
#$this->httpStatusCode = 200;
#$this->apiResponse['message'] = 'Signup Connect Completed!!';
}
}
#---------------------------------------------------------------------------------------------------
#---------------------------------------------------------------------------------------------------
function
validateAccount
(
$data
=
null
)
{
function
validateAccount
(
$data
=
null
)
{
...
@@ -284,89 +271,85 @@ class UsersController extends AppController {
...
@@ -284,89 +271,85 @@ class UsersController extends AppController {
// {
// {
// $this->viewBuilder()->layout('blank');
// $this->viewBuilder()->layout('blank');
// }
// }
#Verify Pin Code
#Verify Pin Code
public
function
pinCode
(
$token
=
null
)
{
public
function
pinCode
(
$token
=
null
)
{
$this
->
viewBuilder
()
->
layout
(
'blank'
);
$this
->
viewBuilder
()
->
layout
(
'blank'
);
$data
=
$this
->
request
->
data
();
$data
=
$this
->
request
->
data
();
if
(
!
empty
(
$data
))
{
if
(
!
empty
(
$data
)){
$api_core_verify_pin_code
=
Configure
::
read
(
'Config.apiCore.verifyPinCode'
);
$http
=
new
Client
();
#$response = json_decode($http->post($api_core_verify_pin_code,$data)->body(),'_full');
$response
=
$http
->
post
(
$api_core_verify_pin_code
,
$data
)
->
body
();
$response
=
json_decode
(
$response
,
'_full'
);
if
(
!
empty
(
$response
)){
if
(
trim
(
$response
[
'status'
])
==
'Success'
){
$this
->
Flash
->
success
(
__
(
'Verify Completed.'
));
return
$this
->
redirect
([
'controller'
=>
'Users'
,
'action'
=>
'signin'
]);
}
else
{
$this
->
Flash
->
error
(
__
(
'Pin Code Invalid'
));
return
$this
->
redirect
([
'controller'
=>
'Users'
,
'action'
=>
'pinCode/'
.
$token
]);
}
}
}
$this
->
set
(
array
(
'token'
=>
$token
,
'_serialize'
=>
array
(
'token'
)));
}
#---------------------------------------------------------------------------------------------------
$api_core_verify_pin_code
=
Configure
::
read
(
'Config.apiCore.verifyPinCode'
);
$http
=
new
Client
();
#$response = json_decode($http->post($api_core_verify_pin_code,$data)->body(),'_full');
$response
=
$http
->
post
(
$api_core_verify_pin_code
,
$data
)
->
body
();
$response
=
json_decode
(
$response
,
'_full'
);
if
(
!
empty
(
$response
))
{
if
(
trim
(
$response
[
'status'
])
==
'Success'
)
{
$this
->
Flash
->
success
(
__
(
'Verify Completed.'
));
return
$this
->
redirect
([
'controller'
=>
'Users'
,
'action'
=>
'signin'
]);
}
else
{
$this
->
Flash
->
error
(
__
(
'Pin Code Invalid'
));
return
$this
->
redirect
([
'controller'
=>
'Users'
,
'action'
=>
'pinCode/'
.
$token
]);
}
}
}
$this
->
set
(
array
(
'token'
=>
$token
,
'_serialize'
=>
array
(
'token'
)));
}
/**
#---------------------------------------------------------------------------------------------------
*
* Function user forgot password
public
function
forgotPassword
()
* @return void
{
*/
$this
->
viewBuilder
()
->
layout
(
'blank'
);
public
function
forgotPassword
()
{
$this
->
loadModel
(
'UserPersonals'
);
$this
->
viewBuilder
()
->
layout
(
'blank'
);
if
(
$this
->
request
->
is
(
'post'
))
{
$this
->
loadModel
(
'UserPersonals'
);
$hasher
=
new
DefaultPasswordHasher
();
if
(
$this
->
request
->
is
(
'post'
))
{
$email
=
$this
->
request
->
data
[
'email'
];
$hasher
=
new
DefaultPasswordHasher
();
$user_personals
=
$this
->
UserPersonals
->
find
(
'all'
,[
$email
=
$this
->
request
->
data
[
'email'
];
'conditions'
=>
[
$user_personals
=
$this
->
UserPersonals
->
find
(
'all'
,
[
'UserPersonals.email'
=>
$email
'conditions'
=>
[
]
'UserPersonals.email'
=>
$email
])
->
first
();
]
if
(
!
empty
(
$user_personals
)){
])
->
first
();
if
(
!
empty
(
$user_personals
))
{
$users
=
$this
->
Users
->
find
(
'all'
,[
'conditions'
=>
[
$users
=
$this
->
Users
->
find
(
'all'
,
[
'Users.id'
=>
$user_personals
[
'user_id'
]
'conditions'
=>
[
]
'Users.id'
=>
$user_personals
[
'user_id'
]
])
->
first
();
]
$digits
=
4
;
])
->
first
();
$users
[
'pin_pass'
]
=
str_pad
(
rand
(
0
,
pow
(
10
,
$digits
)
-
1
),
$digits
,
'0'
,
STR_PAD_LEFT
);
$digits
=
4
;
$token
=
$users
[
'token'
];
$users
[
'pin_pass'
]
=
str_pad
(
rand
(
0
,
pow
(
10
,
$digits
)
-
1
),
$digits
,
'0'
,
STR_PAD_LEFT
);
$token
=
$users
[
'token'
];
//--------------------ตัวส่ง Email ---------------------------------------------------------
//pr($user_personals);die;
//--------------------ตัวส่ง Email ---------------------------------------------------------
$data_notification
=
[];
//pr($user_personals);die;
$data_notification
[
'email'
]
=
$this
->
request
->
data
[
'email'
];
$data_notification
=
[];
$data_notification
[
'pin_code'
]
=
$users
[
'pin_pass'
]
.
'<br>'
.
" Username: "
.
$users
[
'username'
];
$data_notification
[
'email'
]
=
$this
->
request
->
data
[
'email'
];
$this
->
notification
(
$data_notification
);
$data_notification
[
'pin_code'
]
=
$users
[
'pin_pass'
];
//----------------------------------------------------------------------------------------
$this
->
notification
(
$data_notification
);
$this
->
Users
->
save
(
$users
);
//----------------------------------------------------------------------------------------
$this
->
Users
->
save
(
$users
);
$this
->
Flash
->
success
(
__
(
'send password to email success'
));
return
$this
->
redirect
([
'action'
=>
'pinCodepassword/'
.
$token
]);
$this
->
Flash
->
success
(
__
(
'send password to email success'
));
}
else
{
return
$this
->
redirect
([
'action'
=>
'pinCodepassword/'
.
$token
]);
$this
->
Flash
->
error
(
__
(
'Invalid Email.'
));
}
else
{
return
$this
->
redirect
([
'action'
=>
'forgot-password'
]);
$this
->
Flash
->
error
(
__
(
'Invalid Email.'
));
}
return
$this
->
redirect
([
'action'
=>
'forgot-password'
]);
}
}
}
}
}
// public function pinCodepassword($token = null) {
// $this->viewBuilder()->layout('blank');
// $users = $this->Users->find('all', [
// 'conditions' => [
// 'Users.token' => $token
// ]
// ])->first();
public
function
pinCodepassword
(
$token
=
null
)
public
function
pinCodepassword
(
$token
=
null
)
{
{
$this
->
viewBuilder
()
->
layout
(
'blank'
);
$this
->
viewBuilder
()
->
layout
(
'blank'
);
...
@@ -440,75 +423,8 @@ class UsersController extends AppController {
...
@@ -440,75 +423,8 @@ class UsersController extends AppController {
}
}
if
(
$this
->
request
->
is
(
'post'
))
{
$data
=
$this
->
request
->
data
();
$data
[
'pin_pass'
]
=
$data
[
'pin_code_1'
]
.
$data
[
'pin_code_2'
]
.
$data
[
'pin_code_3'
]
.
$data
[
'pin_code_4'
];
if
(
$data
[
'pin_pass'
]
==
$users
[
'pin_pass'
])
{
$this
->
Flash
->
success
(
__
(
'Pin Completed.'
));
return
$this
->
redirect
([
'controller'
=>
'Users'
,
'action'
=>
'changeForgotpassword/'
.
$token
]);
}
$this
->
Flash
->
error
(
__
(
'Pin Invalid'
));
return
$this
->
redirect
([
'controller'
=>
'Users'
,
'action'
=>
'pinCodepassword/'
.
$token
]);
}
$this
->
set
(
array
(
'token'
=>
$token
,
'_serialize'
=>
array
(
'token'
)));
}
public
function
changePassword
(
$token
=
null
)
{
$id
=
$this
->
Auth
->
user
(
'id'
);
$this
->
viewBuilder
()
->
layout
(
'blank'
);
$users
=
$this
->
Users
->
get
(
$id
);
if
(
$this
->
request
->
is
(
'post'
))
{
$hasher
=
new
DefaultPasswordHasher
();
$password
=
$this
->
request
->
data
[
'password'
];
$confirm_password
=
$this
->
request
->
data
[
'confirm_password'
];
$oldpassword
=
$this
->
request
->
data
[
'oldpassword'
];
$this
->
request
->
data
[
'password'
]
=
$hasher
->
hash
(
$this
->
request
->
data
[
'password'
]);
//------- เทียบ password ที่เข้ารหัส ---------------password_verify($password,hashed_password)---------------------------
if
(
password_verify
(
$oldpassword
,
$users
[
'password'
]))
{
$users
=
$this
->
Users
->
patchEntity
(
$users
,
$this
->
request
->
getData
());
$this
->
Users
->
save
(
$users
);
$this
->
Flash
->
success
(
__
(
'change password success'
));
$this
->
Flash
->
success
(
__
(
'You are now logged out.'
));
return
$this
->
redirect
([
'action'
=>
'signout'
]);
}
else
{
$this
->
Flash
->
error
(
__
(
'Invalid password.'
));
return
$this
->
redirect
([
'action'
=>
'change-password'
]);
}
}
$this
->
set
(
array
(
'token'
=>
$token
,
'_serialize'
=>
array
(
'token'
)));
}
public
function
changeForgotpassword
(
$token
=
null
)
{
$this
->
viewBuilder
()
->
layout
(
'blank'
);
$users
=
$this
->
Users
->
find
(
'all'
,
[
'conditions'
=>
[
'Users.token'
=>
$token
]
])
->
first
();
if
(
$this
->
request
->
is
(
'post'
))
{
$hasher
=
new
DefaultPasswordHasher
();
$password
=
$this
->
request
->
data
[
'password'
];
//$confirm_password = $this->request->data['confirm_password'];
$this
->
request
->
data
[
'password'
]
=
$hasher
->
hash
(
$this
->
request
->
data
[
'password'
]);
//------- เทียบ password ที่เข้ารหัส ---------------password_verify($password,hashed_password)---------------------------
$users
=
$this
->
Users
->
patchEntity
(
$users
,
$this
->
request
->
getData
());
if
(
$this
->
Users
->
save
(
$users
))
{
$this
->
Flash
->
success
(
__
(
'change password success'
));
return
$this
->
redirect
([
'action'
=>
'signin'
]);
}
$this
->
Flash
->
error
(
__
(
'Invalid password.'
));
return
$this
->
redirect
([
'action'
=>
'change_forgotpassword'
]);
}
$this
->
set
(
array
(
'token'
=>
$token
,
'_serialize'
=>
array
(
'token'
)));
}
#---------------------------------------------------------------------------------------------------
#---------------------------------------------------------------------------------------------------
/**
/**
*
*
* Function user logout / signout
* Function user logout / signout
...
@@ -524,7 +440,6 @@ class UsersController extends AppController {
...
@@ -524,7 +440,6 @@ class UsersController extends AppController {
return
$this
->
redirect
(
$this
->
Auth
->
logout
());
return
$this
->
redirect
(
$this
->
Auth
->
logout
());
}
}
public
function
forgotsendpin
(
$token
=
null
)
{
public
function
forgotsendpin
(
$token
=
null
)
{
$this
->
loadModel
(
'UserPersonals'
);
$this
->
loadModel
(
'UserPersonals'
);
$users
=
$this
->
Users
->
find
(
'all'
,[
$users
=
$this
->
Users
->
find
(
'all'
,[
...
@@ -583,7 +498,7 @@ class UsersController extends AppController {
...
@@ -583,7 +498,7 @@ class UsersController extends AppController {
}
}
$this
->
Flash
->
success
(
__
(
'send pin false.'
));
$this
->
Flash
->
success
(
__
(
'send pin false.'
));
return
$this
->
redirect
([
'action'
=>
'pin_code/'
.
$token
]);
return
$this
->
redirect
([
'action'
=>
'pin_code/'
.
$token
]);
}
}
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment