landing.php 2.56 KB
Newer Older
1 2
<?php
#
3
# Copyright (c) 2000-2015 University of Utah and the Flux Group.
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
# 
# {{{EMULAB-LICENSE
# 
# This file is part of the Emulab network testbed software.
# 
# This file is free software: you can redistribute it and/or modify it
# under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or (at
# your option) any later version.
# 
# This file is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Affero General Public
# License for more details.
# 
# You should have received a copy of the GNU Affero General Public License
# along with this file.  If not, see <http://www.gnu.org/licenses/>.
# 
# }}}
#
chdir("..");
include("defs.php3");
include_once("geni_defs.php");
chdir("apt");
include("quickvm_sup.php");
29
include_once("instance_defs.php");
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101

#
# Get current user but make sure coming in on SSL.
#
RedirectSecure();
$this_user = CheckLogin($check_status);
if ($ISCLOUD) {
    if (! ($CHECKLOGIN_STATUS & CHECKLOGIN_LOGGEDIN)) {
	header("Location: login.php");
	return;
    }
}

#
# Verify page arguments.
#
$optargs = OptionalPageArguments("asguest", PAGEARG_BOOLEAN,
				 "from",    PAGEARG_STRING);

#
# Redirect logged in user.
#
if ($this_user) {
    if (Instance::UserHasInstances($this_user)) {
	header("Location: $APTBASE/myexperiments.php");
    }
    else {
	header("Location: $APTBASE/instantiate.php");
    }
    return;
}

#
# APT users might be guests.
#
if ($ISAPT) {
    #
    # If user appears to have an account, go to login page.
    # Continue as guest on that page.
    #
    if (REMEMBERED_ID()) {
	if (isset($asguest) && $asguest) {
	    # User clicked on continue as guest. If we do not delete the
	    # cookie, then user will go through the same loop next time
            # they click the Home button, since that points here. So delete
	    # the UID cookie. Not sure I like this.
	    ClearRememberedID();
	}
	else {
	    header("Location: login.php?from=landing");
	    return;
	}
    }
}
#
# A guest user. Go directly to status page.
#
if (isset($_COOKIE['quickvm_user'])) {
    $geniuser = GeniUser::Lookup("sa", $_COOKIE['quickvm_user']);
    if ($geniuser) {
	#
        # Look for existing quickvm. Show that.
	#
	$instance = Instance::LookupByCreator($geniuser->uuid());
	if ($instance && $instance->status() != "terminating") {
	    header("Location: status.php?uuid=" . $instance->uuid());
	    return;
	}
    }
}
header("Location: $APTBASE/instantiate.php");
?>