<?PHP // $Id$
      // Admin only script to assign course creator rights to users

	require_once("../config.php");

    define("MAX_USERS_PER_PAGE", 30);

    optional_variable($search, "");
    optional_variable($add, "");
    optional_variable($remove, "");

    if (! $site = get_site()) {
        redirect("$CFG->wwwroot/$CFG->admin/index.php");
    }

    require_login();

    if (!isadmin()) {
        error("You must be an administrator to use this page.");
    }

    $primaryadmin = get_admin();

/// If you want any administrator to have the ability to assign admin
/// rights, then comment out the following if statement
    if ($primaryadmin->id != $USER->id) {
        error("You must be the primary administrator to use this page.");
    }

/// assign all of the configurable language strings
    $stringstoload = array (
        "assigncreators",
        "administration",
        "existingcreators",
        "noexistingcreators",
        "potentialcreators",
        "nopotentialcreators",
        "addcreator",
        "removecreator",
        "search",
        "searchagain",
        "toomanytoshow",
        );

    foreach ($stringstoload as $stringtoload){
        $strstringtoload = "str" . $stringtoload;
        $$strstringtoload = get_string($stringtoload);
    }

    if ($search) {
        $searchstring = $strsearchagain;
    } else {
        $searchstring = $strsearch;
    }

	print_header("$site->shortname: $strassigncreators", 
                 "$site->fullname", 
                 "<a href=\"index.php\">$stradministration</a> -> 
                  <a href=\"{$_SERVER['PHP_SELF']}\">$strassigncreators</a>", "");

/// Get all existing creators
    $creators = get_creators();

/// Add an creator if one is specified
    if ($add) {
        $user = @get_record("user", "id", $add) or
            error("That account (id = $add) doesn't exist");

        if ($creators) {
            foreach ($creators as $aa) {
                if ($aa->id == $user->id) {
                    error("That user is already a creator .");
                }            
            }
        }

        $creator->userid = $user->id;
        $creator->id = insert_record("user_coursecreators", $creator);
        $creators[] = $user;
    }

/// Remove an creator if one is specified.
    if ($remove) {
        $user = @get_record("user", "id", $remove) or 
            error("That account (id = $remove) doesn't exist");

        if ($creators) {
            foreach ($creators as $key => $aa) {
                if ($aa->id == $user->id) {
                        delete_records("user_coursecreators","userid",$user->id);
                        unset($creators[$key]);
                } 
            }
        }
    }


/// Print the lists of existing and potential creators
    echo "<table cellpadding=2 cellspacing=10 align=center>";
    echo "<tr><th width=50%>$strexistingcreators</th><th width=50%>$strpotentialcreators</th></tr>";
    echo "<tr><td width=50% nowrap valign=top>";

/// First, show existing creators

    if (! $creators) { 
        echo "<p align=center>$strnoexistingcreators</a>";

        $creatorlist = "";

    } else {
        $creatorarray = array();
        foreach ($creators as $creator) {
            $creatorarray[] = $creator->id;
            echo "<p align=right>$creator->firstname $creator->lastname,
            $creator->email &nbsp;&nbsp; ";
                echo "<a href=\"{$_SERVER['PHP_SELF']}?remove=$creator->id\"
                title=\"$strremovecreator\"><img src=\"../pix/t/right.gif\"
                border=0></a>";
            echo "</p>";
        }
        $creatorlist = implode(",",$creatorarray);
        unset($creatorarray);
    }

    echo "<td width=50% nowrap valign=top>";

/// Print list of potential creators

    $usercount = get_users(false, $search, true, $creatorlist);

    if ($usercount == 0) {
        echo "<p align=center>$strnopotentialcreators</p>";

    } else if ($usercount > MAX_USERS_PER_PAGE) {
        echo "<p align=center>$strtoomanytoshow</p>";

    } else {

        if ($search) {
            echo "<p align=center>($strsearchresults : $search)</p>";
        }

        if (!$users = get_users(true, $search, true, $creatorlist)) {
            error("Could not get users!");
        }

        foreach ($users as $user) {
            echo "<p align=left><a href=\"{$_SERVER['PHP_SELF']}?add=$user->id\"".
                   "title=\"$straddcreator\"><img src=\"../pix/t/left.gif\"".
                   "border=0></a>&nbsp;&nbsp;$user->firstname $user->lastname, $user->email";
        }
    }

    if ($search or $usercount > MAX_USERS_PER_PAGE) {
        echo "<form action={$_SERVER['PHP_SELF']} method=post>";
        echo "<input type=text name=search size=20>";
        echo "<input type=submit value=\"$searchstring\">";
        echo "</form>";
    }

    echo "</tr></table>";

    print_footer();

?>
