Session class
This commit is contained in:
parent
7f8503aa15
commit
43df706e66
@ -108,17 +108,21 @@ switch ($_POST['function']) {
|
|||||||
|
|
||||||
// Session Function
|
// Session Function
|
||||||
|
|
||||||
case 'init': echo json_encode(init('admin', $_POST['version']));
|
case 'init': if (!isset($_POST['version'])) exit();
|
||||||
|
$session = new Session($plugins, $settings);
|
||||||
|
echo json_encode($session->init(false, $_POST['version']));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'login': if (isset($_POST['user'], $_POST['password']))
|
case 'login': if (!isset($_POST['user'], $_POST['password'])) exit();
|
||||||
echo login($_POST['user'], $_POST['password']);
|
$session = new Session($plugins, $settings);
|
||||||
|
echo $session->login($_POST['user'], $_POST['password']);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'logout': logout();
|
case 'logout': $session = new Session($plugins, $settings);
|
||||||
|
echo $session->logout();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
// Settings
|
// Settings Function
|
||||||
|
|
||||||
case 'setLogin': if (isset($_POST['username'], $_POST['password']))
|
case 'setLogin': if (isset($_POST['username'], $_POST['password']))
|
||||||
if (!isset($_POST['oldPassword'])) $_POST['oldPassword'] = '';
|
if (!isset($_POST['oldPassword'])) $_POST['oldPassword'] = '';
|
||||||
|
@ -53,11 +53,13 @@ switch ($_POST['function']) {
|
|||||||
|
|
||||||
// Session Functions
|
// Session Functions
|
||||||
|
|
||||||
case 'init': echo json_encode(init('public', $_POST['version']));
|
case 'init': $session = new Session($plugins, $settings);
|
||||||
|
echo json_encode($session->init(true, $_POST['version']));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'login': if (isset($_POST['user'], $_POST['password']))
|
case 'login': if (!isset($_POST['user'], $_POST['password'])) exit();
|
||||||
echo login($_POST['user'], $_POST['password']);
|
$session = new Session($plugins, $settings);
|
||||||
|
echo $session->login($_POST['user'], $_POST['password']);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
// Miscellaneous
|
// Miscellaneous
|
||||||
|
@ -25,7 +25,7 @@ if (!empty($_POST['function'])||!empty($_GET['function'])) {
|
|||||||
require('modules/db.php');
|
require('modules/db.php');
|
||||||
require('modules/misc.php');
|
require('modules/misc.php');
|
||||||
require('modules/photo.php');
|
require('modules/photo.php');
|
||||||
require('modules/session.php');
|
require('modules/_session.php');
|
||||||
require('modules/settings.php');
|
require('modules/settings.php');
|
||||||
require('modules/upload.php');
|
require('modules/upload.php');
|
||||||
|
|
||||||
|
110
php/modules/_session.php
Executable file
110
php/modules/_session.php
Executable file
@ -0,0 +1,110 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
###
|
||||||
|
# @name Session Module
|
||||||
|
# @author Tobias Reich
|
||||||
|
# @copyright 2014 by Tobias Reich
|
||||||
|
###
|
||||||
|
|
||||||
|
if (!defined('LYCHEE')) exit('Error: Direct access is not allowed!');
|
||||||
|
|
||||||
|
class Session {
|
||||||
|
|
||||||
|
private $plugins = null;
|
||||||
|
private $settings = null;
|
||||||
|
|
||||||
|
public function __construct($plugins, $settings) {
|
||||||
|
|
||||||
|
# Init vars
|
||||||
|
$this->plugins = $plugins;
|
||||||
|
$this->settings = $settings;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private function plugins($name, $location, $args) {
|
||||||
|
|
||||||
|
if (!isset($this->plugins, $name, $location, $args)) return false;
|
||||||
|
|
||||||
|
# Parse
|
||||||
|
$location = ($location===0 ? 'before' : 'after');
|
||||||
|
|
||||||
|
# Call plugins
|
||||||
|
$this->plugins->activate($name . ":" . $location, $args);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function init($public, $version) {
|
||||||
|
|
||||||
|
if (!isset($this->settings, $public, $version)) return false;
|
||||||
|
|
||||||
|
global $configVersion;
|
||||||
|
|
||||||
|
# Update
|
||||||
|
if ($configVersion!==$version)
|
||||||
|
if (!update($version)) exit('Error: Updating the database failed!');
|
||||||
|
|
||||||
|
# Return settings
|
||||||
|
$return['config'] = $this->settings;
|
||||||
|
unset($return['config']['password']);
|
||||||
|
|
||||||
|
# No login
|
||||||
|
if ($this->settings['username']===''&&$this->settings['password']==='') $return['config']['login'] = false;
|
||||||
|
else $return['config']['login'] = true;
|
||||||
|
|
||||||
|
if ($public===false) {
|
||||||
|
|
||||||
|
# Logged in
|
||||||
|
$return['loggedIn'] = true;
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
# Unset unused vars
|
||||||
|
unset($return['config']['username']);
|
||||||
|
unset($return['config']['thumbQuality']);
|
||||||
|
unset($return['config']['sorting']);
|
||||||
|
unset($return['config']['dropboxKey']);
|
||||||
|
unset($return['config']['login']);
|
||||||
|
|
||||||
|
# Logged out
|
||||||
|
$return['loggedIn'] = false;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return $return;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function login($username, $password) {
|
||||||
|
|
||||||
|
if (!isset($this->settings, $username, $password)) return false;
|
||||||
|
|
||||||
|
# Check login
|
||||||
|
if ($username===$this->settings['username']&&$password===$this->settings['password']) {
|
||||||
|
$_SESSION['login'] = true;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
# No login
|
||||||
|
if ($this->settings['username']===''&&$this->settings['password']==='') {
|
||||||
|
$_SESSION['login'] = true;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function logout() {
|
||||||
|
|
||||||
|
session_destroy();
|
||||||
|
return true;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
@ -1,69 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @name Session Module
|
|
||||||
* @author Philipp Maurer
|
|
||||||
* @author Tobias Reich
|
|
||||||
* @copyright 2014 by Philipp Maurer, Tobias Reich
|
|
||||||
*/
|
|
||||||
|
|
||||||
if (!defined('LYCHEE')) exit('Error: Direct access is not allowed!');
|
|
||||||
|
|
||||||
function init($mode, $version) {
|
|
||||||
|
|
||||||
global $settings, $configVersion;
|
|
||||||
|
|
||||||
// Update
|
|
||||||
if ($configVersion!==$version)
|
|
||||||
if (!update($version)) exit('Error: Updating the database failed!');
|
|
||||||
|
|
||||||
$return['config'] = $settings;
|
|
||||||
unset($return['config']['password']);
|
|
||||||
|
|
||||||
// No login
|
|
||||||
if ($settings['username']===''&&$settings['password']==='') $return['config']['login'] = false;
|
|
||||||
else $return['config']['login'] = true;
|
|
||||||
|
|
||||||
if ($mode==='admin') {
|
|
||||||
$return['loggedIn'] = true;
|
|
||||||
} else {
|
|
||||||
unset($return['config']['username']);
|
|
||||||
unset($return['config']['thumbQuality']);
|
|
||||||
unset($return['config']['sorting']);
|
|
||||||
unset($return['config']['dropboxKey']);
|
|
||||||
unset($return['config']['login']);
|
|
||||||
$return['loggedIn'] = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return $return;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
function login($username, $password) {
|
|
||||||
|
|
||||||
global $database, $settings;
|
|
||||||
|
|
||||||
// Check login
|
|
||||||
if ($username===$settings['username']&&$password===$settings['password']) {
|
|
||||||
$_SESSION['login'] = true;
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// No login
|
|
||||||
if ($settings['username']===''&&$settings['password']==='') {
|
|
||||||
$_SESSION['login'] = true;
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
function logout() {
|
|
||||||
|
|
||||||
session_destroy();
|
|
||||||
return true;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
?>
|
|
Loading…
Reference in New Issue
Block a user