Skip to content
Snippets Groups Projects
Commit 4a335cae authored by Andrew Rudenets's avatar Andrew Rudenets
Browse files

Добавление обработчика для настроек аккаунта

parent 8b931081
Branches
Tags
No related merge requests found
<?php defined('SYSPATH') or die('No direct script access.');
class Controller_Handler_Sign extends Controller {
protected $model, $post;
public function before() {
parent::before();
$this->model = new Model_Account;
$this->post = Validation::factory(Arr::map('trim', $_POST));
if(!$this->request->is_ajax() || Auth::isLoggedIn())
throw HTTP_Exception::factory (403, 'no access');
}
public function action_changeLogin()
{
$success = true;
$this->post->rule('login', 'alpha_dash')->rule('login', 'not_empty');
if($success = $this->post->check())
{
if($this->model->isAccountExists($this->post->offsetGet('login'), ''))
$success = false;
}
$user = Auth::getData();
if($success)
$this->model->changeLogin($user['ID'], $this->post->offsetGet('login'));
$this->response->body("{'success': '$success' }");
}
public function action_changePassword()
{
$success = true;
$this->post
->rule('password', 'min_length', array(':value', 8))
->rule('confirm_password', 'matches', array(':validation', 'confirm_password', 'password'));
$user = Auth::getData();
$data = $this->model->getAccountInfoByID($user['ID'])->offsetGet(0);
if($success = $this->model->getAccountInfoByLogin($data['Login'], sha1($this->post->offsetGet('old_password'))))
$this->model->changePassword($user['ID'], sha1($this->post->offsetGet('password')));
$this->response->body("{'success': '$success'}");
}
public function action_changeEMail()
{
}
public function action_confirmNewEMail()
{
}
}
\ No newline at end of file
...@@ -6,16 +6,14 @@ class Controller_Handler_Sign extends Controller { ...@@ -6,16 +6,14 @@ class Controller_Handler_Sign extends Controller {
public function before() { public function before() {
parent::before(); parent::before();
$this->model = new Model_Sign; $this->model = new Model_Account;
if(!$this->request->is_ajax() || Auth::isLoggedIn())
throw HTTP_Exception::factory (403, 'no access');
} }
public function action_in() public function action_in()
{ {
if(!$this->request->is_ajax() || Auth::isLoggedIn())
{
$this->response->body("{'success': 'false', 'errors': 'no access'}");
return;
}
list($response, $data) = $this->checkAuthData(Arr::map('trim', $_POST)); list($response, $data) = $this->checkAuthData(Arr::map('trim', $_POST));
if($response['success']) if($response['success'])
{ {
...@@ -45,11 +43,6 @@ class Controller_Handler_Sign extends Controller { ...@@ -45,11 +43,6 @@ class Controller_Handler_Sign extends Controller {
public function action_up() public function action_up()
{ {
if(!$this->request->is_ajax() || Auth::isLoggedIn())
{
$this->response->body("{'success': 'false', 'errors': 'no access'}");
return;
}
$data = Arr::map('trim', $_POST); $data = Arr::map('trim', $_POST);
$response = $this->validateActivationData($data); $response = $this->validateActivationData($data);
if($response['success']) if($response['success'])
......
...@@ -28,13 +28,10 @@ class Controller_Student_Index extends Controller_UserEnvi { ...@@ -28,13 +28,10 @@ class Controller_Student_Index extends Controller_UserEnvi {
$this->response->body($twig); $this->response->body($twig);
} }
public function action_settings() { public function action_settings() {
$twig = Twig::factory('settings'); $twig = Twig::factory('settings');
$this->UserInfo['EMail'] = 'example@exp.com';
$this->UserInfo['Login'] = 'You Login';
$twig->User = $this->UserInfo; $twig->User = $this->UserInfo;
// $this->response->body($twig);
$this->response->body($twig); }
}
} }
...@@ -11,14 +11,15 @@ class Controller_UserEnvi extends Controller { ...@@ -11,14 +11,15 @@ class Controller_UserEnvi extends Controller {
} }
else else
{ {
$model = new Model_Sign; $model = new Model_Account;
$user = Auth::getData(); $user = Auth::getData();
$this->UserInfo = $model->getFullInfoByID($user['ID'])->offsetGet(0); $this->UserInfo = $model->getPersonalInfoByID($user['ID'])->offsetGet(0);
$directory = $this->request->directory(); $this->UserInfo += $model->getAccountInfoByID($user['ID'])->offsetGet(0);
if(!empty($directory)) $this->UserInfo['EMail'] = $this->UserInfo['E-Mail'];
if(UTF8::strcasecmp($this->request->directory(), $user['Type'])) unset($this->UserInfo['E-Mail']);
//throw HTTP_Exception::factory(404, $this->request->directory()); $directory = $this->request->directory();
throw HTTP_Exception::factory(404, 'Не пытайтесь попасть туда, куда попадать не следует.'); if(!empty($directory) && UTF8::strcasecmp($this->request->directory(), $user['Type']))
throw HTTP_Exception::factory(404, 'Не пытайтесь попасть туда, куда попадать не следует.');
} }
} }
......
<?php defined('SYSPATH') or die('No direct script access.'); <?php defined('SYSPATH') or die('No direct script access.');
class Model_Sign extends Model class Model_Account extends Model
{ {
public function getAccountInfoByLogin($login, $password) public function getAccountInfoByLogin($login, $password)
{ {
...@@ -16,25 +16,40 @@ class Model_Sign extends Model ...@@ -16,25 +16,40 @@ class Model_Sign extends Model
return $query; return $query;
} }
public function getFullInfoByID($id) public function getPersonalInfoByID($id)
{ {
$sql = "CALL GetPersonalInfoByID('$id');"; $sql = "CALL GetPersonalInfoByID('$id');";
$query = DB::query(Database::SELECT, $sql)->execute(); $query = DB::query(Database::SELECT, $sql)->execute();
return $query; return $query;
} }
public function getAccountInfoByID($id)
{
$sql = "CALL GetAccInfoByID('$id');";
$query = DB::query(Database::SELECT, $sql)->execute();
return $query;
}
public function changePassword($id, $password)
{
$sql = "SELECT ChangePassword('$id', '$password') AS Num;";
$query = DB::query(Database::SELECT, $sql)->execute();
return $query;
}
public function changeLogin($id, $login)
{
return true;
}
public function isAccountExists($login, $email) public function isAccountExists($login, $email)
{ {
$sql = "SELECT GetAccNumByLogin('$login') AS Num;"; $sql = "SELECT GetAccNumByLogin('$login') AS Num;";
$login = DB::query(Database::SELECT, $sql)->execute(); $login = DB::query(Database::SELECT, $sql)->execute();
/* foreach ($login as $value) {
$login_count = $value['Num'];
} */
$sql = "SELECT GetAccNumByMail('$email') AS Num;"; $sql = "SELECT GetAccNumByMail('$email') AS Num;";
$email = DB::query(Database::SELECT, $sql)->execute(); $email = DB::query(Database::SELECT, $sql)->execute();
/* foreach ($email as $value) {
$email_count = $value['Num'];
} */
if(($login->get('Num') + $email->get('Num')) != 0) if(($login->get('Num') + $email->get('Num')) != 0)
return array('login' => $login->get('Num'), 'email' => $email->get('Num')); return array('login' => $login->get('Num'), 'email' => $email->get('Num'));
else else
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
<div class="settingsSection"> <div class="settingsSection">
<div class="itemBlock"> <div class="itemBlock">
<div class="title">Логин:</div> <div class="title">Логин:</div>
<div class="field"><input type="text" class="inputLogin inputText" value="{{User.Login}}"></div> <div class="field"><input type="text" class="inputLogin inputText" value="{{ User.Login }}"></div>
</div> </div>
<button class="changeLogin saveSettings">Изменить логин</button> <button class="changeLogin saveSettings">Изменить логин</button>
</div> </div>
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
<div class="settingsSection"> <div class="settingsSection">
<div class="itemBlock"> <div class="itemBlock">
<div class="title">Текущей адрес:</div> <div class="title">Текущей адрес:</div>
<div class="field"><input type="text" class="inputText" value="{{User.EMail}}" readonly></div> <div class="field"><input type="text" class="inputText" value="{{ User.EMail }}" readonly></div>
</div> </div>
<div class="itemBlock"> <div class="itemBlock">
<div class="title">Новый адрес:</div> <div class="title">Новый адрес:</div>
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment