* InfiniteWP Admin panel * * Copyright (c) 2012 Revmakx * * www.revmakx.com * * * ************************************************************/ include "includes/app.php"; onBrowserLoad(); initMenus(); if (function_exists('multiUserStatus')) { multiUserStatus(); } else { if (userStatus() != 'admin') { userLogout(); } } $isAddonSuiteMiniLimitExceeded = panelRequestManager::checkIsAddonSuiteMiniLimitExceeded(); $isMiniExpired = panelRequestManager::checkIsMiniExpired(); $addonSuiteMiniActivity = panelRequestManager::getAddonSuiteMiniActivity(); $addonSuiteMiniLimit = panelRequestManager::getAddonSuiteMiniLimit(); $IDToBeUpgradedFromMini = panelRequestManager::getIDToBeUpgradedFromMini(); $IDForAddonSuite = panelRequestManager::getIDForAddonSuite(); $priceForSuiteUpgradedFromMini = panelRequestManager::getPriceForSuiteUpgradedFromMini(); $priceForAddonSuite = panelRequestManager::getPriceForAddonSuite(); $addonSuiteLimitExceededIllegally = json_encode(Reg::get('addonSuiteLimitExceededIllegally')); $mainJson = json_encode(panelRequestManager::getSitesUpdates()); $toolTipData = json_encode(panelRequestManager::getUserHelp()); $favourites = json_encode(panelRequestManager::getFavourites()); $sitesData = json_encode(panelRequestManager::getSites()); $sitesListData = json_encode(panelRequestManager::getSitesList()); $groupData = json_encode(panelRequestManager::getGroupsSites()); $updateAvailable = json_encode(checkUpdate(false, false));
public static function addSiteProcessor($dummy, $params) { // Add a site if (panelRequestManager::checkIsAddonSuiteMiniLimitExceeded() && panelRequestManager::getAddonSuiteMiniActivity() == 'installed') { return false; } $requestAction = "add_site"; $action = "add"; $type = "site"; $actionID = Reg::get('currentRequest.actionID'); $timeout = DEFAULT_MAX_CLIENT_REQUEST_TIMEOUT; $params['URL'] = trim($params['URL']); $params['username'] = trim($params['username']); $params['activationKey'] = trim($params['activationKey']); $events = 1; if (!empty($params['URL'])) { $params['URL'] = $params['URL'] . (substr($params['URL'], -1) == '/' ? '' : '/'); } $historyAdditionalData = array(); $historyAdditionalData[] = array('uniqueName' => $params['URL'], 'detailedAction' => $action); $historyData = array('siteID' => '0', 'actionID' => $actionID, 'userID' => $GLOBALS['userID'], 'type' => $type, 'action' => $action, 'events' => $events, 'URL' => $params['URL'], 'timeout' => $timeout); $callOpt = array(); if (!empty($params['callOpt'])) { $callOpt = $params['callOpt']; } if (!empty($params['httpAuth']['username'])) { $callOpt['httpAuth'] = $params['httpAuth']; $historyData['callOpt'] = @serialize($callOpt); } $historyID = addHistory($historyData, $historyAdditionalData); if (checkOpenSSL()) { //use when remote WP has openssl installed or not installed $key = @openssl_pkey_new(); @openssl_pkey_export($key, $privateKey); $privateKey = base64_encode($privateKey); $publicKey = @openssl_pkey_get_details($key); $publicKey = $publicKey["key"]; $publicKey = base64_encode($publicKey); openssl_sign($requestAction . $historyID, $signData, base64_decode($privateKey)); $signData = base64_encode($signData); $GLOBALS['storage']['newSite']['addSitePrivateKey'] = $privateKey; } else { //if HOST Manager doesnt have openssl installed if (!defined('USE_RANDOM_KEY_SIGNINIG')) { define('USE_RANDOM_KEY_SIGNINIG', true); } srand(); //some random text $publicKey = 'FMGJUKHFKJHKHEkjfcjkshdkhauiksdyeriaykfkzashbdiadugaisbdkbasdkh36482763872638478sdfkjsdhkfhskdhfkhsdfi323798435h453h4d59h4iu5ashd4ui5ah4sd5fih65fd958345454h65fkjsa4fhd5649dasf86953q565kb15ak1b'; $publicKey = sha1($publicKey) . substr($publicKey, rand(0, 50), rand(50, strlen(rand(0, strlen($publicKey))))); $publicKey = md5(rand(0, getrandmax()) . base64_encode($publicKey) . rand(0, getrandmax())); $signData = md5($requestAction . $historyID . $publicKey); } if (!empty($params['managerID'])) { $GLOBALS['storage']['newSite']['managerID'] = $params['managerID']; } //using GLOBALS on the assumption addSite is always direct call not async call $GLOBALS['storage']['newSite']['addSiteAdminUsername'] = $params['username']; $GLOBALS['storage']['newSite']['groupsPlainText'] = $params['groupsPlainText']; $GLOBALS['storage']['newSite']['groupIDs'] = $params['groupIDs']; $GLOBALS['storage']['newSite']['httpAuth'] = $params['httpAuth']; $GLOBALS['storage']['newSite']['callOpt'] = $params['callOpt']; $GLOBALS['storage']['newSite']['connectURL'] = !empty($params['connectURL']) ? $params['connectURL'] : 'default'; $GLOBALS['storage']['newSite']['advancedCUCT'] = intval($params['advancedCUCT']); $requestParams = array('site_url' => $params['URL'], 'action' => $requestAction, 'public_key' => $publicKey, 'id' => $historyID, 'signature' => $signData, 'username' => $params['username'], 'activation_key' => $params['activationKey']); if (defined('USE_RANDOM_KEY_SIGNINIG')) { $requestParams['user_random_key_signing'] = 1; } $requestData = array('iwp_action' => $requestAction, 'params' => $requestParams, 'iwp_admin_version' => APP_VERSION); if ($GLOBALS['storage']['newSite']['advancedCUCT']) { $GLOBALS['storage']['newSite']['requestData'] = $requestData; } $updateHistoryData = array('status' => 'pending'); updateHistory($updateHistoryData, $historyID); DB::insert("?:history_raw_details", array('historyID' => $historyID, 'request' => base64_encode(serialize($requestData)), 'panelRequest' => serialize($_REQUEST))); return executeRequest($historyID, $type, $action, $params['URL'], $requestData, $timeout, true, $callOpt); }
function loadActiveAddons() { $suiteDetails = unserialize(getOption('suiteDetails')); if (empty($suiteDetails) and !is_array($suiteDetails)) { $addonSuiteMiniActivity = ''; } else { $addonSuiteMiniActivity = $suiteDetails['addonSuiteMiniActivity']; } if (panelRequestManager::checkIsAddonSuiteMiniLimitExceeded('addonSuiteLimitExceededIllegally') && panelRequestManager::getAddonSuiteMiniActivity() == 'installed') { Reg::set('addonSuiteLimitExceededIllegally', 1); Reg::set('addonSuiteLimitExceededAttemp', 1); } else { Reg::set('addonSuiteLimitExceededIllegally', 0); Reg::set('addonSuiteLimitExceededAttemp', 0); } $activeAddons = DB::getArray("?:addons", "slug, status, addon", "1"); if (userStatus() != 'admin') { userAddonsAccess($activeAddons); } $installedAddons = @unserialize(getOption('updateAddonsAvailable')); $newAddons = getNewAddonsAvailable(); $purchasedAddons = array(); if (!empty($installedAddons)) { $purchasedAddons = array_merge($purchasedAddons, array_keys($installedAddons)); } if (!empty($newAddons)) { $purchasedAddons = array_merge($purchasedAddons, array_keys($newAddons)); } Reg::set('purchasedAddons', $purchasedAddons); $uninstallAddons = $uninstall = $activeLoadedAddonsSlugs = $allPurchasedAddonsNameAndSlug = array(); foreach ($activeAddons as $key => $addon) { if (!in_array($addon['slug'], $purchasedAddons)) { $uninstall[] = $addon['slug']; $uninstallAddons[]['slug'] = $addon['slug']; } if ($addon['status'] == 'active') { $allPurchasedAddonsNameAndSlug[$addon['slug']] = $addon['addon']; if (Reg::get('addonSuiteLimitExceededIllegally') && Reg::get('addonSuiteLimitExceededAttemp')) { $activeLoadedAddonsSlugs[$addon['slug']] = array('slug' => $addon['slug']); } else { //if(file_exists(APP_ROOT.'/addons/'.$addon['slug'].'/addon.'.$addon['slug'].'.php')){ @(include_once APP_ROOT . '/addons/' . $addon['slug'] . '/addon.' . $addon['slug'] . '.php'); if (method_exists('addon' . ucfirst($addon['slug']), 'init')) { call_user_func(array('addon' . ucfirst($addon['slug']), 'init')); $activeLoadedAddonsSlugs[$addon['slug']] = array('slug' => $addon['slug']); } else { //file not found deactivate the addon unset($activeAddons[$key]); //DB::delete("?:addons", "slug='".$addon['slug']."'"); //addNotification($type='E', $title='Addon file missing', $message='The "'.$addon['addon'].'" addon has been removed, since a file is missing.', $state='U', $callbackOnClose='', $callbackReference=''); } } } } if (!empty($uninstallAddons) && $addonSuiteMiniActivity != 'cancelled') { addNotification($type = 'E', $title = 'Addon error', $message = 'Addon(s) are not legitimate.', $state = 'U', $callbackOnClose = '', $callbackReference = ''); uninstallAddons($uninstallAddons); } regSetInstalledAddonsDetails($activeLoadedAddonsSlugs); Reg::set('allPurchasedAddonsNameAndSlug', $allPurchasedAddonsNameAndSlug); //Reg::set('activeAddons', $activeLoadedAddonsSlugs); }