Move settings to auth controller

This commit is contained in:
Eike Foken
2011-08-11 19:05:31 +02:00
parent 353c870872
commit 78c71b7ae9
6 changed files with 38 additions and 115 deletions

View File

@@ -122,7 +122,7 @@ $config['users/edit'] = array(
* *
* @var array * @var array
*/ */
$config['settings/index'] = array( $config['auth/settings'] = array(
array( array(
'field' => 'firstname', 'field' => 'firstname',
'label' => _('First name'), 'label' => _('First name'),
@@ -148,6 +148,11 @@ $config['settings/index'] = array(
'label' => _('Phone number'), 'label' => _('Phone number'),
'rules' => 'regex_match[/^\+\d{2,4}\s\d{2,4}\s\d{3,10}+$/i]|trim', 'rules' => 'regex_match[/^\+\d{2,4}\s\d{2,4}\s\d{3,10}+$/i]|trim',
), ),
array(
'field' => 'new_password',
'label' => _('New password'),
'rules' => 'min_length[6]|matches[new_password_confirm]',
),
); );
/* End of file form_validation.php */ /* End of file form_validation.php */

View File

@@ -106,14 +106,9 @@ class Auth extends CI_Controller {
* Allows users to edit their settings. * Allows users to edit their settings.
*/ */
public function settings() { public function settings() {
if (!$this->access->loggedIn()) { $user = $this->access->getCurrentUser();
redirect('auth/login', 'refresh');
}
// validate the form if ($this->form_validation->run() === true) {
$this->form_validation->set_rules('new_password', _('New password'), 'min_length[' . $this->config->item('min_password_length', 'auth') . ']|max_length[' . $this->config->item('max_password_length', 'access') . ']|matches[new_password_confirm]');
if ($this->form_validation->run() == true) {
// change password if needed // change password if needed
if ($this->input->post('new_password') != '') { if ($this->input->post('new_password') != '') {
$username = $this->session->userdata('username'); $username = $this->session->userdata('username');
@@ -124,29 +119,24 @@ class Auth extends CI_Controller {
} }
} }
// update user // update users table
$updateData = array( $data = array(
'email' => $this->input->post('email'),
'firstname' => $this->input->post('firstname'), 'firstname' => $this->input->post('firstname'),
'lastname' => $this->input->post('lastname'), 'lastname' => $this->input->post('lastname'),
'institution' => $this->input->post('institution'), 'institution' => $this->input->post('institution'),
'phone' => $this->input->post('phone'), 'phone' => $this->input->post('phone')
'email' => $this->input->post('email'),
); );
$this->access->updateUser($this->session->userdata('user_id'), $updateData);
// output JSON data if ($this->user->update($user['id'], $data)) {
$this->output->set_content_type('application/json') $this->messages->add(_("Settings saved successfully"), 'success');
->set_output(json_encode(array('success' => true))); redirect('auth/settings', 303);
} else {
$data['success'] = true;
$data['data'] = $this->access->getCurrentUser();
// output JSON data
$this->output->set_content_type('application/json')
->set_output(json_encode($data));
} }
} }
$this->load->view('auth/settings', $user);
}
/** /**
* Allows users to request a new password. * Allows users to request a new password.
*/ */

View File

@@ -1,62 +0,0 @@
<?php
/*
* Copyright (c) 2011 Karsten Heiken <karsten@disposed.de>
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
/**
* @author Karsten Heiken <karsten@disposed.de>
*/
class Settings extends CI_Controller {
/**
* Constructor.
*/
public function __construct() {
parent::__construct();
$this->load->model('program');
$this->load->library('form_validation');
}
/**
* Show a list of all available programs.
*/
public function index() {
$user = $this->access->getCurrentUser();
if ($this->form_validation->run() === true) {
$data = array(
'email' => $this->input->post('email'),
'firstname' => $this->input->post('firstname'),
'lastname' => $this->input->post('lastname'),
'institution' => $this->input->post('institution'),
'phone' => $this->input->post('phone')
);
if ($this->user->update($user['id'], $data)) {
$this->messages->add(_("Settings saved successfully"), 'success');
redirect('settings', 303);
}
}
$this->load->view('user/settings', $user);
}
}

View File

@@ -1,7 +1,7 @@
<?php $this->load->view('header');?> <?php $this->load->view('header');?>
<div id="content"> <div id="content">
<form name="settings" action="<?=('settings');?>" method="post"> <form name="settings" action="<?=site_url('auth/settings');?>" method="post">
<div class="title"> <div class="title">
<h2><?=_('Settings');?></h2> <h2><?=_('Settings');?></h2>
</div> </div>

View File

@@ -29,7 +29,7 @@
<option value="<?=site_url('projects');?>">Projekte verwalten</option> <option value="<?=site_url('projects');?>">Projekte verwalten</option>
</select> </select>
</div> </div>
<div class="menu"><?= _('Hello,') ?> <a href="<?=site_url('');?>"><?=$this->user->profile()->firstname;?> <?=$this->user->profile()->lastname;?></a>! | <?=lang_select('assets/images');?> | <a href="#"><?=_('Help')?></a> | <?=anchor('settings', _('Settings'));?> | <?=anchor('auth/logout', _('Logout'));?></div> <div class="menu"><?= _('Hello,') ?> <a href="<?=site_url('');?>"><?=$this->user->profile()->firstname;?> <?=$this->user->profile()->lastname;?></a>! | <?=lang_select('assets/images');?> | <a href="#"><?=_('Help')?></a> | <?=anchor('auth/settings', _('Settings'));?> | <?=anchor('auth/logout', _('Logout'));?></div>
</div> </div>
<div id="wrapper"> <div id="wrapper">

View File

@@ -1,10 +0,0 @@
<html>
<head>
<title>403 Forbidden</title>
</head>
<body>
<p>Directory access is forbidden.</p>
</body>
</html>