// This function will be executed when the admin is not logged in and has submitted his login data
function ifAdminLoginDataIsValid ($adminLogin, $adminPassword) {
- // First of all, no admin login is found
+ // First of all, no admin login is found, so the admin hash is null
$ret = '404';
+ $adminHash = null;
// Get admin id from login
$adminId = getAdminId($adminLogin);
// Get action value
$action = getActionFromModuleWhat(getModule(), $what);
- // Define admin login name and id number
- $content['login'] = getAdminLogin(getSession('admin_id'));
- $content['id'] = getCurrentAdminId();
-
- // Preload templates
+ // Load welcome template
if (isExtensionActive('admins')) {
- $content['welcome'] = loadTemplate('admin_welcome_admins', true, $content);
+ // @TODO This and the next getCurrentAdminId() call might be moved into the templates?
+ $content['welcome'] = loadTemplate('admin_welcome_admins', true, getCurrentAdminId());
} else {
- $content['welcome'] = loadTemplate('admin_welcome', true, $content);
+ $content['welcome'] = loadTemplate('admin_welcome', true, getCurrentAdminId());
}
// Load header, footer, render menu
loadTemplate('admin_main_footer', false, $content);
}
+// Checks wether current admin is allowed to access given action/what combination
+// (only one is allowed to be null!)
+function isAdminAllowedAccessMenu ($action, $what = null) {
+ // Do we have cache?
+ if (!isset($GLOBALS[__FUNCTION__][$action][$what])) {
+ // ACL is always 'allow' when no ext-admins is installed
+ // @TODO This can be rewritten into a filter
+ $GLOBALS[__FUNCTION__][$action][$what] = ((!isExtensionInstalledAndNewer('admins', '0.2.0')) || (adminsCheckAdminAcl($action, $what)));
+ } // END - if
+
+ // Return the cached value
+ return $GLOBALS[__FUNCTION__][$action][$what];
+}
+
// Adds an admin menu
-function addAdminMenu ($action, $what, $return=false) {
+function addAdminMenu ($action, $what, $return = false) {
// Init variables
$SUB = false;
$OUT = '';
$OUT .= '<ul class="admin_menu_main">';
// @TODO Rewrite this to $content = SQL_FETCHARRAY()
while (list($menu, $title, $descr) = SQL_FETCHROW($result_main)) {
- if (isExtensionInstalledAndNewer('admins', '0.2.0')) {
- $ACL = adminsCheckAdminAcl($menu, '');
- } else {
- // @TODO ACL is 'allow'... hmmm
- $ACL = true;
- }
-
// Filename
$inc = sprintf("inc/modules/admin/action-%s.php", $menu);
// Is the file readable?
$readable = isIncludeReadable($inc);
- if ($ACL === true) {
+ // Is the current admin allowed to access this 'action' menu?
+ if (isAdminAllowedAccessMenu($menu)) {
if ($SUB === false) {
// Insert compiled menu title and description
$GLOBALS['menu']['title'][$menu] = $title;
$GLOBALS['menu']['description'][$menu] = $descr;
- }
+ } // END - if
$OUT .= '<li class="admin_menu">
<div class="nobr"><strong>·</strong> ';
$OUT .= '<li class="admin_menu_sub"><ul class="admin_menu_sub">';
// @TODO Rewrite this to $content = SQL_FETCHARRAY()
while (list($what_sub, $title_what, $desc_what) = SQL_FETCHROW($result_what)) {
- // Check for access level
- if (isExtensionInstalledAndNewer('admins', '0.2.0')) {
- $ACL = adminsCheckAdminAcl('', $what_sub);
- } else {
- // @TODO ACL is 'allow'... hmmm
- $ACL = true;
- }
-
// Filename
$inc = sprintf("inc/modules/admin/what-%s.php", $what_sub);
// Is the file readable?
$readable = isIncludeReadable($inc);
- // Access allowed?
- if ($ACL === true) {
+ // Is the current admin allowed to access this 'what' menu?
+ if (isAdminAllowedAccessMenu(null, $what_sub)) {
// Insert compiled title and description
$GLOBALS['menu']['title'][$what_sub] = $title_what;
$GLOBALS['menu']['description'][$what_sub] = $desc_what;
// Check "logical-area-mode"
function adminGetMenuMode () {
// Set the default menu mode as the mode for all admins
- $mode = getConfig('admin_menu');
+ $mode = getAdminMenu();
$adminMode = $mode;
// Get admin id
}
// Check what the admin wants and set it when it's not the default mode
- if ($adminMode != 'global') $mode = $adminMode;
+ if ($adminMode != 'global') {
+ $mode = $adminMode;
+ } // END - if
// Return admin-menu's mode
return $mode;
// Change activation status
function adminChangeActivationStatus ($IDs, $table, $row, $idRow = 'id') {
- $cnt = '0'; $newStatus = 'Y';
+ $count = '0'; $newStatus = 'Y';
if ((is_array($IDs)) && (count($IDs) > 0)) {
// "Walk" all through and count them
foreach ($IDs as $id => $selected) {
array($table, $row, $newStatus, $idRow, $id), __FUNCTION__, __LINE__);
// Count up affected rows
- $cnt += SQL_AFFECTEDROWS();
+ $count += SQL_AFFECTEDROWS();
} // END - if
// Free the result
} // END - foreach
// Output status
- loadTemplate('admin_settings_saved', false, sprintf(getMessage('ADMIN_STATUS_CHANGED'), $cnt, count($IDs)));
+ loadTemplate('admin_settings_saved', false, sprintf(getMessage('ADMIN_STATUS_CHANGED'), $count, count($IDs)));
} else {
// Nothing selected!
loadTemplate('admin_settings_saved', false, '{--ADMIN_NOTHING_SELECTED_CHANGE--}');
// Is the element set, then we need to change the admin
if (isPostRequestParameterSet('expert_settings')) {
// Get it and prepare final post data array
- $postData['login'][getCurrentAdminId()] = getAdminLogin(getCurrentAdminId());
+ $postData['login'][getCurrentAdminId()] = getCurrentAdminLogin();
$postData['expert_warning'][getCurrentAdminId()] = 'N';
// Change it in the admin