/** * Check if user is authorized * * @return boolean true is access granted, false if no access */ function auth() { global $perm, $AUTH_USER_ID; if (!isset($AUTHORIZE_BY)) { $AUTHORIZE_BY = 'User_ID'; } $user = Authorize(); if (!$user) { echo 'Not enough rights or Hack attempt!'; exit; } if (!is_object($perm) || !$perm->accessToCKeditor()) { echo 'Not enough rights or Hack attempt!'; exit; } return $AUTH_USER_ID; }
<?php die; $DONOTWEBSERVICE = true; include_once 'KingdomService.php'; $K = new Kingdom(); $request = array('UserName' => 'admin', 'Password' => 'p455w0rd'); $r = Authorize($request); $request = array('Token' => $r['Token'], 'Name' => 'test kingdom 3', 'Abbreviation' => 'T3', 'AveragePeriod' => '6', 'AttendancePeriodType' => 'month', 'AttendanceMinimum' => '1', 'AttendanceCreditMinimum' => '1', 'DuesPeriod' => '6', 'DuesPeriodType' => 'month', 'DuesAmount' => '10', 'KingdomDuesTake' => '3'); //print_r($K->CreateKingdom($request)); $c = new Common(); $c->create_officers(2, 0); $c->create_officers(9, 0); $c->create_officers(11, 0); $c->create_officers(14, 0); $c->create_officers(1, 1); $c->create_officers(1, 2); $c->create_officers(1, 5); $c->create_officers(1, 39); $c->create_officers(2, 3); $c->create_officers(2, 4);
if (!($classPreview > 0)) { die; } $NETCAT_FOLDER = join(strstr(__FILE__, "/") ? "/" : "\\", array_slice(preg_split("/[\\/\\\\]+/", __FILE__), 0, -4)) . (strstr(__FILE__, "/") ? "/" : "\\"); @(include_once $NETCAT_FOLDER . "vars.inc.php"); require_once $ADMIN_FOLDER . 'CheckUserFunctions.inc.php'; require_once $ADMIN_FOLDER . 'template.inc.php'; require_once $ADMIN_FOLDER . 'admin.inc.php'; # Загрузка файла локализации $lang = $nc_core->lang->detect_lang(); require_once $ADMIN_FOLDER . "lang/" . $lang . ".php"; $nc_core->modules->load_env(); $classPreview += 0; // для авторизации $admin_mode = 1; if (!Authorize()) { Refuse(); } if (!$perm->isSupervisor()) { BeginHtml(NETCAT_MODERATION_ERROR_NORIGHTS); nc_print_status(NETCAT_MODERATION_ERROR_NORIGHTS, "error"); EndHtml(); die; } $postClass_ID = $_POST["ClassID"] + 0; $ClassTemplate = $db->get_var("SELECT `ClassTemplate` FROM `Class` WHERE `Class_ID` = '" . $classPreview . "'"); if ($postClass_ID > 0 && $postClass_ID == $classPreview) { // Если в POST есть $ClassID - то это попытка передать нам редактируемый компонент для Preview. // Занесем его в сессию $_SESSION["PreviewClass"][$classPreview] = array("FormPrefix" => $_POST["FormPrefix"], "RecordTemplate" => $_POST["RecordTemplate"], "FormSuffix" => $_POST["FormSuffix"], "RecordsPerPage" => $_POST["RecordsPerPage"], "SortBy" => $_POST["SortBy"], "TitleTemplate" => $_POST["TitleTemplate"], "RecordTemplateFull" => $_POST["RecordTemplateFull"], "NL2BR" => $_POST["NL2BR"], "Settings" => $_POST["Settings"], "CustomSettingsTemplate" => $_POST["CustomSettingsTemplate"], "DaysToHold" => $_POST["DaysToHold"]); }
function nc_quickbar_permission() { global $perm, $current_sub, $catalogue; if (!is_object($perm)) { Authorize(); } if (!is_object($perm)) { return false; } $allow_id = (array) $perm->GetAllowSub($catalogue, MASK_ADMIN | MASK_MODERATE, false, true, true); if (in_array($current_sub['Subdivision_ID'], $allow_id) || $perm->isAnySubClassAdmin()) { return true; } else { return false; } }
function s_auth($cc_env, $action, $posting) { global $nc_core; global $admin_mode, $AUTHORIZATION_TYPE, $user_table_mode; global $AUTH_USER_ID; // редактирование пользователя через лицевую часть if ($action == "change" && $user_table_mode && ($AUTH_USER_ID || Authorize())) { return true; } if ($action == "index" || $action == "full" || $action == "search") { $action = "read"; } $cc = $cc_env["Sub_Class_ID"]; $MODULE_VARS = $nc_core->modules->get_module_vars(); // для модуля подписки версии 2 своя проверка прав if ($action == 'subscribe' && $MODULE_VARS['subscriber']['VERSION'] > 1) { try { $nc_s = nc_subscriber::get_object(); $mailer_id = $nc_s->get_mailer_by_cc($cc, 'Mailer_ID'); return $nc_s = $nc_s->check_rights($mailer_id); } catch (Exception $e) { } } // параметры текущего раздела $sub_env = $nc_core->subdivision->get_current(); // Если нет сс, то права на доступ нужно взять из раздела $instance = is_array($cc_env) && $cc ? "cc_env" : "sub_env"; switch ($action) { case "add": $f_access = ${$instance}["Write_Access_ID"]; break; case "change": $f_access = ${$instance}["Edit_Access_ID"]; break; case "subscribe": $f_access = ${$instance}["Subscribe_Access_ID"]; break; case "comment": $f_access = ${$instance}["Comment_Access_ID"]; break; case "moderate": $f_access = 3; break; //модерирование, надо провреить, не забанен ли, а потом проверить на наличие соответ. права //модерирование, надо провреить, не забанен ли, а потом проверить на наличие соответ. права default: $f_access = ${$instance}["Read_Access_ID"]; break; } // действия с объектами (изменение, удаление) не доступно неавторизованным if ($f_access == 1 && $action == "change") { $f_access = 2; } switch ($f_access) { case 1: // все if ($admin_mode) { if (!Authorize()) { return false; } if (!CheckUserRights($cc, $action, 1)) { return false; } } break; case 2: // только зарегистрированные if (!Authorize()) { return false; } global $perm; if ($perm->isBanned($cc_env, $action)) { return false; } break; case 3: // только уполномочнные if (!Authorize()) { return false; } global $perm; if ($perm->isBanned($cc_env, $action)) { return false; } if (!CheckUserRights($cc, $action, $posting)) { return false; } break; default: break; } return true; }
<?php /* $Id: showpreview.php 7863 2012-07-30 15:18:50Z lemonade $ */ $NETCAT_FOLDER = join(strstr(__FILE__, "/") ? "/" : "\\", array_slice(preg_split("/[\\/\\\\]+/", __FILE__), 0, -4)) . (strstr(__FILE__, "/") ? "/" : "\\"); include_once $NETCAT_FOLDER . "vars.inc.php"; require $INCLUDE_FOLDER . "index.php"; $error = false; $id = (int) $_GET['id']; # если пользователь не зарегистрирован или не объявлен $perm if (!$current_user || !class_exists("Permission") || !is_object($perm)) { $error = NETCAT_MODERATION_ERROR_NORIGHT; } else { # права администратора $AdmRights = $perm->isDirector() || $perm->isSupervisor(); # если есть какие либо из этих прав, доступ разрещён if (!$AdmRights) { $error = NETCAT_MODERATION_ERROR_NORIGHT; } } // if no auth module, object $perm not instantiated and error is true // try to authorize and unset error or error is really true if ($error && Authorize()) { if (is_object($perm) && ($perm->isDirector() || $perm->isSupervisor())) { unset($error); } } echo "<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'>\n<html>\n<head>\n<meta http-equiv='content-type' content='text/html; charset=" . $nc_core->NC_CHARSET . "'>\n<title>" . (!$error ? NETCAT_MODULE_CALENDAR_PREVIEW : $error) . "</title>\n" . (!$error ? nc_set_calendar($id) : "") . "\n</head>\n<body>\n" . (!$error ? "<table cellspacing='1' cellpadding='1' border='0' style='width:100%; height:100%'>\n<tr valign='middle'>\n<td align='center'>\n" . nc_show_calendar($id, 0, date('Y-m-d'), 'Created', true, false, true) . "\n</td>\n</tr>\n</table>" : $error) . "\n</body>\n</html>";
function CheckUserRights($SubClassID, $action, $posting) { global $db; global $perm; # значения action # 1 - read # 2 - add # 4 - change # 8 - subscribe # 16 - moderate if (!$perm) { Authorize(); } if (!is_object($perm)) { return 0; } if ($perm->isSupervisor()) { return 1; } switch ($action) { case "read": $mask = MASK_READ | MASK_MODERATE; //moderator can read all break; case "comment": $mask = MASK_COMMENT; break; case "add": $mask = MASK_ADD; break; case "change": global $delete, $checked; // нужно точно узнать, какое изменение происходит $mask = MASK_MODERATE; // в любом случае модератор может все switch (true) { case isset($delete): $mask |= MASK_DELETE; break; case isset($checked): $mask |= MASK_CHECKED; break; default: $mask |= MASK_EDIT; } break; case "subscribe": $mask = MASK_SUBSCRIBE; break; case "moderate": $mask = MASK_MODERATE; break; default: $mask = MASK_READ | MASK_MODERATE; break; } if ($perm->isGuest()) { // право гость //дает просматривать без записи в БД return $posting == 0 || $mask == 1; } #сообственно, проверка прав //случай, когда в разделе есть компонент if ($SubClassID) { return $perm->isSubClass($SubClassID, $mask, true); } // Возможен случай, когда в разделе нет компонента, в этом случае надо проеврить // на доступ к разделу. global $current_sub; return $perm->isSubdivision($current_sub['Subdivision_ID'], $mask); }
} // нужна ли каптча if ($AuthPhase && $AUTH_USER && $nc_auth->need_captcha() && !nc_captcha_verify_code($nc_core->input->fetch_get_post('nc_captcha_code'))) { $nc_auth->set_invalid_captcha(); $AuthPhase = 0; } } // Admin Interface Initialization $admin_mode = true; LoadSettings(); $nc_token_login = $nc_core->input->fetch_get_post('nc_token_login'); $nc_token_signature = $nc_core->input->fetch_get_post('nc_token_signature'); if ($nc_token_login && $nc_token_signature) { $nc_core->user->authorize_by_token($nc_token_login, $nc_token_signature, $_SESSION['nc_token_rand']); } Authorize(0, null, null, 1); if (!$AUTH_USER_ID) { Refuse(); exit; } // Использовать паттерн POST-REDIRECT-GET после авторизации if ($nc_core->input->fetch_post('AuthPhase') == 1 && $nc_core->input->fetch_post('AUTH_USER')) { header("Location: " . htmlspecialchars_decode($_SERVER['REQUEST_URI']), true, 302); exit; } # Загрузка файла локализации if ($lang) { $AUTH_LANG = $lang; $db->query("UPDATE `User` SET `Language` = '" . $db->escape($lang) . "' WHERE `User_ID` = '" . $AUTH_USER_ID . "'"); } // установить заголовок с кодировкой, чтобы избежать проблем с