|
|
@@ -1,16 +1,17 @@
|
|
|
<?php
|
|
|
|
|
|
-function login($array){
|
|
|
+function login($array)
|
|
|
+{
|
|
|
// Grab username and Password from login form
|
|
|
foreach ($array['data'] as $items) {
|
|
|
foreach ($items as $key => $value) {
|
|
|
- if($key == 'name'){
|
|
|
+ if ($key == 'name') {
|
|
|
$newKey = $value;
|
|
|
}
|
|
|
- if($key == 'value'){
|
|
|
+ if ($key == 'value') {
|
|
|
$newValue = $value;
|
|
|
}
|
|
|
- if(isset($newKey) && isset($newValue)){
|
|
|
+ if (isset($newKey) && isset($newValue)) {
|
|
|
$$newKey = $newValue;
|
|
|
}
|
|
|
}
|
|
|
@@ -18,82 +19,84 @@ function login($array){
|
|
|
$username = strtolower($username);
|
|
|
$days = (isset($remember)) ? 7 : 1;
|
|
|
try {
|
|
|
- $database = new Dibi\Connection([
|
|
|
- 'driver' => 'sqlite3',
|
|
|
- 'database' => $GLOBALS['dbLocation'].$GLOBALS['dbName'],
|
|
|
- ]);
|
|
|
+ $database = new Dibi\Connection([
|
|
|
+ 'driver' => 'sqlite3',
|
|
|
+ 'database' => $GLOBALS['dbLocation'].$GLOBALS['dbName'],
|
|
|
+ ]);
|
|
|
$authSuccess = false;
|
|
|
- $function = 'plugin_auth_'.$GLOBALS['authBackend'];
|
|
|
- $result = $database->fetch('SELECT * FROM users WHERE username = ? COLLATE NOCASE OR email = ? COLLATE NOCASE',$username,$username);
|
|
|
- switch ($GLOBALS['authType']) {
|
|
|
- case 'external':
|
|
|
- if (function_exists($function)) {
|
|
|
- $authSuccess = $function($username, $password);
|
|
|
- }
|
|
|
- break;
|
|
|
- case 'both':
|
|
|
- if (function_exists($function)) {
|
|
|
- $authSuccess = $function($username, $password);
|
|
|
- }
|
|
|
- default: // Internal
|
|
|
- if (!$authSuccess) {
|
|
|
- // perform the internal authentication step
|
|
|
- if(password_verify($password, $result['password'])){
|
|
|
+ $function = 'plugin_auth_'.$GLOBALS['authBackend'];
|
|
|
+ $result = $database->fetch('SELECT * FROM users WHERE username = ? COLLATE NOCASE OR email = ? COLLATE NOCASE', $username, $username);
|
|
|
+ switch ($GLOBALS['authType']) {
|
|
|
+ case 'external':
|
|
|
+ if (function_exists($function)) {
|
|
|
+ $authSuccess = $function($username, $password);
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 'both':
|
|
|
+ if (function_exists($function)) {
|
|
|
+ $authSuccess = $function($username, $password);
|
|
|
+ }
|
|
|
+ // no break
|
|
|
+ default: // Internal
|
|
|
+ if (!$authSuccess) {
|
|
|
+ // perform the internal authentication step
|
|
|
+ if (password_verify($password, $result['password'])) {
|
|
|
$authSuccess = true;
|
|
|
}
|
|
|
- }
|
|
|
- }
|
|
|
+ }
|
|
|
+ }
|
|
|
if ($authSuccess) {
|
|
|
- // Make sure user exists in database
|
|
|
- $userExists = false;
|
|
|
+ // Make sure user exists in database
|
|
|
+ $userExists = false;
|
|
|
$token = (is_array($authSuccess) && isset($authSuccess['token']) ? $authSuccess['token'] : '');
|
|
|
- if($result['username']){
|
|
|
+ if ($result['username']) {
|
|
|
$userExists = true;
|
|
|
- $username = $result['username'];
|
|
|
+ $username = $result['username'];
|
|
|
$passwordMatches = (password_verify($password, $result['password'])) ? true : false;
|
|
|
}
|
|
|
- if ($userExists) {
|
|
|
+ if ($userExists) {
|
|
|
//does org password need to be updated
|
|
|
- if(!$passwordMatches){
|
|
|
+ if (!$passwordMatches) {
|
|
|
$database->query('
|
|
|
UPDATE users SET', [
|
|
|
- 'password' => password_hash($password, PASSWORD_BCRYPT)
|
|
|
- ], '
|
|
|
+ 'password' => password_hash($password, PASSWORD_BCRYPT)
|
|
|
+ ], '
|
|
|
WHERE id=?', $result['id']);
|
|
|
writeLog('success', 'Login Function - User Password updated from backend', $username);
|
|
|
}
|
|
|
- // authentication passed - 1) mark active and update token
|
|
|
- if(createToken($result['username'],$result['email'],$result['image'],$result['group'],$result['group_id'],$GLOBALS['organizrHash'],$days)){
|
|
|
+ // authentication passed - 1) mark active and update token
|
|
|
+ if (createToken($result['username'], $result['email'], $result['image'], $result['group'], $result['group_id'], $GLOBALS['organizrHash'], $days)) {
|
|
|
writeLoginLog($username, 'success');
|
|
|
writeLog('success', 'Login Function - A User has logged in', $username);
|
|
|
ssoCheck($username, $password, $token); //need to work on this
|
|
|
return true;
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
return 'error';
|
|
|
}
|
|
|
- } else {
|
|
|
- // Create User
|
|
|
+ } else {
|
|
|
+ // Create User
|
|
|
ssoCheck($username, $password, $token);
|
|
|
- return authRegister((is_array($authSuccess) && isset($authSuccess['username']) ? $authSuccess['username'] : $username),$password,'',(is_array($authSuccess) && isset($authSuccess['email']) ? $authSuccess['email'] : ''));
|
|
|
- }
|
|
|
- } else {
|
|
|
- // authentication failed
|
|
|
+ return authRegister((is_array($authSuccess) && isset($authSuccess['username']) ? $authSuccess['username'] : $username), $password, '', (is_array($authSuccess) && isset($authSuccess['email']) ? $authSuccess['email'] : ''));
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ // authentication failed
|
|
|
writeLoginLog($username, 'error');
|
|
|
writeLog('error', 'Login Function - Wrong Password', $username);
|
|
|
- return 'mismatch';
|
|
|
- }
|
|
|
+ return 'mismatch';
|
|
|
+ }
|
|
|
} catch (Dibi\Exception $e) {
|
|
|
- return 'error';
|
|
|
+ return 'error';
|
|
|
}
|
|
|
}
|
|
|
-function createDB($path,$filename) {
|
|
|
+function createDB($path, $filename)
|
|
|
+{
|
|
|
try {
|
|
|
- $createDB = new Dibi\Connection([
|
|
|
- 'driver' => 'sqlite3',
|
|
|
- 'database' => $path.$filename,
|
|
|
- ]);
|
|
|
+ $createDB = new Dibi\Connection([
|
|
|
+ 'driver' => 'sqlite3',
|
|
|
+ 'database' => $path.$filename,
|
|
|
+ ]);
|
|
|
// Create Users
|
|
|
- $users = $createDB->query('CREATE TABLE `users` (
|
|
|
+ $users = $createDB->query('CREATE TABLE `users` (
|
|
|
`id` INTEGER PRIMARY KEY AUTOINCREMENT UNIQUE,
|
|
|
`username` TEXT UNIQUE,
|
|
|
`password` TEXT,
|
|
|
@@ -129,8 +132,8 @@ function createDB($path,$filename) {
|
|
|
`image` TEXT,
|
|
|
`default` INTEGER
|
|
|
);');
|
|
|
- // Create Tabs
|
|
|
- $tabs = $createDB->query('CREATE TABLE `tabs` (
|
|
|
+ // Create Tabs
|
|
|
+ $tabs = $createDB->query('CREATE TABLE `tabs` (
|
|
|
`id` INTEGER PRIMARY KEY AUTOINCREMENT UNIQUE,
|
|
|
`order` INTEGER,
|
|
|
`category_id` INTEGER,
|
|
|
@@ -146,14 +149,14 @@ function createDB($path,$filename) {
|
|
|
`ping` INTEGER,
|
|
|
`ping_url` TEXT
|
|
|
);');
|
|
|
- // Create Options
|
|
|
- $options = $createDB->query('CREATE TABLE `options` (
|
|
|
+ // Create Options
|
|
|
+ $options = $createDB->query('CREATE TABLE `options` (
|
|
|
`id` INTEGER PRIMARY KEY AUTOINCREMENT UNIQUE,
|
|
|
`name` TEXT UNIQUE,
|
|
|
`value` TEXT
|
|
|
);');
|
|
|
- // Create Invites
|
|
|
- $invites = $createDB->query('CREATE TABLE `invites` (
|
|
|
+ // Create Invites
|
|
|
+ $invites = $createDB->query('CREATE TABLE `invites` (
|
|
|
`id` INTEGER PRIMARY KEY AUTOINCREMENT UNIQUE,
|
|
|
`code` TEXT UNIQUE,
|
|
|
`date` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
|
@@ -171,23 +174,24 @@ function createDB($path,$filename) {
|
|
|
}
|
|
|
}
|
|
|
// Upgrade Database
|
|
|
-function updateDB($path,$filename,$oldVerNum = false) {
|
|
|
+function updateDB($path, $filename, $oldVerNum = false)
|
|
|
+{
|
|
|
try {
|
|
|
$connect = new Dibi\Connection([
|
|
|
'driver' => 'sqlite3',
|
|
|
'database' => $path.$filename,
|
|
|
]);
|
|
|
// Cache current DB
|
|
|
- $cache = array();
|
|
|
- foreach($connect->query('SELECT name FROM sqlite_master WHERE type="table";') as $table) {
|
|
|
- foreach($connect->query('SELECT * FROM '.$table['name'].';') as $key => $row) {
|
|
|
- foreach($row as $k => $v) {
|
|
|
- if (is_string($k)) {
|
|
|
- $cache[$table['name']][$key][$k] = $v;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
+ $cache = array();
|
|
|
+ foreach ($connect->query('SELECT name FROM sqlite_master WHERE type="table";') as $table) {
|
|
|
+ foreach ($connect->query('SELECT * FROM '.$table['name'].';') as $key => $row) {
|
|
|
+ foreach ($row as $k => $v) {
|
|
|
+ if (is_string($k)) {
|
|
|
+ $cache[$table['name']][$key][$k] = $v;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
$connect->disconnect();
|
|
|
} catch (Dibi\Exception $e) {
|
|
|
return $e;
|
|
|
@@ -199,7 +203,7 @@ function updateDB($path,$filename,$oldVerNum = false) {
|
|
|
unlink($path.$filename);
|
|
|
}
|
|
|
// Create New Database
|
|
|
- $success = createDB($path,$filename);
|
|
|
+ $success = createDB($path, $filename);
|
|
|
try {
|
|
|
$GLOBALS['connect'] = new Dibi\Connection([
|
|
|
'driver' => 'sqlite3',
|
|
|
@@ -208,17 +212,17 @@ function updateDB($path,$filename,$oldVerNum = false) {
|
|
|
|
|
|
// Restore Items
|
|
|
if ($success) {
|
|
|
- foreach($cache as $table => $tableData) {
|
|
|
+ foreach ($cache as $table => $tableData) {
|
|
|
if ($tableData) {
|
|
|
- $queryBase = 'INSERT INTO '.$table.' (`'.implode('`,`',array_keys(current($tableData))).'`) values ';
|
|
|
+ $queryBase = 'INSERT INTO '.$table.' (`'.implode('`,`', array_keys(current($tableData))).'`) values ';
|
|
|
$insertValues = array();
|
|
|
reset($tableData);
|
|
|
- foreach($tableData as $key => $value) {
|
|
|
- $insertValues[] = '('.implode(',',array_map(function($d) {
|
|
|
- return (isset($d)?str_replace('\/', '/',json_encode($d)):'null');
|
|
|
+ foreach ($tableData as $key => $value) {
|
|
|
+ $insertValues[] = '('.implode(',', array_map(function ($d) {
|
|
|
+ return (isset($d)?str_replace('\/', '/', json_encode($d)):'null');
|
|
|
}, $value)).')';
|
|
|
}
|
|
|
- $GLOBALS['connect']->query($queryBase.implode(',',$insertValues).';');
|
|
|
+ $GLOBALS['connect']->query($queryBase.implode(',', $insertValues).';');
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -227,12 +231,13 @@ function updateDB($path,$filename,$oldVerNum = false) {
|
|
|
return $e;
|
|
|
}
|
|
|
}
|
|
|
-function createFirstAdmin($path,$filename,$username,$password,$email) {
|
|
|
+function createFirstAdmin($path, $filename, $username, $password, $email)
|
|
|
+{
|
|
|
try {
|
|
|
- $createDB = new Dibi\Connection([
|
|
|
- 'driver' => 'sqlite3',
|
|
|
- 'database' => $path.$filename,
|
|
|
- ]);
|
|
|
+ $createDB = new Dibi\Connection([
|
|
|
+ 'driver' => 'sqlite3',
|
|
|
+ 'database' => $path.$filename,
|
|
|
+ ]);
|
|
|
$userInfo = [
|
|
|
'username' => $username,
|
|
|
'password' => password_hash($password, PASSWORD_BCRYPT),
|
|
|
@@ -304,7 +309,7 @@ function createFirstAdmin($path,$filename,$username,$password,$email) {
|
|
|
'order' => 1,
|
|
|
'category' => 'Unsorted',
|
|
|
'category_id' => 0,
|
|
|
- 'image' => 'plugins/images/categories/unsorted.png',
|
|
|
+ 'image' => 'plugins/images/categories/unsorted.png',
|
|
|
'default' => true
|
|
|
];
|
|
|
$createDB->query('INSERT INTO [users]', $userInfo);
|
|
|
@@ -323,43 +328,46 @@ function createFirstAdmin($path,$filename,$username,$password,$email) {
|
|
|
return false;
|
|
|
}
|
|
|
}
|
|
|
-function defaultUserGroup(){
|
|
|
+function defaultUserGroup()
|
|
|
+{
|
|
|
try {
|
|
|
- $connect = new Dibi\Connection([
|
|
|
- 'driver' => 'sqlite3',
|
|
|
- 'database' => $GLOBALS['dbLocation'].$GLOBALS['dbName'],
|
|
|
- ]);
|
|
|
+ $connect = new Dibi\Connection([
|
|
|
+ 'driver' => 'sqlite3',
|
|
|
+ 'database' => $GLOBALS['dbLocation'].$GLOBALS['dbName'],
|
|
|
+ ]);
|
|
|
$all = $connect->fetch('SELECT * FROM groups WHERE `default` = 1');
|
|
|
return $all;
|
|
|
} catch (Dibi\Exception $e) {
|
|
|
return false;
|
|
|
}
|
|
|
}
|
|
|
-function defaulTabCategory(){
|
|
|
+function defaulTabCategory()
|
|
|
+{
|
|
|
try {
|
|
|
- $connect = new Dibi\Connection([
|
|
|
- 'driver' => 'sqlite3',
|
|
|
- 'database' => $GLOBALS['dbLocation'].$GLOBALS['dbName'],
|
|
|
- ]);
|
|
|
+ $connect = new Dibi\Connection([
|
|
|
+ 'driver' => 'sqlite3',
|
|
|
+ 'database' => $GLOBALS['dbLocation'].$GLOBALS['dbName'],
|
|
|
+ ]);
|
|
|
$all = $connect->fetch('SELECT * FROM categories WHERE `default` = 1');
|
|
|
return $all;
|
|
|
} catch (Dibi\Exception $e) {
|
|
|
return false;
|
|
|
}
|
|
|
}
|
|
|
-function getGuest(){
|
|
|
- if(isset($GLOBALS['dbLocation'])){
|
|
|
+function getGuest()
|
|
|
+{
|
|
|
+ if (isset($GLOBALS['dbLocation'])) {
|
|
|
try {
|
|
|
- $connect = new Dibi\Connection([
|
|
|
- 'driver' => 'sqlite3',
|
|
|
- 'database' => $GLOBALS['dbLocation'].$GLOBALS['dbName'],
|
|
|
- ]);
|
|
|
+ $connect = new Dibi\Connection([
|
|
|
+ 'driver' => 'sqlite3',
|
|
|
+ 'database' => $GLOBALS['dbLocation'].$GLOBALS['dbName'],
|
|
|
+ ]);
|
|
|
$all = $connect->fetch('SELECT * FROM groups WHERE `group` = "Guest"');
|
|
|
return $all;
|
|
|
} catch (Dibi\Exception $e) {
|
|
|
return false;
|
|
|
}
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
return array(
|
|
|
'group' => 'Guest',
|
|
|
'group_id' => 999,
|
|
|
@@ -367,7 +375,8 @@ function getGuest(){
|
|
|
);
|
|
|
}
|
|
|
}
|
|
|
-function adminEditGroup($array){
|
|
|
+function adminEditGroup($array)
|
|
|
+{
|
|
|
switch ($array['data']['action']) {
|
|
|
case 'changeDefaultGroup':
|
|
|
try {
|
|
|
@@ -378,10 +387,10 @@ function adminEditGroup($array){
|
|
|
$connect->query('UPDATE groups SET `default` = 0');
|
|
|
$connect->query('
|
|
|
UPDATE groups SET', [
|
|
|
- 'default' => 1
|
|
|
- ], '
|
|
|
+ 'default' => 1
|
|
|
+ ], '
|
|
|
WHERE id=?', $array['data']['id']);
|
|
|
- writeLog('success', 'Group Management Function - Changed Default Group from ['.$array['data']['oldGroupName'].'] to ['.$array['data']['newGroupName'].']', $GLOBALS['organizrUser']['username']);
|
|
|
+ writeLog('success', 'Group Management Function - Changed Default Group from ['.$array['data']['oldGroupName'].'] to ['.$array['data']['newGroupName'].']', $GLOBALS['organizrUser']['username']);
|
|
|
return true;
|
|
|
} catch (Dibi\Exception $e) {
|
|
|
return false;
|
|
|
@@ -394,7 +403,7 @@ function adminEditGroup($array){
|
|
|
'database' => $GLOBALS['dbLocation'].$GLOBALS['dbName'],
|
|
|
]);
|
|
|
$connect->query('DELETE FROM groups WHERE id = ?', $array['data']['id']);
|
|
|
- writeLog('success', 'Group Management Function - Deleted Group ['.$array['data']['groupName'].']', $GLOBALS['organizrUser']['username']);
|
|
|
+ writeLog('success', 'Group Management Function - Deleted Group ['.$array['data']['groupName'].']', $GLOBALS['organizrUser']['username']);
|
|
|
return true;
|
|
|
} catch (Dibi\Exception $e) {
|
|
|
return false;
|
|
|
@@ -413,7 +422,7 @@ function adminEditGroup($array){
|
|
|
'image' => $array['data']['newGroupImage'],
|
|
|
];
|
|
|
$connect->query('INSERT INTO [groups]', $newGroup);
|
|
|
- writeLog('success', 'Group Management Function - Added Group ['.$array['data']['newGroupName'].']', $GLOBALS['organizrUser']['username']);
|
|
|
+ writeLog('success', 'Group Management Function - Added Group ['.$array['data']['newGroupName'].']', $GLOBALS['organizrUser']['username']);
|
|
|
return true;
|
|
|
} catch (Dibi\Exception $e) {
|
|
|
return false;
|
|
|
@@ -428,10 +437,10 @@ function adminEditGroup($array){
|
|
|
$connect->query('
|
|
|
UPDATE groups SET', [
|
|
|
'group' => $array['data']['groupName'],
|
|
|
- 'image' => $array['data']['groupImage'],
|
|
|
- ], '
|
|
|
+ 'image' => $array['data']['groupImage'],
|
|
|
+ ], '
|
|
|
WHERE id=?', $array['data']['id']);
|
|
|
- writeLog('success', 'Group Management Function - Edited Group Info for ['.$array['data']['oldGroupName'].']', $GLOBALS['organizrUser']['username']);
|
|
|
+ writeLog('success', 'Group Management Function - Edited Group Info for ['.$array['data']['oldGroupName'].']', $GLOBALS['organizrUser']['username']);
|
|
|
return true;
|
|
|
} catch (Dibi\Exception $e) {
|
|
|
return false;
|
|
|
@@ -442,7 +451,8 @@ function adminEditGroup($array){
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
-function adminEditUser($array){
|
|
|
+function adminEditUser($array)
|
|
|
+{
|
|
|
switch ($array['data']['action']) {
|
|
|
case 'changeGroup':
|
|
|
try {
|
|
|
@@ -452,11 +462,11 @@ function adminEditUser($array){
|
|
|
]);
|
|
|
$connect->query('
|
|
|
UPDATE users SET', [
|
|
|
- 'group' => $array['data']['newGroupName'],
|
|
|
- 'group_id' => $array['data']['newGroupID'],
|
|
|
- ], '
|
|
|
+ 'group' => $array['data']['newGroupName'],
|
|
|
+ 'group_id' => $array['data']['newGroupID'],
|
|
|
+ ], '
|
|
|
WHERE id=?', $array['data']['id']);
|
|
|
- writeLog('success', 'User Management Function - User: '.$array['data']['username'].'\'s group was changed from ['.$array['data']['oldGroup'].'] to ['.$array['data']['newGroupName'].']', $GLOBALS['organizrUser']['username']);
|
|
|
+ writeLog('success', 'User Management Function - User: '.$array['data']['username'].'\'s group was changed from ['.$array['data']['oldGroup'].'] to ['.$array['data']['newGroupName'].']', $GLOBALS['organizrUser']['username']);
|
|
|
return true;
|
|
|
} catch (Dibi\Exception $e) {
|
|
|
writeLog('error', 'User Management Function - Error - User: '.$array['data']['username'].'\'s group was changed from ['.$array['data']['oldGroup'].'] to ['.$array['data']['newGroupName'].']', $GLOBALS['organizrUser']['username']);
|
|
|
@@ -469,14 +479,14 @@ function adminEditUser($array){
|
|
|
'driver' => 'sqlite3',
|
|
|
'database' => $GLOBALS['dbLocation'].$GLOBALS['dbName'],
|
|
|
]);
|
|
|
- if(!usernameTakenExcept($array['data']['username'],$array['data']['email'],$array['data']['id'])){
|
|
|
+ if (!usernameTakenExcept($array['data']['username'], $array['data']['email'], $array['data']['id'])) {
|
|
|
$connect->query('
|
|
|
UPDATE users SET', [
|
|
|
'username' => $array['data']['username'],
|
|
|
'email' => $array['data']['email'],
|
|
|
], '
|
|
|
WHERE id=?', $array['data']['id']);
|
|
|
- if(!empty($array['data']['password'])){
|
|
|
+ if (!empty($array['data']['password'])) {
|
|
|
$connect->query('
|
|
|
UPDATE users SET', [
|
|
|
'password' => password_hash($array['data']['password'], PASSWORD_BCRYPT)
|
|
|
@@ -485,7 +495,7 @@ function adminEditUser($array){
|
|
|
}
|
|
|
writeLog('success', 'User Management Function - User: '.$array['data']['username'].'\'s info was changed', $GLOBALS['organizrUser']['username']);
|
|
|
return true;
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
return false;
|
|
|
}
|
|
|
} catch (Dibi\Exception $e) {
|
|
|
@@ -495,10 +505,10 @@ function adminEditUser($array){
|
|
|
break;
|
|
|
case 'addNewUser':
|
|
|
$defaults = defaultUserGroup();
|
|
|
- if(createUser($array['data']['username'],$array['data']['password'],$defaults,$array['data']['email'])){
|
|
|
+ if (createUser($array['data']['username'], $array['data']['password'], $defaults, $array['data']['email'])) {
|
|
|
writeLog('success', 'Create User Function - Acount created for ['.$array['data']['username'].']', $GLOBALS['organizrUser']['username']);
|
|
|
return true;
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
writeLog('error', 'Registration Function - An error occured', $GLOBALS['organizrUser']['username']);
|
|
|
return 'username taken';
|
|
|
}
|
|
|
@@ -510,7 +520,7 @@ function adminEditUser($array){
|
|
|
'database' => $GLOBALS['dbLocation'].$GLOBALS['dbName'],
|
|
|
]);
|
|
|
$connect->query('DELETE FROM users WHERE id = ?', $array['data']['id']);
|
|
|
- writeLog('success', 'User Management Function - Deleted User ['.$array['data']['username'].']', $GLOBALS['organizrUser']['username']);
|
|
|
+ writeLog('success', 'User Management Function - Deleted User ['.$array['data']['username'].']', $GLOBALS['organizrUser']['username']);
|
|
|
return true;
|
|
|
} catch (Dibi\Exception $e) {
|
|
|
return false;
|
|
|
@@ -521,7 +531,8 @@ function adminEditUser($array){
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
-function editTabs($array){
|
|
|
+function editTabs($array)
|
|
|
+{
|
|
|
switch ($array['data']['action']) {
|
|
|
case 'changeGroup':
|
|
|
try {
|
|
|
@@ -531,10 +542,10 @@ function editTabs($array){
|
|
|
]);
|
|
|
$connect->query('
|
|
|
UPDATE tabs SET', [
|
|
|
- 'group_id' => $array['data']['newGroupID'],
|
|
|
- ], '
|
|
|
+ 'group_id' => $array['data']['newGroupID'],
|
|
|
+ ], '
|
|
|
WHERE id=?', $array['data']['id']);
|
|
|
- writeLog('success', 'Tab Editor Function - Tab: '.$array['data']['tab'].'\'s group was changed to ['.$array['data']['newGroupName'].']', $GLOBALS['organizrUser']['username']);
|
|
|
+ writeLog('success', 'Tab Editor Function - Tab: '.$array['data']['tab'].'\'s group was changed to ['.$array['data']['newGroupName'].']', $GLOBALS['organizrUser']['username']);
|
|
|
return true;
|
|
|
} catch (Dibi\Exception $e) {
|
|
|
return false;
|
|
|
@@ -551,7 +562,7 @@ function editTabs($array){
|
|
|
'category_id' => $array['data']['newCategoryID'],
|
|
|
], '
|
|
|
WHERE id=?', $array['data']['id']);
|
|
|
- writeLog('success', 'Tab Editor Function - Tab: '.$array['data']['tab'].'\'s category was changed to ['.$array['data']['newCategoryName'].']', $GLOBALS['organizrUser']['username']);
|
|
|
+ writeLog('success', 'Tab Editor Function - Tab: '.$array['data']['tab'].'\'s category was changed to ['.$array['data']['newCategoryName'].']', $GLOBALS['organizrUser']['username']);
|
|
|
return true;
|
|
|
} catch (Dibi\Exception $e) {
|
|
|
return false;
|
|
|
@@ -568,7 +579,7 @@ function editTabs($array){
|
|
|
'type' => $array['data']['newTypeID'],
|
|
|
], '
|
|
|
WHERE id=?', $array['data']['id']);
|
|
|
- writeLog('success', 'Tab Editor Function - Tab: '.$array['data']['tab'].'\'s type was changed to ['.$array['data']['newTypeName'].']', $GLOBALS['organizrUser']['username']);
|
|
|
+ writeLog('success', 'Tab Editor Function - Tab: '.$array['data']['tab'].'\'s type was changed to ['.$array['data']['newTypeName'].']', $GLOBALS['organizrUser']['username']);
|
|
|
return true;
|
|
|
} catch (Dibi\Exception $e) {
|
|
|
return false;
|
|
|
@@ -585,7 +596,7 @@ function editTabs($array){
|
|
|
'enabled' => $array['data']['tabEnabled'],
|
|
|
], '
|
|
|
WHERE id=?', $array['data']['id']);
|
|
|
- writeLog('success', 'Tab Editor Function - Tab: '.$array['data']['tab'].'\'s enable status was changed to ['.$array['data']['tabEnabledWord'].']', $GLOBALS['organizrUser']['username']);
|
|
|
+ writeLog('success', 'Tab Editor Function - Tab: '.$array['data']['tab'].'\'s enable status was changed to ['.$array['data']['tabEnabledWord'].']', $GLOBALS['organizrUser']['username']);
|
|
|
return true;
|
|
|
} catch (Dibi\Exception $e) {
|
|
|
return false;
|
|
|
@@ -602,7 +613,7 @@ function editTabs($array){
|
|
|
'splash' => $array['data']['tabSplash'],
|
|
|
], '
|
|
|
WHERE id=?', $array['data']['id']);
|
|
|
- writeLog('success', 'Tab Editor Function - Tab: '.$array['data']['tab'].'\'s splash status was changed to ['.$array['data']['tabSplashWord'].']', $GLOBALS['organizrUser']['username']);
|
|
|
+ writeLog('success', 'Tab Editor Function - Tab: '.$array['data']['tab'].'\'s splash status was changed to ['.$array['data']['tabSplashWord'].']', $GLOBALS['organizrUser']['username']);
|
|
|
return true;
|
|
|
} catch (Dibi\Exception $e) {
|
|
|
return false;
|
|
|
@@ -620,7 +631,7 @@ function editTabs($array){
|
|
|
'default' => 1
|
|
|
], '
|
|
|
WHERE id=?', $array['data']['id']);
|
|
|
- writeLog('success', 'Tab Editor Function - Changed Default Tab to ['.$array['data']['tab'].']', $GLOBALS['organizrUser']['username']);
|
|
|
+ writeLog('success', 'Tab Editor Function - Changed Default Tab to ['.$array['data']['tab'].']', $GLOBALS['organizrUser']['username']);
|
|
|
return true;
|
|
|
} catch (Dibi\Exception $e) {
|
|
|
return false;
|
|
|
@@ -633,7 +644,7 @@ function editTabs($array){
|
|
|
'database' => $GLOBALS['dbLocation'].$GLOBALS['dbName'],
|
|
|
]);
|
|
|
$connect->query('DELETE FROM tabs WHERE id = ?', $array['data']['id']);
|
|
|
- writeLog('success', 'Tab Editor Function - Deleted Tab ['.$array['data']['tab'].']', $GLOBALS['organizrUser']['username']);
|
|
|
+ writeLog('success', 'Tab Editor Function - Deleted Tab ['.$array['data']['tab'].']', $GLOBALS['organizrUser']['username']);
|
|
|
return true;
|
|
|
} catch (Dibi\Exception $e) {
|
|
|
return false;
|
|
|
@@ -652,7 +663,7 @@ function editTabs($array){
|
|
|
'image' => $array['data']['tabImage'],
|
|
|
], '
|
|
|
WHERE id=?', $array['data']['id']);
|
|
|
- writeLog('success', 'Tab Editor Function - Edited Tab Info for ['.$array['data']['tabName'].']', $GLOBALS['organizrUser']['username']);
|
|
|
+ writeLog('success', 'Tab Editor Function - Edited Tab Info for ['.$array['data']['tabName'].']', $GLOBALS['organizrUser']['username']);
|
|
|
return true;
|
|
|
} catch (Dibi\Exception $e) {
|
|
|
return false;
|
|
|
@@ -664,13 +675,13 @@ function editTabs($array){
|
|
|
'database' => $GLOBALS['dbLocation'].$GLOBALS['dbName'],
|
|
|
]);
|
|
|
foreach ($array['data']['tabs']['tab'] as $key => $value) {
|
|
|
- if($value['order'] != $value['originalOrder']){
|
|
|
+ if ($value['order'] != $value['originalOrder']) {
|
|
|
$connect->query('
|
|
|
UPDATE tabs SET', [
|
|
|
'order' => $value['order'],
|
|
|
], '
|
|
|
WHERE id=?', $value['id']);
|
|
|
- writeLog('success', 'Tab Editor Function - '.$value['name'].' Order Changed From '.$value['order'].' to '.$value['originalOrder'], $GLOBALS['organizrUser']['username']);
|
|
|
+ writeLog('success', 'Tab Editor Function - '.$value['name'].' Order Changed From '.$value['order'].' to '.$value['originalOrder'], $GLOBALS['organizrUser']['username']);
|
|
|
}
|
|
|
}
|
|
|
writeLog('success', 'Tab Editor Function - Tab Order Changed', $GLOBALS['organizrUser']['username']);
|
|
|
@@ -711,7 +722,7 @@ function editTabs($array){
|
|
|
'database' => $GLOBALS['dbLocation'].$GLOBALS['dbName'],
|
|
|
]);
|
|
|
$connect->query('DELETE FROM tabs WHERE id = ?', $array['data']['id']);
|
|
|
- writeLog('success', 'Tab Editor Function - Deleted Tab ['.$array['data']['name'].']', $GLOBALS['organizrUser']['username']);
|
|
|
+ writeLog('success', 'Tab Editor Function - Deleted Tab ['.$array['data']['name'].']', $GLOBALS['organizrUser']['username']);
|
|
|
return true;
|
|
|
} catch (Dibi\Exception $e) {
|
|
|
return false;
|
|
|
@@ -722,7 +733,8 @@ function editTabs($array){
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
-function editCategories($array){
|
|
|
+function editCategories($array)
|
|
|
+{
|
|
|
switch ($array['data']['action']) {
|
|
|
case 'changeDefault':
|
|
|
try {
|
|
|
@@ -733,10 +745,10 @@ function editCategories($array){
|
|
|
$connect->query('UPDATE categories SET `default` = 0');
|
|
|
$connect->query('
|
|
|
UPDATE categories SET', [
|
|
|
- 'default' => 1
|
|
|
- ], '
|
|
|
+ 'default' => 1
|
|
|
+ ], '
|
|
|
WHERE id=?', $array['data']['id']);
|
|
|
- writeLog('success', 'Category Editor Function - Changed Default Category from ['.$array['data']['oldCategoryName'].'] to ['.$array['data']['newCategoryName'].']', $GLOBALS['organizrUser']['username']);
|
|
|
+ writeLog('success', 'Category Editor Function - Changed Default Category from ['.$array['data']['oldCategoryName'].'] to ['.$array['data']['newCategoryName'].']', $GLOBALS['organizrUser']['username']);
|
|
|
return true;
|
|
|
} catch (Dibi\Exception $e) {
|
|
|
return false;
|
|
|
@@ -749,7 +761,7 @@ function editCategories($array){
|
|
|
'database' => $GLOBALS['dbLocation'].$GLOBALS['dbName'],
|
|
|
]);
|
|
|
$connect->query('DELETE FROM categories WHERE id = ?', $array['data']['id']);
|
|
|
- writeLog('success', 'Category Editor Function - Deleted Category ['.$array['data']['category'].']', $GLOBALS['organizrUser']['username']);
|
|
|
+ writeLog('success', 'Category Editor Function - Deleted Category ['.$array['data']['category'].']', $GLOBALS['organizrUser']['username']);
|
|
|
return true;
|
|
|
} catch (Dibi\Exception $e) {
|
|
|
return false;
|
|
|
@@ -769,7 +781,7 @@ function editCategories($array){
|
|
|
'image' => $array['data']['categoryImage'],
|
|
|
];
|
|
|
$connect->query('INSERT INTO [categories]', $newCategory);
|
|
|
- writeLog('success', 'Category Editor Function - Added Category ['.$array['data']['categoryName'].']', $GLOBALS['organizrUser']['username']);
|
|
|
+ writeLog('success', 'Category Editor Function - Added Category ['.$array['data']['categoryName'].']', $GLOBALS['organizrUser']['username']);
|
|
|
return true;
|
|
|
} catch (Dibi\Exception $e) {
|
|
|
return $e;
|
|
|
@@ -784,10 +796,10 @@ function editCategories($array){
|
|
|
$connect->query('
|
|
|
UPDATE categories SET', [
|
|
|
'category' => $array['data']['name'],
|
|
|
- 'image' => $array['data']['image'],
|
|
|
- ], '
|
|
|
+ 'image' => $array['data']['image'],
|
|
|
+ ], '
|
|
|
WHERE id=?', $array['data']['id']);
|
|
|
- writeLog('success', 'Category Editor Function - Edited Category Info for ['.$array['data']['name'].']', $GLOBALS['organizrUser']['username']);
|
|
|
+ writeLog('success', 'Category Editor Function - Edited Category Info for ['.$array['data']['name'].']', $GLOBALS['organizrUser']['username']);
|
|
|
return true;
|
|
|
} catch (Dibi\Exception $e) {
|
|
|
return false;
|
|
|
@@ -800,13 +812,13 @@ function editCategories($array){
|
|
|
'database' => $GLOBALS['dbLocation'].$GLOBALS['dbName'],
|
|
|
]);
|
|
|
foreach ($array['data']['categories']['category'] as $key => $value) {
|
|
|
- if($value['order'] != $value['originalOrder']){
|
|
|
+ if ($value['order'] != $value['originalOrder']) {
|
|
|
$connect->query('
|
|
|
UPDATE categories SET', [
|
|
|
'order' => $value['order'],
|
|
|
], '
|
|
|
WHERE id=?', $value['id']);
|
|
|
- writeLog('success', 'Category Editor Function - '.$value['name'].' Order Changed From '.$value['order'].' to '.$value['originalOrder'], $GLOBALS['organizrUser']['username']);
|
|
|
+ writeLog('success', 'Category Editor Function - '.$value['name'].' Order Changed From '.$value['order'].' to '.$value['originalOrder'], $GLOBALS['organizrUser']['username']);
|
|
|
}
|
|
|
}
|
|
|
writeLog('success', 'Category Editor Function - Category Order Changed', $GLOBALS['organizrUser']['username']);
|
|
|
@@ -820,12 +832,13 @@ function editCategories($array){
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
-function allUsers(){
|
|
|
+function allUsers()
|
|
|
+{
|
|
|
try {
|
|
|
- $connect = new Dibi\Connection([
|
|
|
- 'driver' => 'sqlite3',
|
|
|
- 'database' => $GLOBALS['dbLocation'].$GLOBALS['dbName'],
|
|
|
- ]);
|
|
|
+ $connect = new Dibi\Connection([
|
|
|
+ 'driver' => 'sqlite3',
|
|
|
+ 'database' => $GLOBALS['dbLocation'].$GLOBALS['dbName'],
|
|
|
+ ]);
|
|
|
$users = $connect->fetchAll('SELECT * FROM users');
|
|
|
$groups = $connect->fetchAll('SELECT * FROM groups ORDER BY group_id ASC');
|
|
|
foreach ($users as $k => $v) {
|
|
|
@@ -839,38 +852,41 @@ function allUsers(){
|
|
|
return false;
|
|
|
}
|
|
|
}
|
|
|
-function usernameTaken($username,$email){
|
|
|
+function usernameTaken($username, $email)
|
|
|
+{
|
|
|
try {
|
|
|
- $connect = new Dibi\Connection([
|
|
|
- 'driver' => 'sqlite3',
|
|
|
- 'database' => $GLOBALS['dbLocation'].$GLOBALS['dbName'],
|
|
|
- ]);
|
|
|
- $all = $connect->fetch('SELECT * FROM users WHERE username = ? COLLATE NOCASE OR email = ? COLLATE NOCASE',$username,$email);
|
|
|
+ $connect = new Dibi\Connection([
|
|
|
+ 'driver' => 'sqlite3',
|
|
|
+ 'database' => $GLOBALS['dbLocation'].$GLOBALS['dbName'],
|
|
|
+ ]);
|
|
|
+ $all = $connect->fetch('SELECT * FROM users WHERE username = ? COLLATE NOCASE OR email = ? COLLATE NOCASE', $username, $email);
|
|
|
return ($all) ? true : false;
|
|
|
} catch (Dibi\Exception $e) {
|
|
|
return false;
|
|
|
}
|
|
|
}
|
|
|
-function usernameTakenExcept($username,$email,$id){
|
|
|
+function usernameTakenExcept($username, $email, $id)
|
|
|
+{
|
|
|
try {
|
|
|
- $connect = new Dibi\Connection([
|
|
|
- 'driver' => 'sqlite3',
|
|
|
- 'database' => $GLOBALS['dbLocation'].$GLOBALS['dbName'],
|
|
|
- ]);
|
|
|
- $all = $connect->fetch('SELECT * FROM users WHERE id IS NOT ? AND username = ? COLLATE NOCASE OR id IS NOT ? AND email = ? COLLATE NOCASE',$id,$username,$id,$email);
|
|
|
+ $connect = new Dibi\Connection([
|
|
|
+ 'driver' => 'sqlite3',
|
|
|
+ 'database' => $GLOBALS['dbLocation'].$GLOBALS['dbName'],
|
|
|
+ ]);
|
|
|
+ $all = $connect->fetch('SELECT * FROM users WHERE id IS NOT ? AND username = ? COLLATE NOCASE OR id IS NOT ? AND email = ? COLLATE NOCASE', $id, $username, $id, $email);
|
|
|
return ($all) ? true : false;
|
|
|
} catch (Dibi\Exception $e) {
|
|
|
return false;
|
|
|
}
|
|
|
}
|
|
|
-function createUser($username,$password,$defaults,$email=null) {
|
|
|
+function createUser($username, $password, $defaults, $email=null)
|
|
|
+{
|
|
|
$email = ($email) ? $email : random_ascii_string(10).'@placeholder.eml';
|
|
|
try {
|
|
|
- if(!usernameTaken($username,$email)){
|
|
|
+ if (!usernameTaken($username, $email)) {
|
|
|
$createDB = new Dibi\Connection([
|
|
|
- 'driver' => 'sqlite3',
|
|
|
- 'database' => $GLOBALS['dbLocation'].$GLOBALS['dbName'],
|
|
|
- ]);
|
|
|
+ 'driver' => 'sqlite3',
|
|
|
+ 'database' => $GLOBALS['dbLocation'].$GLOBALS['dbName'],
|
|
|
+ ]);
|
|
|
$userInfo = [
|
|
|
'username' => $username,
|
|
|
'password' => password_hash($password, PASSWORD_BCRYPT),
|
|
|
@@ -882,21 +898,21 @@ function createUser($username,$password,$defaults,$email=null) {
|
|
|
];
|
|
|
$createDB->query('INSERT INTO [users]', $userInfo);
|
|
|
return true;
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
return false;
|
|
|
}
|
|
|
-
|
|
|
} catch (Dibi\Exception $e) {
|
|
|
return false;
|
|
|
}
|
|
|
}
|
|
|
-function allTabs(){
|
|
|
- if(file_exists('config'.DIRECTORY_SEPARATOR.'config.php')){
|
|
|
+function allTabs()
|
|
|
+{
|
|
|
+ if (file_exists('config'.DIRECTORY_SEPARATOR.'config.php')) {
|
|
|
try {
|
|
|
- $connect = new Dibi\Connection([
|
|
|
- 'driver' => 'sqlite3',
|
|
|
- 'database' => $GLOBALS['dbLocation'].$GLOBALS['dbName'],
|
|
|
- ]);
|
|
|
+ $connect = new Dibi\Connection([
|
|
|
+ 'driver' => 'sqlite3',
|
|
|
+ 'database' => $GLOBALS['dbLocation'].$GLOBALS['dbName'],
|
|
|
+ ]);
|
|
|
$all['tabs'] = $connect->fetchAll('SELECT * FROM tabs ORDER BY `order` ASC');
|
|
|
$all['categories'] = $connect->fetchAll('SELECT * FROM categories ORDER BY `order` ASC');
|
|
|
$all['groups'] = $connect->fetchAll('SELECT * FROM groups ORDER BY `group_id` ASC');
|
|
|
@@ -906,13 +922,14 @@ function allTabs(){
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-function allGroups(){
|
|
|
- if(file_exists('config'.DIRECTORY_SEPARATOR.'config.php')){
|
|
|
+function allGroups()
|
|
|
+{
|
|
|
+ if (file_exists('config'.DIRECTORY_SEPARATOR.'config.php')) {
|
|
|
try {
|
|
|
- $connect = new Dibi\Connection([
|
|
|
- 'driver' => 'sqlite3',
|
|
|
- 'database' => $GLOBALS['dbLocation'].$GLOBALS['dbName'],
|
|
|
- ]);
|
|
|
+ $connect = new Dibi\Connection([
|
|
|
+ 'driver' => 'sqlite3',
|
|
|
+ 'database' => $GLOBALS['dbLocation'].$GLOBALS['dbName'],
|
|
|
+ ]);
|
|
|
$all = $connect->fetchAll('SELECT * FROM groups ORDER BY `group_id` ASC');
|
|
|
return $all;
|
|
|
} catch (Dibi\Exception $e) {
|
|
|
@@ -920,20 +937,21 @@ function allGroups(){
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-function loadTabs(){
|
|
|
- if(file_exists('config'.DIRECTORY_SEPARATOR.'config.php')){
|
|
|
+function loadTabs()
|
|
|
+{
|
|
|
+ if (file_exists('config'.DIRECTORY_SEPARATOR.'config.php')) {
|
|
|
try {
|
|
|
- $connect = new Dibi\Connection([
|
|
|
- 'driver' => 'sqlite3',
|
|
|
- 'database' => $GLOBALS['dbLocation'].$GLOBALS['dbName'],
|
|
|
- ]);
|
|
|
- $tabs = $connect->fetchAll('SELECT * FROM tabs WHERE `group_id` >= ? AND `enabled` = 1 ORDER BY `order` DESC',$GLOBALS['organizrUser']['groupID']);
|
|
|
+ $connect = new Dibi\Connection([
|
|
|
+ 'driver' => 'sqlite3',
|
|
|
+ 'database' => $GLOBALS['dbLocation'].$GLOBALS['dbName'],
|
|
|
+ ]);
|
|
|
+ $tabs = $connect->fetchAll('SELECT * FROM tabs WHERE `group_id` >= ? AND `enabled` = 1 ORDER BY `order` DESC', $GLOBALS['organizrUser']['groupID']);
|
|
|
$categories = $connect->fetchAll('SELECT * FROM categories ORDER BY `order` ASC');
|
|
|
$all['tabs'] = $tabs;
|
|
|
foreach ($tabs as $k => $v) {
|
|
|
$v['access_url'] = isset($v['url_local']) && $_SERVER['SERVER_ADDR'] == userIP() ? $v['url_local'] : $v['url'];
|
|
|
}
|
|
|
- $count = array_map(function($element){
|
|
|
+ $count = array_map(function ($element) {
|
|
|
return $element['category_id'];
|
|
|
}, $tabs);
|
|
|
$count = (array_count_values($count));
|