示例#1
0
| Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA |
+---------------------------------------------------------------------------+
$Id: account-switch.php 37157 2009-05-28 12:31:10Z andrew.hill $
*/
// Require the initialisation file
require_once '../../init.php';
// Required files
require_once MAX_PATH . '/lib/OA/Dal.php';
require_once MAX_PATH . '/lib/OA/Dll.php';
require_once MAX_PATH . '/www/admin/config.php';
require_once LIB_PATH . '/Admin/Redirect.php';
require_once MAX_PATH . '/lib/OA/Admin/UI/AccountSwitch.php';
phpAds_registerGlobalUnslashed('return_url', 'account_id');
if (!empty($account_id)) {
    OA_Permission::enforceAccess($account_id);
    OA_Permission::switchAccount($account_id);
}
if (empty($return_url) && !empty($_SERVER['HTTP_REFERER'])) {
    $return_url = $_SERVER['HTTP_REFERER'];
}
if (empty($return_url) || preg_match('/[\\r\\n]/', $_SERVER['HTTP_REFERER'])) {
    $return_url = MAX::constructURL(MAX_URL_ADMIN, 'index.php');
} else {
    $session['accountSwitch'] = 1;
    phpAds_SessionDataStore();
}
// Ensure that we never return to this account-switch.php page, in the
// event that the session timed out, and then the user changed account
// manually...
$aUrlComponents = parse_url($return_url);
$aPathInformation = pathinfo($aUrlComponents['path']);
示例#2
0
 function attemptToSwitchForAccess($entityTable, $entityId)
 {
     if (!($userId = OA_Permission::getUserId())) {
         return false;
     }
     $doEntity = OA_Dal::staticGetDO($entityTable, $entityId);
     if ($doEntity) {
         $aAccountIds = $doEntity->getOwningAccountIds();
         foreach ($aAccountIds as $accountId) {
             if (OA_Permission::hasAccess($accountId)) {
                 OA_Permission::switchAccount($accountId, $hasAccess = true);
                 return true;
             }
         }
         if (OA_Permission::isUserLinkedToAdmin()) {
             $accountId = $doEntity->getRootAccountId();
             OA_Permission::switchAccount($accountId, $hasAccess = true);
             return true;
         }
     }
     return false;
 }