delmmlist.php3 2.42 KB
Newer Older
1 2 3
<?php
#
# EMULAB-COPYRIGHT
4
# Copyright (c) 2005-2012 University of Utah and the Flux Group.
5 6 7 8 9 10 11 12 13 14 15
# All rights reserved.
#
include("defs.php3");

#
# No Testbed Header; we zap back.
#

#
# Only known and logged in users.
#
16 17 18
$this_user = CheckLoginOrDie();
$uid       = $this_user->uid();
$isadmin   = ISADMIN();
19 20

#
21
# Verify page arguments.
22
#
23 24 25 26
$reqargs = RequiredPageArguments("listname",        PAGEARG_STRING);
$optargs = OptionalPageArguments("canceled",        PAGEARG_BOOLEAN,
				 "confirmed",       PAGEARG_BOOLEAN);

27
if (! TBvalid_mailman_listname($listname)) {
28
    $listname = CleanString($listname);
29 30 31 32 33 34
    PAGEARGERROR("Invalid characters in $listname!");
}

#
# Grab the DB state.
#
35
$query_result = DBQueryFatal("select owner_idx from mailman_listnames ".
36 37 38 39 40 41
			     "where listname='$listname'");

if (!mysql_num_rows($query_result)) {
    USERERROR("No such list $listname!", 1);
}
$row = mysql_fetch_array($query_result);
42
$owner_idx = $row['owner_idx'];
43 44 45 46

#
# Verify permission.
#
47
if ($this_user->uid_idx() != $owner_idx && !$isadmin) {
48 49 50 51 52 53 54 55 56
    USERERROR("You do not have permission to delete list $listname!", 1);
}

#
# We run this twice. The first time we are checking for a confirmation
# by putting up a form. The next time through the confirmation will be
# set. Or, the user can hit the cancel button, in which case we should
# probably redirect the browser back up a level.
#
57
if (isset($canceled) && $canceled) {
58 59 60 61 62 63 64 65 66 67
    PAGEHEADER("Delete a Mailman List");
    
    echo "<center><h2>
          List removal canceled!
          </h2></center>\n";
    
    PAGEFOOTER();
    return;
}

68
if (!isset($confirmed)) {
69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
    PAGEHEADER("Delete a Mailman List");
    
    echo "<center><h2>
          Are you <b>REALLY</b> sure you want to remove $listname
          </h2>\n";
    
    echo "<form action='delmmlist.php3?listname=$listname' method=post>";
    echo "<b><input type=submit name=confirmed value=Confirm></b>\n";
    echo "<b><input type=submit name=canceled value=Cancel></b>\n";
    echo "</form>\n";
    echo "</center>\n";

    PAGEFOOTER();
    return;
}

85
PAGEHEADER("Delete a Mailman List");
86
STARTBUSY("Deleting list $listname");
87
SUEXEC($uid, $TBADMINGROUP, "webdelmmlist -u $listname", SUEXEC_ACTION_DIE);
88
STOPBUSY();
89 90 91 92 93 94

#
# Worked, so delete the record from the DB.
#
DBQueryFatal("delete from mailman_listnames ".
	     "where listname='$listname'");
95 96 97 98
#
# Back to the lists list.
# 
PAGEREPLACE("showmmlists.php3");
99 100

#
101
# Standard Testbed Footer
102
# 
103
PAGEFOOTER();
104
?>