Website:Users

From MatureAsskickers Wiki

Jump to: navigation, search

« Home

Contents

Users Table

The users table stores all of the user data. This data is used for Session permissions, HTTP authentication, FTP authentication, Sendmail aliases, and forum (board) integration.

Data Structure

Fields

Descriptions

userid

  • (integer, unique)
  • A unique identification number for the user. No other user will have the same number and it is used to refer to the user from other table's. This value is assigned when the user is created and is read-only.
  • Read Permission: users.read.userid (all)
  • Write Permission: users.write.userid (none)

datetime_insert

datetime_update

datetime_expire

username

useralias

  • (string, 2-80 characters, alpha-numeric [a-z0-9])
  • This is a unique name for each user. No other user, recruit or group can use the same name. It is an optional field when adding a new user and can be made empty when editing a user. This value is used for Sendmail aliases.
  • Read Permission: users.read.useralias (defined)
  • Write Permission: users.write.useralias (defined)
  • See Sendmail Aliases

password

email

ftpchroot

httproot

  • (string, 0-255 characters)
  • This is the server's path to the users HTTP home directory. It is an optional field when adding a new user and can be made empty when editing a user. The path must reside within the jail directory defined in the configuration file. This value is used for HTTP access.
  • Read Permission: users.read.httproot (defined)
  • Write Permission: users.write.httproot (defined)

forum_userid

  • (integer, unique)
  • This is the user's forum account's unique id. No two users can share the same number. It is an optional field when adding a new user and can be made empty when editing a user. Setting this field will allow the user to login to the website using either the username/password combination described above, or the username/password combination from the forum.
  • Read Permission: users.read.forum_userid (defined, self)
  • Write Permission: users.write.forum_userid (defined, self)

userpermissions

groups

data

  • (array)
  • This is special array of custom unreserved key value pairs. It is an optional field and any users.data.* value can be made empty when editing a user.
  • Read Permission: users.read.data (all)
  • Write Permission: users.write.data (defined, self)
  • See Custom Data

Reading Data

See XML Data

XML

Sample XML output

/xml/users.xml

 <?xml version = "1.0" encoding="UTF-8" standalone="yes"?>
 <users>
   <user id="99">
     <userid>99</userid>
     <datetime_insert>2006-10-10 07:55:29</datetime_insert>
     <datetime_update>2007-02-19 19:02:14</datetime_update>
     <datetime_expire>2008-08-05 12:00:00</datetime_expire>
     <username>Player</username>
     <useralias>player</useralias>
     <password>68eacb97d86f0c4621fa2b0e17cabd8c</password>
     <email>user@domain.com</email>
     <ftpchroot>/home/player/</ftpchroot>
     <httproot>/home/player/html</httproot>
     <forum_userid>7</forum_userid>
     <userpermissions>
       <csv><![CDATA[ ftp.read.user,ftp.write.user ]]></csv>
       <ftp.read.user>1</ftp.read.user>
       <ftp.write.user>1</ftp.write.user>
     </userpermissions>
     <groups>
       <group id="1">
         <groupname>TWL</groupname>
       </group>
       <group id="2">
         <groupname>BFCL</groupname>
       </group>
       <group id="3">
         <groupname>OGL</groupname>
       </group>
     </groups>
     <data>
       <key>value</key>
       <...>...</...>
     </data>
   </user>
   <user id="...">
     ...
   </user>
 </users>

The Request

The following url keys can be used in the HTTP GET request to filter and/or sort the XML.

  • userid (default all) - Filter by a single userid or CSV of multiple userid's.
/xml/users.xml?userid=1,2,3
  • groupids (default all) - Filter by a single groupid or CSV of multiple groupid's.
/xml/users.xml?groupids=1,2,3
  • expired (default 0) - Filter by 0 for non-expired, 1 for expired.
/xml/users.xml?expired=1
  • username (default all) - Filter by a single username.
/xml/recruits.xml?username=recruit

Writing Data

HTTP POST

See HTTP POST Data

Adding a user (_user_add)

A simple example of adding a new user.

 <form action="/xml/httppost.xml" method="post">
 <input type="hidden" name="_action" value="_user_add">
   username: <input type="text" name="username">
   password: <input type="password" name="password">
   <input type="submit" value="add">
 </form>

Editing a user (_user_edit)

A simple example of adding a user.

 <form action="/xml/httppost.xml" method="post">
 <input type="hidden" name="_action" value="_user_edit">
   <input type="hidden" name="userid" value="99">
   username: <input type="text" name="username" value="Player">
   password: <input type="password" name="password" value="">
   <input type="submit" value="edit">
 </form>

Deleting a user (_user_delete)

A simple example of deleting a user.

 <form action="/xml/httppost.xml" method="post">
 <input type="hidden" name="_action" value="_user_delete">
   <input type="hidden" name="userid" value="99">
   <input type="submit" value="delete">
 </form>

Editing a user's groups (_user_edit_groups)

A simple example of editing a user's groups using CSV (comma separated values) of groupid's.

 <form action="/xml/httppost.xml" method="post">
 <input type="hidden" name="_action" value="_user_edit_groups">
   <input type="hidden" name="userid" value="99">
   <input type="text" name="groups" value="1,2,3">
   <input type="submit" value="edit user groups">
 </form>

A simple example of editing a user's groups using a select array of groupid's.

 <form action="/xml/httppost.xml" method="post">
 <input type="hidden" name="_action" value="_user_edit_groups">
   <input type="hidden" name="userid" value="99">
   <select name="groups[]" multiple>
     <option value="1" selected>TWL</option>
     <option value="2" selected>BFCL</option>
     <option value="3" selected>OGL</option>
   </select>
   <input type="submit" value="edit user groups">
 </form>

Adding a user with groups (_user_add, _user_edit_groups)

A more complex example of adding a new user and simultaneously assigning the user to an array of groups using multiple actions. The user submitting the form will need write permissions for each field or the relative value will be ignored.

 <form action="/xml/httppost.xml" method="post">
 <input type="hidden" name="_action[]" value="_user_add">
 <input type="hidden" name="_action[]" value="_user_edit_groups">
   username: <input type="text" name="username">
   password: <input type="password" name="password">
   <select name="groups[]" multiple>
     <option value="1" selected>TWL</option>
     <option value="2">BFCL</option>
     <option value="3">OGL</option>
   </select>
   datetime_expire: <input type="text" name="datetime_expire">
   useralias: <input type="text" name="useralias">
   email: <input type="text" name="email">
   ftpchroot: <input type="text" name="ftpchroot">
   httproot: <input type="text" name="httproot">
   forum_userid: <input type="text" name="forum_userid">
   userpermissions: <textarea name="userpermissions"></textarea>
   <input type="submit" value="add user">
 </form>
Personal tools