2 // Admin-only script to assign administrative rights to users
4 require_once('../config.php');
6 define("MAX_USERS_PER_PAGE", 50);
8 if (! $site = get_site()) {
9 redirect("$CFG->wwwroot/$CFG->admin/index.php");
15 error("You must be an administrator to use this page.");
18 if (!confirm_sesskey()) {
19 error(get_string('confirmsesskeybad', 'error'));
22 $primaryadmin = get_admin();
24 /// If you want any administrator to have the ability to assign admin
25 /// rights, then comment out the following if statement
26 if ($primaryadmin->id
!= $USER->id
) {
27 error("You must be the primary administrator to use this page.");
30 /// assign all of the configurable language strings
31 $stringstoload = array (
42 foreach ($stringstoload as $stringtoload){
43 $strstringtoload = "str" . $stringtoload;
44 $
$strstringtoload = get_string($stringtoload);
47 print_header("$site->shortname: $strassignadmins",
49 "<a href=\"index.php\">$stradministration</a> -> <a href=\"users.php\">$strusers</a> -> $strassignadmins", "adminform.searchtext");
52 if (!$frm = data_submitted()) {
53 print_simple_box("<center>".get_string("adminhelpassignadmins")."</center>", "center", "50%");
55 /// A form was submitted so process the input
58 if (!empty($frm->add
) and !empty($frm->addselect
)) {
59 foreach ($frm->addselect
as $addadmin) {
60 if (! add_admin($addadmin)) {
61 error("Could not add admin with user id $addadmin!");
64 } else if (!empty($frm->remove
) and !empty($frm->removeselect
)) {
65 $admins = get_admins();
66 if (count($admins) > count($frm->removeselect
)) {
67 foreach ($frm->removeselect
as $removeadmin) {
68 if (! remove_admin($removeadmin)) {
69 error("Could not remove admin with user id $removeadmin!");
73 } else if (!empty($frm->showall
)) {
74 unset($frm->searchtext
);
75 $frm->previoussearch
= 0;
79 /// Is there a current search?
80 $previoussearch = (!empty($frm->search
) or ($frm->previoussearch
== 1)) ;
82 /// Get all existing admins
83 $admins = get_admins();
86 $adminarray = array();
87 foreach ($admins as $admin) {
88 $adminarray[] = $admin->id
;
90 $adminlist = implode(',', $adminarray);
95 /// Get search results excluding any current admins
96 if (!empty($frm->searchtext
) and $previoussearch) {
97 $searchusers = get_users(true, $frm->searchtext
, true, $adminlist, 'firstname ASC, lastname ASC',
98 '', '', 0, 99999, 'id, firstname, lastname, email');
99 $usercount = get_users(false, '', true, $adminlist);
102 /// If no search results then get potential users excluding current admins
103 if (empty($searchusers)) {
105 $usercount = get_users(false, '', true, $adminlist, 'firstname ASC, lastname ASC', '', '',
106 0, 99999, 'id, firstname, lastname, email');
110 if ($usercount <= MAX_USERS_PER_PAGE
) {
111 if (!$users = get_users(true, '', true, $adminlist, 'firstname ASC, lastname ASC', '', '',
112 0, 99999, 'id, firstname, lastname, email') ) {
118 $searchtext = (isset($frm->searchtext
)) ?
$frm->searchtext
: "";
119 $previoussearch = ($previoussearch) ?
'1' : '0';
121 include('./admin.html');