mirror of https://github.com/Mowie/Mowie
660 lines
20 KiB
PHP
Executable File
660 lines
20 KiB
PHP
Executable File
<?php
|
|
//msg
|
|
function msg($typ, $msg = null)
|
|
{
|
|
$out = [];
|
|
$msg = str_replace('{back}', '<a onclick="history.back(-1)">Zurück</a>', $msg);
|
|
if ($typ == 'succes' || $typ == 'success')
|
|
{
|
|
if (!isset($msg)) $msg = 'Die Operation wurde erfolgreich durchgeführt.';
|
|
$out['type'] = 'success';
|
|
$out['msg'] = $msg;
|
|
|
|
return '<div class="message-success">' . $msg . '</div>';
|
|
} elseif ($typ == 'fail')
|
|
{
|
|
if (!isset($msg)) $msg = 'Fehler. ' . $GLOBALS['texte'][2];
|
|
|
|
$out['type'] = 'fail';
|
|
$out['msg'] = $msg;
|
|
return '<div class="message-fail">' . $msg . '</div>';
|
|
} else
|
|
{
|
|
$out['type'] = 'info';
|
|
$out['msg'] = $msg;
|
|
return '<div class="message-info">' . $msg . '</div>';
|
|
}
|
|
|
|
if (isset($_GET['json']))
|
|
{
|
|
header('Content-Type: application/json');
|
|
return json_encode($out);
|
|
|
|
} else
|
|
{
|
|
return '<div class="message-' . $out['type'] . '">' . $out['msg'] . '</div>';
|
|
}
|
|
}
|
|
|
|
//nichtleeren ordner löschen
|
|
function rrmdir($dir)
|
|
{
|
|
if (is_dir($dir))
|
|
{
|
|
$objects = scandir($dir);
|
|
foreach ($objects as $object)
|
|
{
|
|
if ($object != "." && $object != "..")
|
|
{
|
|
if (filetype($dir . "/" . $object) == "dir") rrmdir($dir . "/" . $object); else unlink($dir . "/" . $object);
|
|
}
|
|
}
|
|
reset($objects);
|
|
return rmdir($dir);
|
|
} else
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
//Tinymce
|
|
function tinymce($css = '../../css/tinymce.css', $edit_area = '#editor')
|
|
{
|
|
if (!isset($_GET['json']))
|
|
{
|
|
echo '<script src="' . $GLOBALS['MCONF']['web_uri'] . 'admin/assets/js/tinymce/tinymce.min.js"></script>
|
|
<script>
|
|
tinymce.init({
|
|
selector: "' . $edit_area . '",
|
|
auto_focus: "editor",
|
|
theme: "modern",
|
|
skin: "light",
|
|
menubar: false,
|
|
plugins: [
|
|
"advlist autolink lists link image charmap print preview hr anchor",
|
|
"searchreplace wordcount visualblocks visualchars code fullscreen",
|
|
"media nonbreaking save table contextmenu directionality",
|
|
"template paste textcolor colorpicker textpattern"
|
|
],
|
|
toolbar1: "newdocument fullpage | undo redo | cut copy paste | searchreplace | print fullscreen preview code charmap | outdent indent",
|
|
toolbar2: "table | hr removeformat | ltr rtl | spellchecker | visualchars visualblocks nonbreaking | bullist numlist blockquote | link unlink anchor image media",
|
|
toolbar3: "formatselect fontsizeselect | bold italic underline strikethrough | alignleft aligncenter alignright alignjustify | forecolor backcolor | subscript superscript",
|
|
|
|
image_advtab: true,
|
|
language: "de",
|
|
content_css: "' . $GLOBALS['MCONF']['tinymce_css'] . '",
|
|
relative_urls: false,
|
|
height : 500,
|
|
width: "100%"
|
|
});
|
|
</script>';
|
|
}
|
|
}
|
|
|
|
function random($size)
|
|
{
|
|
$zahlen_und_buchstaben = array('a', 'A', 'b', 'B', 'c', 'C', 'd', 'D', 'e', 'E', 'f', 'F', 'G', 'g', 'h', 'H', 'i', 'I', 'j', 'J', 'k', 'K', 'l', 'L', 'm', 'M', 'n', 'N', 'o', 'O', 'p', 'P', 'q', 'Q', 'r', 'R', 's', 'S', 't', 'T', 'u', 'U', 'v', 'V', 'w', 'W', 'x', 'X', 'y', 'Y', 'z', 'Z', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0');
|
|
for ($i = 0, $random = ''; $i < $size; $i++)
|
|
{
|
|
$random .= $zahlen_und_buchstaben[array_rand($zahlen_und_buchstaben)];
|
|
}
|
|
return $random;
|
|
}
|
|
|
|
function calc_filesize($bytes)
|
|
{
|
|
$symbol = ' B ';
|
|
if ($bytes > 1024)
|
|
{
|
|
$symbol = ' KB';
|
|
$bytes /= 1024;
|
|
}
|
|
if ($bytes > 1024)
|
|
{
|
|
$symbol = ' MB';
|
|
$bytes /= 1024;
|
|
}
|
|
if ($bytes > 1024)
|
|
{
|
|
$symbol = ' GB';
|
|
$bytes /= 1024;
|
|
}
|
|
$bytes = round($bytes, 2);
|
|
return $bytes . $symbol;
|
|
}
|
|
|
|
//User eingeloggt?
|
|
function is_loggedin()
|
|
{
|
|
if (isset($_SESSION['user'], $_SESSION['token']))
|
|
{
|
|
|
|
$GLOBALS['db']->setCol('system_loggedin');
|
|
$GLOBALS['db']->data['token'] = $_SESSION['token'];
|
|
$GLOBALS['db']->data['user'] = $_SESSION['userid'];
|
|
$GLOBALS['db']->get();
|
|
if (isset($GLOBALS['db']->data[0]['token']))
|
|
{
|
|
$token = $GLOBALS['db']->data[0]['token'];
|
|
$GLOBALS['db']->clear();
|
|
if ($token != '')
|
|
{
|
|
if ($token == $_SESSION['token'])
|
|
{
|
|
//Session nach 30 min inaktivität löschen
|
|
if (isset($_SESSION['LAST_ACTIVITY']) && (time() - $_SESSION['LAST_ACTIVITY'] > 1800))
|
|
{
|
|
$GLOBALS['db']->setCol('system_loggedin');
|
|
$GLOBALS['db']->data['token'] = $_SESSION['token'];
|
|
$GLOBALS['db']->delete();
|
|
|
|
// last request was more than 30 minutes ago
|
|
session_unset(); // unset $_SESSION variable for the run-time
|
|
session_destroy(); // destroy session data in storage
|
|
|
|
return false;
|
|
} else
|
|
{
|
|
$_SESSION['LAST_ACTIVITY'] = time();
|
|
return true;
|
|
}
|
|
} else
|
|
{
|
|
return false;
|
|
}
|
|
} else
|
|
{
|
|
return false;
|
|
}
|
|
} else
|
|
{
|
|
return false;
|
|
}
|
|
} else
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
//Print header
|
|
function printHeader($title)
|
|
{
|
|
if (!is_loggedin())
|
|
{
|
|
$title = $GLOBALS['lang']->get('login');
|
|
}
|
|
|
|
if (isset($_REQUEST['direct']))
|
|
{
|
|
if (!is_loggedin())
|
|
{
|
|
header("Content-Type: text/plain");
|
|
echo 'Login First.';
|
|
exit;
|
|
}
|
|
} elseif (isset($_GET['title']))
|
|
{
|
|
if (!is_loggedin())
|
|
{
|
|
header("Content-Type: text/plain");
|
|
echo 'Login First.';
|
|
exit;
|
|
} else
|
|
{
|
|
header("Content-Type: text/plain");
|
|
echo $title;
|
|
exit;
|
|
}
|
|
} else
|
|
{
|
|
//<link rel="stylesheet prefetch" href="' . $GLOBALS['MCONF']['web_uri'] . 'css/video-js.css" type="text/css"/>
|
|
echo '<!DOCTYPE html>
|
|
<html lang="de">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<title>' . $title . ' | ' . $GLOBALS['lang']->get('admin_title') . ' | ' . $GLOBALS['MCONF']['title'] . '</title>
|
|
<link rel="shourtcut icon" href="' . $GLOBALS['MCONF']['web_uri'] . 'favicon.ico"/>
|
|
<link rel="stylesheet" href="' . $GLOBALS['MCONF']['web_uri'] . 'admin/assets/admin.css" type="text/css"/>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
|
|
<script src="' . $GLOBALS['MCONF']['web_uri'] . 'admin/assets/js/jquery.min.js"></script>
|
|
|
|
<script src="' . $GLOBALS['MCONF']['web_uri'] . 'admin/assets/js/page.js"></script>
|
|
<script src="' . $GLOBALS['MCONF']['web_uri'] . 'admin/assets/js/page.bodyparser.js"></script>
|
|
<script>
|
|
page.base(\'' . $GLOBALS['MCONF']['home_uri'] . '\');
|
|
</script>
|
|
</head>
|
|
<body>';
|
|
if (is_loggedin())
|
|
{
|
|
echo '<div class="toploading"></div> <header>
|
|
<span id="title">' . $title . '</span>
|
|
<div class="options" tabindex="0">
|
|
<input type="checkbox" id="options_menu" />
|
|
<label for="options_menu">
|
|
<p><span class="usr_info">';
|
|
//<img src="http://www.gravatar.com/avatar/' . md5(strtolower(trim($_SESSION['mail']))) . '?s=40&d=mm" alt=""/>
|
|
echo '<img src="http://www.gravatar.com/avatar/' . md5(strtolower(trim($_SESSION['mail']))) . '?s=40&d=mm" alt=""/> '.$_SESSION['user'] . '</span> <span class="fa fa-chevron-down"></span></p>
|
|
<ul>
|
|
<li><a href="' . $GLOBALS['MCONF']['web_uri'] . 'admin/user_settings.php"><span class="fa fa-gear"></span> ' . $GLOBALS['lang']->get('settings') . '</a></li>
|
|
<li><a href="' . $GLOBALS['MCONF']['web_uri'] . 'admin/logout.php" rel="external"><span class="fa fa-sign-out"></span> ' . $GLOBALS['lang']->get('logout') . '</a></li>
|
|
</ul>
|
|
</label>
|
|
</div>
|
|
</header>
|
|
<label for="show-menu" class="show-menu"><i class="fa fa-bars"></i> </label>
|
|
<input type="checkbox" id="show-menu" role="button">
|
|
<nav id="topnav">
|
|
<header>
|
|
<a href="' . $GLOBALS['MCONF']['home_uri'] . 'admin/"><img src="' . $GLOBALS['MCONF']['web_uri'] . 'admin/assets/Logo.svg" alt="Mowie CMS"/></a>
|
|
</header>
|
|
<ul id="menulist"><li><a href="' . $GLOBALS['MCONF']['home_uri'] . '" target="_blank"><i class="fa fa-external-link"></i> ' . $GLOBALS['lang']->get('main_page') . '</a></li>
|
|
<li';
|
|
if ($title == $GLOBALS['lang']->get('dashboard_title')) echo ' class="active"';
|
|
echo ' id="mw-menu-admin-"><a href="' . $GLOBALS['MCONF']['home_uri'] . 'admin/"><i class="fa fa-dashboard"></i> ' . $GLOBALS['lang']->get('dashboard') . '</a></li>';
|
|
|
|
if (hasPerm('manage_system', 'System'))
|
|
{
|
|
echo '<li';
|
|
if ($title == $GLOBALS['lang']->get('general_config')) echo ' class="active"';
|
|
echo ' id="mw-menu-admin-general_config"><a href="' . $GLOBALS['MCONF']['home_uri'] . 'admin/general_config.php"><i
|
|
class="fa fa-sliders"></i>
|
|
' . $GLOBALS['lang']->get('general_config') . '</a></li>';
|
|
}
|
|
if (hasPerm('manage_admins', 'System'))
|
|
{
|
|
?>
|
|
<li<?php
|
|
if ($title == $GLOBALS['lang']->get('admins_list') || $title == $GLOBALS['lang']->get('admins_create_new') || $title == $GLOBALS['lang']->get('admins_groups') || $title == $GLOBALS['lang']->get('admins_permissions')) echo ' class="active"';
|
|
?> id="mw-menu-admin-users-top"><a href="<?php echo $GLOBALS['MCONF']['home_uri']; ?>admin/users.php"><i
|
|
class="fa fa-group"></i>
|
|
<?php echo $GLOBALS['lang']->get('admins_title'); ?><i class="fa fa-chevron-right sub_menu"></i></a>
|
|
<ul>
|
|
<li id="mw-menu-admin-users"><a
|
|
href="<?php echo $GLOBALS['MCONF']['home_uri']; ?>admin/users.php"<?php
|
|
if ($title == $GLOBALS['lang']->get('admins_list')) echo ' class="active"';
|
|
?>><i class="fa fa-group"></i> <?php echo $GLOBALS['lang']->get('admins_list'); ?></a></li>
|
|
<li id="mw-menu-admin-roles"><a
|
|
href="<?php echo $GLOBALS['MCONF']['home_uri']; ?>admin/roles.php"<?php
|
|
if ($title == $GLOBALS['lang']->get('admins_groups')) echo ' class="active"';
|
|
?>><i class="fa fa-group"></i> <?php echo $GLOBALS['lang']->get('admins_groups'); ?></a>
|
|
</li>
|
|
<li id="mw-menu-admin-permissions"><a
|
|
href="<?php echo $GLOBALS['MCONF']['home_uri']; ?>admin/permissions.php"<?php
|
|
if ($title == $GLOBALS['lang']->get('admins_permissions')) echo ' class="active"';
|
|
?>><i class="fa fa-group"></i> <?php echo $GLOBALS['lang']->get('admins_permissions'); ?>
|
|
</a>
|
|
</li>
|
|
<li id="mw-menu-admin-new_user"><a
|
|
href="<?php echo $GLOBALS['MCONF']['home_uri']; ?>admin/new_user.php"<?php
|
|
if ($title == $GLOBALS['lang']->get('admins_create_new')) echo ' class="active"';
|
|
?>><i class="fa fa-user-plus"></i> <?php echo $GLOBALS['lang']->get('admins_create_new'); ?>
|
|
</a></li>
|
|
</ul>
|
|
</li>
|
|
<?php
|
|
}
|
|
$moduluri = '../apps/';
|
|
$pos = strpos($_SERVER['REQUEST_URI'], '/apps/');
|
|
if ($pos !== false)
|
|
{
|
|
$moduluri = '../';
|
|
$rel = explode('/', str_replace($GLOBALS['MCONF']['home_uri'] . 'apps/', '', $_SERVER['REQUEST_URI']));
|
|
$count = count($rel);
|
|
$count = $count - 1;
|
|
|
|
$i = 1;
|
|
while ($i < $count)
|
|
{
|
|
$moduluri .= '../';
|
|
$i++;
|
|
}
|
|
}
|
|
|
|
if ($handle = opendir($moduluri))
|
|
{
|
|
while (false !== ($mod = readdir($handle)))
|
|
{
|
|
if ($mod != "." && $mod != ".." && is_dir($moduluri . $mod))
|
|
{
|
|
require $moduluri . $mod . '/config.php';
|
|
if ($_CONF['menu_top'] !== '')
|
|
{
|
|
$now = '';
|
|
if (strpos($_SERVER['REQUEST_URI'], $mod) !== false)
|
|
{
|
|
$now = ' class="active"';
|
|
}
|
|
|
|
if (array_key_exists('menu_top', $_CONF['menu']))
|
|
{
|
|
echo "\n" . '<li' . $now . ' id="mw-menu-apps-' . $mod . '-top"><a href="' . $GLOBALS['MCONF']['home_uri'] . 'apps/' . $mod . '/' . $_CONF['menu']['menu_top'] . '">' . $_CONF['menu_top'] . '</a>' . "\n";
|
|
} else
|
|
{
|
|
$first_itm = array_keys($_CONF['menu']);
|
|
echo "\n" . '<li' . $now . ' id="mw-menu-apps-' . $mod . '-top"><a href="' . $GLOBALS['MCONF']['home_uri'] . 'apps/' . $mod . '/' . $_CONF['menu'][$first_itm[0]] . '">' . $_CONF['menu_top'] . '<i class="fa fa-chevron-right sub_menu"></i></a>' . "\n" . '<ul>';
|
|
foreach ($_CONF['menu'] as $mod_name_anz => $mod_name_url)
|
|
{
|
|
$now = '';
|
|
if (strpos($_SERVER['REQUEST_URI'], $mod_name_url) !== false && strpos($_SERVER['REQUEST_URI'], $mod) !== false)
|
|
{
|
|
$now = ' class="active"';
|
|
}
|
|
echo '<li' . $now . ' id="mw-menu-apps-' . $mod . '-' . str_replace(['.php', '?', '&'], '', str_replace('/', '-', $mod_name_url)) . '"><a href="' . $GLOBALS['MCONF']['home_uri'] . 'apps/' . $mod . '/' . $mod_name_url . '">' . $mod_name_anz . '</a></li>' . "\n";
|
|
}
|
|
echo '</ul></li>' . "\n";
|
|
}
|
|
$_CONF['menu_top'] = '';
|
|
}
|
|
}
|
|
}
|
|
closedir($handle);
|
|
}
|
|
echo '</ul>
|
|
<div class="copy"> © 2016 <a href="http://mowie.cc">Mowie</a></div><div class="langselect"><a id="langselectbtn"><i class="fa fa-globe"></i> </a><div class="langs">';
|
|
//Lang
|
|
$langs = $GLOBALS['lang']->getLangs();
|
|
foreach ($langs as $lang)
|
|
{
|
|
echo '<a onclick="changeLang(\'' . $lang['LangCode'] . '\')">' . $lang['Lang'] . '</a>';
|
|
}
|
|
echo '</div></div></nav>
|
|
<label for="show-menu" class="mobile-overlay"></label>
|
|
<div style="height: 40px;"></div>
|
|
<div class="loader-overlay"></div>
|
|
<div id="loader">
|
|
';
|
|
} else
|
|
{
|
|
?>
|
|
<div class="login_wrapper">
|
|
<img src="<?php echo $GLOBALS['MCONF']['web_uri']; ?>admin/assets/Logo.svg" alt="Mowie"/>
|
|
<div class="login_container">
|
|
<div class="langselect"><a id="langselectbtn"><i class="fa fa-globe"></i> </a>
|
|
<div class="langs">
|
|
<?php
|
|
//Lang
|
|
$langs = $GLOBALS['lang']->getLangs();
|
|
foreach ($langs as $lang)
|
|
{
|
|
echo '<a onclick="changeLang(\'' . $lang['LangCode'] . '\')">' . $lang['Lang'] . '</a>';
|
|
} ?>
|
|
</div>
|
|
</div>
|
|
<h1><?php echo $GLOBALS['lang']->get('login'); ?></h1>
|
|
<form action="<?php echo $GLOBALS['MCONF']['web_uri']; ?>admin/login.php" method="post"
|
|
id="login">
|
|
<input type="text" placeholder="<?php echo $GLOBALS['lang']->get('username'); ?>" id="username"
|
|
autofocus/><br/>
|
|
<input type="password" placeholder="<?php echo $GLOBALS['lang']->get('password'); ?>"
|
|
id="pw"/><br/>
|
|
<div id="2faContainer" style="display: none">
|
|
<input type="text" id="2fa" autocomplete="off"
|
|
placeholder="<?php echo $GLOBALS['lang']->get('2fa_code'); ?>"><br/>
|
|
</div>
|
|
<a href="reset-pw.php"><?php echo $GLOBALS['lang']->get('reset_pass_lost');?></a><br/>
|
|
<input type="submit" value="<?php echo $GLOBALS['lang']->get('login'); ?>"/>
|
|
</form>
|
|
<div id="msg"></div>
|
|
</div>
|
|
<p style="text-align: center;color: #fff;text-shadow: 1px 1px 1px #555;">© 2016 <a
|
|
href="http://mowie.cc" style="color: #fff;">Mowie</a></p>
|
|
</div>
|
|
<script>
|
|
$("#login").submit(function () {
|
|
if ($('#username').val() == '' || $('#pw').val() == '') {
|
|
$('#msg').html('<?php echo $GLOBALS['lang']->get('all_fields');?>');
|
|
}
|
|
else {
|
|
$('#msg').html('<div class="spinner-container"><svg class="spinner" style="width:41px;height:40px;" viewBox="0 0 44 44"><circle class="path" cx="22" cy="22" r="20" fill="none" stroke-width="4"></circle> </svg> </div>');
|
|
|
|
$.ajax({
|
|
type: 'POST',
|
|
url: '<?php echo $GLOBALS['MCONF']['web_uri']; ?>admin/login.php',
|
|
data: "username=" + $('#username').val() + "&pw=" + $('#pw').val() + "&2fa=" + $('#2fa').val(),
|
|
success: function (msg) {
|
|
console.log(msg);
|
|
if (msg == 'success') {
|
|
location.reload();
|
|
}
|
|
else if (msg == '2fa') {
|
|
$('#2faContainer').show();
|
|
$('#msg').hide();
|
|
}
|
|
else if (msg == '2fafail') {
|
|
$('#msg').html('<div class="message-fail"><?php echo $GLOBALS['lang']->get('error_2fa');?></div>');
|
|
}
|
|
else {
|
|
$('#msg').html('<div class="message-fail"><?php echo $GLOBALS['lang']->get('wrong_username_or_pass');?></div>');
|
|
}
|
|
}
|
|
});
|
|
}
|
|
return false;
|
|
});
|
|
|
|
//Change current Language
|
|
$('#langselectbtn').click(function () {
|
|
$('.langs').fadeToggle(100);
|
|
});
|
|
|
|
function changeLang(lang) {
|
|
$('#msg').html('<div class="spinner-container"><svg class="spinner" style="width:41px;height:40px;" viewBox="0 0 44 44"><circle class="path" cx="22" cy="22" r="20" fill="none" stroke-width="4"></circle> </svg> </div>');
|
|
$.get('<?php echo $GLOBALS['MCONF']['home_uri'];?>admin/lang.php?set=' + lang, function (data) {
|
|
console.log(data);
|
|
if (data == 1) {
|
|
location.reload();
|
|
}
|
|
})
|
|
}
|
|
</script>
|
|
</body>
|
|
</html><?php
|
|
exit;
|
|
}
|
|
}
|
|
}
|
|
|
|
// Returns a file size limit in bytes based on the PHP upload_max_filesize
|
|
// and post_max_size
|
|
function file_upload_max_size()
|
|
{
|
|
static $max_size = -1;
|
|
|
|
if ($max_size < 0)
|
|
{
|
|
// Start with post_max_size.
|
|
$max_size = parse_size(ini_get('post_max_size'));
|
|
|
|
if ($max_size == 0)
|
|
{
|
|
$max_size = parse_size(ini_get('upload_max_filesize'));
|
|
} else
|
|
{
|
|
// If upload_max_size is less, then reduce. Except if upload_max_size is
|
|
// zero, which indicates no limit.
|
|
$upload_max = parse_size(ini_get('upload_max_filesize'));
|
|
if ($upload_max > 0 && $upload_max < $max_size)
|
|
{
|
|
$max_size = $upload_max;
|
|
}
|
|
}
|
|
}
|
|
return $max_size;
|
|
}
|
|
|
|
function parse_size($size)
|
|
{
|
|
$unit = preg_replace('/[^bkmgtpezy]/i', '', $size); // Remove the non-unit characters from the size.
|
|
$size = preg_replace('/[^0-9\.]/', '', $size); // Remove the non-numeric characters from the size.
|
|
if ($unit)
|
|
{
|
|
// Find the position of the unit in the ordered string which is the power of magnitude to multiply a kilobyte by.
|
|
return round($size * pow(1024, stripos('bkmgtpezy', $unit[0])));
|
|
} else
|
|
{
|
|
return round($size);
|
|
}
|
|
}
|
|
|
|
//Permissions
|
|
function hasPerm($permkey, $scope = '')
|
|
{
|
|
if (isset($_SESSION['userid']))
|
|
{
|
|
if ($_SESSION['lvl'] == 1)
|
|
{
|
|
return true;
|
|
} else
|
|
{
|
|
$scopeUri = '';
|
|
$pos = strpos($_SERVER['REQUEST_URI'], '/apps/');
|
|
if ($pos !== false)
|
|
{
|
|
//$scopeUri = '../';
|
|
$rel = explode('/', str_replace($GLOBALS['MCONF']['home_uri'] . 'apps/', '', $_SERVER['REQUEST_URI']));
|
|
$count = count($rel);
|
|
$count = $count - 1;
|
|
|
|
$i = 1;
|
|
while ($i < $count)
|
|
{
|
|
$scopeUri .= '../';
|
|
$i++;
|
|
}
|
|
|
|
}
|
|
|
|
if ($scope == 'System') $scopeUri .= '../admin/';
|
|
|
|
//echo $moduluri;
|
|
|
|
if (file_exists($scopeUri . 'permissions.json'))
|
|
{
|
|
$perms = json_decode(file_get_contents($scopeUri . 'permissions.json'), true);
|
|
$permsTotal = [];
|
|
foreach ($perms['permissions'] as $perm)
|
|
{
|
|
$permsTotal[] = $perm['key'];
|
|
}
|
|
|
|
if (in_array($permkey, $permsTotal))
|
|
{
|
|
$GLOBALS['db']->setCol('system_roles');
|
|
$GLOBALS['db']->data['id'] = $_SESSION['lvl'];
|
|
$GLOBALS['db']->get();
|
|
if (isset($GLOBALS['db']->data[0]))
|
|
{
|
|
$perms = json_decode($GLOBALS['db']->data[0]['permissions'], true);
|
|
|
|
$perms_f = [];
|
|
$pos = strpos($_SERVER['REQUEST_URI'], '/apps/');
|
|
if ($pos !== false)
|
|
{
|
|
require $scopeUri . 'config.php';
|
|
if (array_key_exists($_CONF['mod_name'], $perms)) $perms_f = $perms[$_CONF['mod_name']];
|
|
} else
|
|
{
|
|
$perms_f = $perms['System'];
|
|
}
|
|
if (in_array($permkey, $perms_f))
|
|
{
|
|
return true;
|
|
} else
|
|
{
|
|
return false;
|
|
}
|
|
} else
|
|
{
|
|
return false;
|
|
}
|
|
} else
|
|
{
|
|
return false;
|
|
}
|
|
} else
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
} else
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
//Get Username based on its ID
|
|
function getUserByID($userid)
|
|
{
|
|
if ($userid == $_SESSION['userid'])
|
|
{
|
|
return $_SESSION['user'];
|
|
} else
|
|
{
|
|
$GLOBALS['db']->setCol('system_admins');
|
|
$GLOBALS['db']->data['id'] = $userid;
|
|
$GLOBALS['db']->get();
|
|
if (isset($GLOBALS['db']->data[0]))
|
|
{
|
|
return $GLOBALS['db']->data[0]['username'];
|
|
} else
|
|
{
|
|
return $userid;
|
|
}
|
|
}
|
|
}
|
|
|
|
//Test mail
|
|
function smail($mailaddr, $subject, $message, $header)
|
|
{
|
|
$mail = 'To: ' . $mailaddr . "\n";
|
|
$mail .= 'Subject: ' . $subject . "\n";
|
|
$mail .= $header . "\n\n";
|
|
$mail .= $message;
|
|
|
|
if (file_put_contents('mail_' . $mailaddr . '_' . time() . '.txt', $mail))
|
|
{
|
|
return true;
|
|
} else
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
//SMTP-Mailer
|
|
function mmail($mailaddr, $subject, $message, $from, $html = false)
|
|
{
|
|
if ($GLOBALS['MCONF']['smtp'])
|
|
{
|
|
require_once 'PHP-mailer/class.phpmailer.php';
|
|
require_once 'PHP-mailer/class.smtp.php';
|
|
|
|
$mail = new PHPMailer;
|
|
|
|
$mail->isSMTP();
|
|
$mail->Host = $GLOBALS['MCONF']['smtp_host'];
|
|
$mail->SMTPAuth = true;
|
|
$mail->Username = $GLOBALS['MCONF']['smtp_user'];
|
|
$mail->Password = $GLOBALS['MCONF']['smtp_pass'];
|
|
$mail->SMTPSecure = $GLOBALS['MCONF']['smtp_secure'];
|
|
$mail->Port = $GLOBALS['MCONF']['smtp_port'];
|
|
|
|
$mail->setFrom($from);
|
|
$mail->addAddress($mailaddr);
|
|
$mail->isHTML($html);
|
|
|
|
$mail->Subject = $subject;
|
|
$mail->Body = $message;
|
|
|
|
return $mail->send();
|
|
}
|
|
else
|
|
{
|
|
$header = 'From: ' . $from . "\n";
|
|
if ($html) $header .= "Content-Type: text/html\n";
|
|
|
|
return mail($mailaddr, $subject, $message, $header);
|
|
}
|
|
}
|
|
|
|
?>
|