Merge branch 'master' of disposed.de:scattport
This commit is contained in:
@@ -41,6 +41,9 @@
|
||||
$route['default_controller'] = "auth";
|
||||
$route['404_override'] = '';
|
||||
|
||||
$route['(\w{2})/(.*)'] = '$2';
|
||||
$route['(\w{2})'] = $route['default_controller'];
|
||||
|
||||
|
||||
/* End of file routes.php */
|
||||
/* Location: ./application/config/routes.php */
|
||||
@@ -128,9 +128,8 @@ class Lang_detect {
|
||||
for ($i = $this->CI->uri->total_segments(); $i > 0; $i--) {
|
||||
$segment = $this->CI->uri->segment($i);
|
||||
// the uri segment with the language code has the prefix 'l_'
|
||||
if (!empty($segment) && (strpos($segment, 'l_') === 0)) {
|
||||
// extract the language code
|
||||
return substr($segment, 2);
|
||||
if (strlen($segment) == 2 && array_key_exists($segment, $this->languages)) {
|
||||
return $segment;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
|
||||
84
application/libraries/MY_Session.php
Normal file
84
application/libraries/MY_Session.php
Normal file
@@ -0,0 +1,84 @@
|
||||
<?php defined('BASEPATH') || exit("No direct script access allowed");
|
||||
|
||||
/**
|
||||
* Extends CI's session class.
|
||||
*
|
||||
* @author Eike Foken
|
||||
*/
|
||||
class MY_Session extends CI_Session {
|
||||
|
||||
/**
|
||||
* Calls the parent constructor.
|
||||
*/
|
||||
public function __construct() {
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
/**
|
||||
* Generates a random and unique session ID.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
private function generateHash() {
|
||||
return sha1(uniqid(microtime() . $this->CI->input->ip_address(), true));
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a new session.
|
||||
*/
|
||||
public function sess_create() {
|
||||
$this->userdata = array(
|
||||
'session_id' => $this->generateHash(),
|
||||
'ip_address' => $this->CI->input->ip_address(),
|
||||
'user_agent' => substr($this->CI->input->user_agent(), 0, 50),
|
||||
'last_activity' => $this->now
|
||||
);
|
||||
|
||||
// save data to the DB if needed
|
||||
if ($this->sess_use_database === true) {
|
||||
$this->CI->db->insert($this->sess_table_name, $this->userdata);
|
||||
}
|
||||
|
||||
// write the cookie
|
||||
$this->_set_cookie();
|
||||
}
|
||||
|
||||
/**
|
||||
* Updates an existing session.
|
||||
*/
|
||||
public function sess_update() {
|
||||
if ($this->userdata['last_activity'] + $this->sess_time_to_update >= $this->now) {
|
||||
return;
|
||||
}
|
||||
|
||||
$oldSessionID = $this->userdata['session_id'];
|
||||
$newSessionID = $this->generateHash();
|
||||
|
||||
$this->userdata['session_id'] = $newSessionID;
|
||||
$this->userdata['last_activity'] = $this->now;
|
||||
|
||||
$cookieData = null;
|
||||
|
||||
// update the DB if needed
|
||||
if ($this->sess_use_database === true) {
|
||||
// set cookie explicitly to only have our session data
|
||||
$cookieData = array();
|
||||
foreach (array('session_id', 'user_id', 'ip_address', 'user_agent', 'last_activity') as $val) {
|
||||
$cookieData[$val] = $this->userdata[$val];
|
||||
}
|
||||
|
||||
$this->CI->db->update($this->sess_table_name, array('last_activity' => $this->now, 'user_id' => $this->userdata['user_id'], 'session_id' => $newSessionID), array('session_id' => $oldSessionID));
|
||||
|
||||
// update users table if user is logged in
|
||||
if (array_key_exists('user_id', $this->userdata) && $this->userdata['user_id'] > 0) {
|
||||
$this->CI->db->update('users', array('last_activity' => $this->now), array('id' => $this->userdata['user_id']));
|
||||
}
|
||||
}
|
||||
|
||||
// write the cookie
|
||||
$this->_set_cookie($cookieData);
|
||||
}
|
||||
}
|
||||
|
||||
/* End of file MY_Session.php */
|
||||
/* Location: ./application/libraries/MY_Session.php */
|
||||
@@ -274,7 +274,6 @@ class User extends CI_Model {
|
||||
|
||||
$session_data = array(
|
||||
'username' => $result->username,
|
||||
'id' => $result->id, // kept for backwards compatibility
|
||||
'user_id' => $result->id,
|
||||
'group_id' => $result->group_id,
|
||||
'group' => $group->name
|
||||
|
||||
Reference in New Issue
Block a user