"account_help", "cron" => "account_cron", "admin" => "account_admin"); function account_help() { ?>

The account-module is responsible for maintaining the user database. It automatically handles tasks like registration, authentication, access rights, password retrieval, user settings and much more.

The required administration can be accomplished through the "account" interface of the administration section. From here administrators can get a quick overview of all registered users and view/edit specific accounts using the links provided. Some useful operations include blocking specific accounts (e.g. a troublesome user) and giving/taking administration permissions. Note that you should only give these permissions to people you trust!

Check the documentation page for detailed information about user management.

"id", "fake e-mail address" => "fake_email", "hostname" => "last_host DESC", "last access date" => "last_access DESC", "real e-mail address" => "real_email", "real name" => "name", "permissions" => "permissions", "status" => "status", "theme" => "theme", "timezone" => "timezone DESC", "username" => "userid"); $show = array("ID" => "id", "username" => "userid", "$order" => "$sort[$order]", "homepage" => "url"); $stat = array(0 => "blocked", 1 => "not confirmed", 2 => "open"); $perm = array(0 => "regular user", 1 => "administrator"); // Perform query: $result = db_query("SELECT u.id, u.userid, u.". strtok($sort[$order], " ") .", u.url FROM users u ORDER BY $sort[$order]"); // Generate output: $output .= "\n"; $output .= " \n"; $output .= " \n"; $output .= " \n"; $output .= " \n"; foreach ($show as $key=>$value) { $output .= " \n"; } $output .= " \n"; $output .= " \n"; while ($account = db_fetch_array($result)) { $output .= " \n"; foreach ($show as $key=>$value) { switch($value = strtok($value, " ")) { case "real_email": $output .= " \n"; break; case "last_access": $output .= " \n"; break; case "status": $output .= " \n"; break; case "permissions": $output .= " \n"; break; case "timezone": $output .= " \n"; break; case "url": $output .= " \n"; break; case "userid": $output .= " \n"; break; default: $output .= " \n"; } } $output .= " \n"; $output .= " \n"; } $output .= "
\n"; $output .= "
\n"; $output .= " \n"; $output .= " \n"; $output .= "
\n"; $output .= "
$keyoperations
". format_email($account[$value]) ."". format_interval(time() - $account[$value]) ." ago". $stat[$account[$value]] ."". $perm[$account[$value]] ."". format_data($account[$value] / 3600) ."". format_url($account[$value]) ."". format_username($account[$value], 1) ."". format_data($account[$value]) ."viewedit
\n"; print $output; } function account_stories($id) { $result = db_query("SELECT * FROM stories WHERE author = $id ORDER BY timestamp DESC"); while ($story = db_fetch_object($result)) { $output .= "
  • id\">". check_output($story->subject) ."
  • \n"; } return $output; } function account_comments($id) { $result = db_query("SELECT * FROM comments WHERE link = 'story' AND author = $id ORDER BY timestamp DESC"); while ($comment = db_fetch_object($result)) { $output .= "
  • sid&cid=$comment->cid&pid=$comment->pid#$comment->cid\">". check_output($comment->subject) ."
  • \n"; } return $output; } function account_save($name, $edit) { foreach ($edit as $key=>$value) { $query .= "$key = '". addslashes($value) ."', "; } db_query("UPDATE users SET $query last_access = '". time() ."' WHERE userid = '$name'"); watchdog("message", "account: modified user '$name'"); } function account_edit($name) { $status = array(0 => "blocked", 1 => "not confirmed", 2 => "open"); $permissions = array(0 => "regular user", 1 => "administrator"); $result = db_query("SELECT * FROM users WHERE userid = '$name'"); if ($account = db_fetch_object($result)) { foreach ($status as $key=>$value) { $stat .= " \n"; } $stat = "\n"; foreach ($permissions as $key=>$value) { $perm .= " \n"; } $perm = "\n"; $output .= "
    \n"; $output .= "\n"; $output .= " \n"; $output .= " \n"; $output .= " \n"; $output .= " \n"; $output .= " \n"; $output .= " \n"; $output .= " \n"; $output .= " \n"; $output .= " \n"; $output .= " \n"; $output .= " \n"; $output .= " \n"; $output .= " \n"; $output .= " \n"; $output .= " \n"; $output .= "
    ID:$account->id
    Status:$stat
    Username:$account->userid
    Real name:". format_data($account->name) ."
    Real e-mail address:". format_email($account->real_email) ."
    Fake e-mail address:fake_email\">
    URL of homepage:url\">
    Permissions:$perm
    Last access:". format_date($account->last_access) ." from $account->last_host
    Bio information:
    Signature:
    Theme:". format_data($account->theme) ."
    Timezone:". format_data($account->timezone / 3600) ."
    Submitted stories:". format_data(account_stories($account->id)) ."
    Submitted comments:". format_data(account_comments($account->id)) ."
    \n"; $output .= "userid\">\n"; $output .= "\n"; $output .= "
    \n"; print "$output"; } } function account_view($name) { $status = array(0 => "blocked", 1 => "not confirmed", 2 => "open"); $permissions = array(0 => "regular user", 1 => "administrator"); $result = db_query("SELECT * FROM users WHERE userid = '$name'"); if ($account = db_fetch_object($result)) { $output .= "\n"; $output .= " \n"; $output .= " \n"; $output .= " \n"; $output .= " \n"; $output .= " \n"; $output .= " \n"; $output .= " \n"; $output .= " \n"; $output .= " \n"; $output .= " \n"; $output .= " \n"; $output .= " \n"; $output .= " \n"; $output .= " \n"; $output .= " \n"; $output .= "
    ID:$account->id
    Status:". $status[$account->status] ."
    Username:$account->userid
    Real name:". format_data($account->name) ."
    Real e-mail address:". format_email($account->real_email) ."
    Fake e-mail address:". format_data($account->fake_email) ."
    URL of homepage:". format_url($account->url) ."
    Permissions:". $permissions[$account->permissions] ."
    Last access:". format_date($account->last_access) ." from $account->last_host
    Bio information:". format_data($account->bio) ."
    Signature:". format_data($account->signature) ."
    Theme:". format_data($account->theme) ."
    Timezone:". format_data($account->timezone / 3600) ."
    Submitted stories:". format_data(account_stories($account->id)) ."
    Submitted comments:". format_data(account_comments($account->id)) ."
    \n"; print "$output"; } } function account_admin() { global $op, $edit, $order, $name; print "overview | help
    \n"; switch ($op) { case "edit": account_edit($name); break; case "help": account_help(); break; case "view": account_view($name); break; case "Save account": account_save($name, $edit); account_view($name); break; case "Update": account_display($order); break; default: account_display(); } } ?>