add more docu and a _web user
authorkonrad <konrad@6e3c4bff-ac9f-4ac1-96c5-d2ea494d3e33>
Sun, 23 Jan 2011 11:45:35 +0000 (11:45 +0000)
committerkonrad <konrad@6e3c4bff-ac9f-4ac1-96c5-d2ea494d3e33>
Sun, 23 Jan 2011 11:45:35 +0000 (11:45 +0000)
git-svn-id: https://silmor.de/svn/softmagic/smoke/trunk@710 6e3c4bff-ac9f-4ac1-96c5-d2ea494d3e33

wob/db/user.wolf
wob/transact/basics.wolf
wob/transact/customer.wolf
wob/transact/event.wolf
wob/transact/order.wolf
wob/transact/template.wolf
wob/transact/user.wolf

index 6d69d9c..cc5da81 100644 (file)
                <!-- more detailed data that can be displayed to admins -->
                <Column name="description" type="text"/>
                <Column name="flags" type="string"/>
+               
+               <Preset>
+                       <V col="uname" val="_web"/>
+                       <V col="passwd" val="::noremotelogin::"/>
+                       <V col="description" val="special user for customer web site"/>
+                       <V col="flags" val="_web"/>
+               </Preset>
        </Table>
        
        <Table name="role" backup="yes">
@@ -51,6 +58,8 @@
        <Table name="userrole" backup="yes">
                <Column name="uname" type="string:64" notnull="yes" foreignkey="user:uname" index="yes" primarykey="yes"/>
                <Column name="role" type="string:64" notnull="yes" primarykey="yes" foreignkey="role:rolename"/>
+               
+               <Preset><V col="uname" val="_web"/><V col="role" val="_web"/></Preset>
        </Table>
        
        <Table name="userhost" backup="yes">
index e7b1fb0..c732dce 100644 (file)
        </Transaction>
 
        <Transaction name="GetValidFlags" updating="no">
+               <Doc>returns all flags that are defined in the database</Doc>
                <Call lang="php" method="WOFlag::getAllTrn($this);"/>
                <Output>
                        <Var name="flags" type="List:Flag"/>
                </Output>
        </Transaction>
        <Transaction name="SetFlag">
+               <Doc>changes/creates a flag; warning: if the flag is used this may change behavior</Doc>
                <Input>
                        <Var name="flag" type="Flag"/>
                </Input>
                <Call lang="php" method="WOFlag::setFlagTrn($this);"/>
        </Transaction>
        <Transaction name="DeleteFlag">
+               <Doc>deletes a flag; warning: if the flag is used this may change behavior</Doc>
                <Input>
                        <Var name="flag" type="astring"/>
                </Input>
index 00af319..e438fca 100644 (file)
@@ -8,6 +8,7 @@
   -->
 <Wolf>
        <Transaction name="GetAllContactTypes" updating="no">
+               <Doc>returns the list of all contact types (phone, mail, ...) with detailed data</Doc>
                <Input/>
                <Call lang="php" method="$this->settypes(WOContactType::fromTableArraycontacttype(WTcontacttype::selectFromDB()));"/>
                <Output>
@@ -15,6 +16,7 @@
                </Output>
        </Transaction>
        <Transaction name="CreateContactType">
+               <Doc>creates a new contact type (phone, mail, ...)</Doc>
                <Input>
                        <Var name="typename" type="string"/>
                        <Var name="uriprefix" type="astring"/>
@@ -26,6 +28,7 @@
        </Transaction>
        
        <Transaction name="GetCustomer" updating="no">
+               <Doc>returns detailed info about a customer (excluding password)</Doc>
                <Input>
                        <Var name="customerid" type="int"/>
                </Input>
@@ -36,6 +39,7 @@
        </Transaction>
        
        <Transaction name="GetAllCustomerNames" updating="no">
+               <Doc>returns basic information (name, title) about all existing customers</Doc>
                <Input/>
                <Call lang="php" method="$this->setcustomers(WOCustomerInfo::fromTableArraycustomer(WTcustomer::selectFromDB()));"/>
                <Output>
@@ -44,6 +48,7 @@
        </Transaction>
        
        <Transaction name="CreateCustomer">
+               <Doc>creates a new customer</Doc>
                <Input>
                        <Var name="customer" type="Customer"/>
                </Input>
@@ -54,6 +59,7 @@
        </Transaction>
        
        <Transaction name="ChangeCustomer">
+               <Doc>changes customer data</Doc>
                <Input>
                        <Var name="customer" type="Customer"/>
                </Input>
@@ -64,6 +70,7 @@
        </Transaction>
        
        <Transaction name="DeleteCustomer">
+               <Doc>deletes a customer - usually by merging info into another customer</Doc>
                <Input>
                        <Var name="customerid" type="int"/>
                        <Var name="mergewithid" type="int"/>
@@ -75,6 +82,7 @@
        </Transaction>
        
        <Transaction name="GetAddress" updating="no">
+               <Doc>returns data of one specific address without the remaining customer info</Doc>
                <Input>
                        <Var name="addressid" type="int64"/>
                </Input>
@@ -85,6 +93,7 @@
        </Transaction>
        
        <Transaction name="GetAllCountries" updating="no">
+               <Doc>returns a list of all existing countries in the database</Doc>
                <Input/>
                <Call lang="php" method="$this->setcountries(WOCountry::fromTableArraycountry(WTcountry::selectFromDB()));"/>
                <Output>
        </Transaction>
        
        <Transaction name="CreateCountry">
+               <Doc>creates a new country in the database</Doc>
                <Input>
                        <Var name="abbrev" type="astring"/>
                        <Var name="name" type="astring"/>
        </Transaction>
        
        <Transaction name="ResetCustomerPassword">
+               <Doc>sends a reset password mail to the customer - if the customer has a login</Doc>
                <Input>
                        <Var name="customerid" type="int"/>
                </Input>
index 99d2c72..1526471 100644 (file)
@@ -8,12 +8,14 @@
   -->
 <Wolf>
        <Transaction name="GetAllArtists" updating="no">
+               <Doc>returns a list of all existing artists</Doc>
                <Call lang="php" method="$this->setartists(WOArtist::fromTableArrayartist(WTartist::selectFromDB('','ORDER BY artistname')));"/>
                <Output>
                        <Var name="artists" type="List:Artist"/>
                </Output>
        </Transaction>
        <Transaction name="CreateArtist">
+               <Doc>creates a new artist</Doc>
                <Input>
                        <Var name="name" type="string"/>
                        <Var name="description" type="string"/>
@@ -26,6 +28,7 @@
        </Transaction>
 
        <Transaction name="GetAllPriceCategories" updating="no">
+               <Doc>returns a list of all existing price categories (not event specific)</Doc>
                <Call lang="php" method="$this->setpricecategories(WOPriceCategory::fromTableArraypricecategory(WTpricecategory::selectFromDB()));"/>
                <Output>
                        <Var name="pricecategories" type="List:PriceCategory"/>
@@ -33,6 +36,7 @@
        </Transaction>
        
        <Transaction name="CreatePriceCategory">
+               <Doc>creates a new price category (generic, not yet event specific)</Doc>
                <Input>
                        <Var name="pricecategory" type="PriceCategory">properties as requested by user</Var>
                </Input>
@@ -42,8 +46,9 @@
                </Output>
        </Transaction>
        <Transaction name="ChangePriceCategory">
+               <Doc>changes a price category globally</Doc>
                <Input>
-                       <Var name="pricecategory" type="PriceCategory">properties as requested by user</Var>
+                       <Var name="pricecategory" type="PriceCategory">properties of the category</Var>
                </Input>
                <Call lang="php" method="WOPriceCategory::changeCategory($this);"/>
                <Output>
@@ -52,6 +57,7 @@
        </Transaction>
        
        <Transaction name="GetEvent" updating="no">
+               <Doc>returns detailed event data</Doc>
                <Input>
                        <Var name="eventid" type="int"/>
                </Input>
@@ -62,6 +68,7 @@
        </Transaction>
        
        <Transaction name="GetAllEvents" updating="no">
+               <Doc>returns data about all existing events</Doc>
                <Input/>
                <Call lang="php" method="WOEvent::getAllEvents($this);"/>
                <Output>
@@ -70,6 +77,7 @@
        </Transaction>
        
        <Transaction name="GetEventList" updating="no">
+               <Doc>returns a list of specific events (eg. used by the order window to request exactly those needed by the tickets it shows)</Doc>
                <Input>
                        <Var name="eventids" type="List:int"/>
                </Input>
@@ -80,6 +88,7 @@
        </Transaction>
        
        <Transaction name="CreateEvent">
+               <Doc>create a new event</Doc>
                <Input>
                        <Var name="event" type="Event"/>
                </Input>
@@ -89,6 +98,7 @@
                </Output>
        </Transaction>
        <Transaction name="ChangeEvent">
+               <Doc>change event data (like date/time, artist, room, ...)</Doc>
                <Privilege name="CancelEvent">users with this privilege are allowed to set the iscancelled property and hence cancel or uncancel events</Privilege>
                <Input>
                        <Var name="event" type="Event"/>
        </Transaction>
        
        <Transaction name="CancelEvent">
+               <Doc>cancel an event</Doc>
                <Input>
                        <Var name="eventid" type="int"/>
                        <Var name="reason" type="string"/>
        </Transaction>
        
        <Transaction name="GetAllRooms" updating="no">
+               <Doc>returns a list of all existing rooms</Doc>
                <Input/>
                <Call lang="php" method="$this->setrooms(WORoom::fromTableArrayroom(WTroom::selectFromDB('')));"/>
                <Output>
        </Transaction>
        
        <Transaction name="CreateRoom">
+               <Doc>creates a new room</Doc>
                <Input>
                        <Var name="roomid" type="string"/>
                        <Var name="capacity" type="int"/>
index 8387516..892da40 100644 (file)
@@ -8,6 +8,7 @@
   -->
 <Wolf>
        <Transaction name="GetTicket" updating="no">
+               <Doc>returns a specific ticket with detailed info</Doc>
                <Input>
                        <Var name="ticketid" type="astring"/>
                </Input>
@@ -18,6 +19,7 @@
        </Transaction>
        
        <Transaction name="GetVoucher" updating="no">
+               <Doc>returns a specific voucher with detailed info</Doc>
                <Input>
                        <Var name="voucherid" type="astring"/>
                </Input>
@@ -28,6 +30,7 @@
        </Transaction>
        
        <Transaction name="GetVoucherAudit" updating="no">
+               <Doc>returns all audit data for a voucher (when it was bought, when it was used and for what)</Doc>
                <Input>
                        <Var name="voucherid" type="astring"/>
                </Input>
@@ -38,6 +41,7 @@
        </Transaction>
        
        <Transaction name="GetOrderAudit" updating="no">
+               <Doc>returns all audit data for an order (when it was created, who handled it, when it was paid and how, ...</Doc>
                <Input>
                        <Var name="orderid" type="int"/>
                </Input>
@@ -50,6 +54,7 @@
        </Transaction>
        
        <Transaction name="GetOrder" updating="no">
+               <Doc>get details for an order by its ID</Doc>
                <Input>
                        <Var name="orderid" type="int"/>
                </Input>
@@ -60,6 +65,7 @@
        </Transaction>
        
        <Transaction name="GetOrderList" updating="no">
+               <Doc>get a complete list of orders starting at the time "oldest"</Doc>
                <Input>
                        <Var name="oldest" type="int64">unix timestamp for the oldest order to be returned (compared with ordertime)</Var>
                </Input>
@@ -71,6 +77,7 @@
        </Transaction>
        
        <Transaction name="GetOrdersByEvents" updating="no">
+               <Doc>returns all orders that match a specific list of events</Doc>
                <Input>
                        <Var name="events" type="List:int32">list of event ids to select</Var>
                        <Var name="oldest" type="int64">unix timestamp for the oldest order to be returned (compared with ordertime)</Var>
@@ -83,6 +90,7 @@
        </Transaction>
        
        <Transaction name="GetOrdersByCustomer" updating="no">
+               <Doc>returns all orders that were purchased by a specific customer</Doc>
                <Input>
                        <Var name="customerid" type="int32">customer to select</Var>
                        <Var name="oldest" type="int64">unix timestamp for the oldest order to be returned (compared with ordertime)</Var>
        </Transaction>
        
        <Transaction name="GetOrderByBarcode" updating="no">
+               <Doc>retrieves the order in which a specific ticket or voucher was bought</Doc>
                <Input>
                        <Var name="barcode" type="string"/>
                </Input>
                <Privilege name="AfterTheFactSale">users with this privilege can sell tickets for past events - be careful to give this privilege only to very few special users, it is an invitation to mistakes!</Privilege>
                <Privilege name="CanOrder">users with this privilege may use this transaction to create orders</Privilege>
                <Privilege name="CanSell">users with this privilege may use this transaction to create sales</Privilege>
+               <Privilege name="CanOrderTicket">users with this privilege may put tickets into orders</Privilege>
+               <Privilege name="CanOrderVoucher">users with this privilege may put vouchers into orders</Privilege>
+               <Privilege name="CanOrderItem">users with this privilege may put shop items (merchandise) into orders</Privilege>
                <Input>
                        <Var name="cart" type="CartOrder">The cart contents</Var>
                        <Var name="issale" type="bool">true if this is a sale, false if this is an order</Var>
                </Output>
        </Transaction>
        <Transaction name="OrderPay">
+               <Doc>pay for an order with money/credit card/...; see UseVoucher for using a voucher to pay</Doc>
                <Input>
                        <Var name="orderid" type="int">The order to be paid</Var>
                        <Var name="amount" type="int">amount offered, it must be positive</Var>
        </Transaction>
        
        <Transaction name="OrderRefund">
+               <Doc>returns money if too much has been paid (e.g. after an event has been cancelled)</Doc>
                <Input>
                        <Var name="orderid" type="int"/>
                        <Var name="amount" type="int"/>
        </Transaction>
        
        <Transaction name="ReturnTicketVoucher">
-               <Privilege name="ReturnPastTicket">Users with this privilege can return tickets for events in the past (if they have not been used yet). All others can only return tickets in the future.</Privilege>
+               <Doc>Privileged users: return a ticket or voucher and deduct its price from the order it was in. This may fail if the ticket or voucher has already been used.</Doc>
+               <Privilege name="ReturnPastTicket">Users with this privilege can return tickets for events in the past (if they have not been used yet). All others can only return tickets for events in the future.</Privilege>
                <Input>
                        <Var name="barcode" type="astring">barcode of the ticket or voucher</Var>
                </Input>
        </Transaction>
        
        <Transaction name="ChangeTicketPrice">
+               <Doc>Privileged users: change the price of a ticket. Usually you would change its category.</Doc>
                <Privilege name="ChangeUsedTicket">users with this privilege can change the price of used tickets - usually a ticket has to be changed before it is used</Privilege>
                <Privilege name="ChangePastTicket">users with this privilege can change the price for tickets that are for past events</Privilege>
                <Input>
                </Output>
        </Transaction>
        <Transaction name="ChangeTicketPriceCategory">
+               <Doc>Mildly privileged users: change the category of a ticket (eg. from "normal price" to "reduced price"). The new category must exist for the event concerned.</Doc>
                <Privilege name="ChangeUsedTicket">users with this privilege can change the price of used tickets - usually a ticket has to be changed before it is used</Privilege>
                <Privilege name="ChangePastTicket">users with this privilege can change the price for tickets that are for past events</Privilege>
                <Input>
        </Transaction>
        
        <Transaction name="GetAllShipping" updating="no">
+               <Doc>Returns a list of all shipping methods that the user has access to. This transaction is sensitive to flags, like "anyshipping".</Doc>
                <Input/>
                <Call lang="php" method="$this->setshipping(WOShipping::fromTableArrayshipping(WTshipping::selectFromDB()));"/>
                <Output>
                </Output>
        </Transaction>
        <Transaction name="ChangeShipping">
+               <Doc>Changes a shipping method, eg. its default price. Changing the price has no effect on existing orders, while changing the name is reflected in orders - this is due to the order referencing the shipping method, but copying its price so that it can be changed by privileged users.</Doc>
                <Input>
                        <Var name="shipping" type="Shipping"/>
                </Input>
                </Output>
        </Transaction>
        <Transaction name="CreateShipping">
+               <Doc>Creates a new shipping method.</Doc>
                <Input>
                        <Var name="shipping" type="Shipping"/>
                </Input>
                </Output>
        </Transaction>
        <Transaction name="DeleteShipping">
+               <Doc>Attempts to delete a shipping method. This will fail if the method was used in existing orders - use flags to hide such methods from newer orders.</Doc>
                <Input>
                        <Var name="shipid" type="int"/>
                </Input>
        </Transaction>
        
        <Transaction name="GetValidVoucherPrices" updating="no">
+               <Doc>Returns a list of voucher values/prices that the system will accept for normal users (which do not have special privileges).</Doc>
                <Call lang="php" method="$this->setprices(WOVoucher::validVoucherPrices());"/>
                <Output>
                        <Var name="prices" type="List:int"/>
        </Transaction>
        
        <Transaction name="UseTicket">
+               <Doc>Attempts to mark a ticket as used. Fails if the ticket has already been used or is not paid for.</Doc>
                <Input>
                        <Var name="ticketid" type="astring">The ticket to be used</Var>
                        <Var name="eventid" type="int">The event to use it on</Var>
        <Transaction name="GetEntranceEvents" updating="no">
                <Doc>This is a convenience transaction: it returns all events that are likely to be chosen at an entrance barcode scanner; this includes all events starting at max. within the next 24 hours that and that have not ended yet</Doc>
                <Input>
-                       <Var name="maxbeforestart" type="int"/>
-                       <Var name="maxafterend" type="int"/>
+                       <Var name="maxbeforestart" type="int">the clients definition of "soon": time in seconds to look into the future for events that will start "soon"; recommended is 24 hours</Var>
+                       <Var name="maxafterend" type="int">the clients definition of "yet": time in seconds to look into the past for events that have not ended "yet"; recommended is 1 or 2 hours</Var>
                </Input>
                <Call lang="php" method="WOEvent::getEntranceEvents($this);"/>
                <Output>
index 519bf9d..5bdb780 100644 (file)
@@ -8,6 +8,7 @@
   -->
 <Wolf>
        <Transaction name="GetTemplateList" updating="no">
+               <Doc>Returns the list of templates that this user can access. This transaction is sensitive to flags.</Doc>
                <Call lang="php" method="WOTemplate::getList($this);"/>
                <Output>
                        <Var name="templates" type="List:TemplateInfo"/>
@@ -15,6 +16,7 @@
        </Transaction>
        
        <Transaction name="GetTemplate" updating="no">
+               <Doc>Returns a specific template</Doc>
                <Input>
                        <Var name="filename" type="astring"/>
                </Input>
@@ -25,6 +27,7 @@
        </Transaction>
        
        <Transaction name="SetTemplate">
+               <Doc>Overwrites or creates a specific template.</Doc>
                <Input>
                        <Var name="filename" type="astring"/>
                        <Var name="templatedata" type="blob"/>
@@ -36,6 +39,7 @@
                </Output>
        </Transaction>
        <Transaction name="SetTemplateDescription">
+               <Doc>Changes the description of a template.</Doc>
                <Input>
                        <Var name="filename" type="astring"/>
                        <Var name="description" type="string"/>
@@ -43,6 +47,7 @@
                <Call lang="php" method="WOTemplate::setTemplateDescription($this);"/>
        </Transaction>
        <Transaction name="DeleteTemplate">
+               <Doc>Deletes a template from the server.</Doc>
                <Input>
                        <Var name="filename" type="astring"/>
                </Input>
index 4895e16..5af96db 100644 (file)
@@ -8,6 +8,7 @@
   -->
 <Wolf>
        <Transaction name="ServerInfo" mode="open" updating="no">
+               <Doc>returns basic info about the server - this is part of the protocol handshake</Doc>
                <Input/>
                <Call lang="php" method="Version::serverInfoXml($this);"/>
                <Output>
        </Transaction>
        
        <Transaction name="Login" mode="open">
+               <Doc>Attempt to log into the server. Both the user and the host the user is using are verified. The login will fail if the authentication of either of them fails or the user does not have the righ to login from this host.</Doc>
                <Input>
-                       <Var name="username" type="string"/>
-                       <Var name="password" type="string"/>
-                       <Var name="hostname" type="string"/>
-                       <Var name="hostkey" type="string"/>
+                       <Var name="username" type="string">name of the user</Var>
+                       <Var name="password" type="string">password of the user</Var>
+                       <Var name="hostname" type="string">name of the host</Var>
+                       <Var name="hostkey" type="string">the authentication key of the host</Var>
                </Input>
                <Call lang="php" method="Session::login($this);"/>
                <Output>
        </Transaction>
        
        <Transaction name="Logout" mode="auth">
+               <Doc>Deletes the current session.</Doc>
                <Input/>
                <Call lang="php" method="Session::instance()->deleteSession();"/>
                <Output/>
        </Transaction>
        
        <Transaction name="GetMyRoles" mode="auth" updating="no">
+               <Doc>Returns the roles of the user of the current session.</Doc>
                <Input/>
                <Call lang="php" method="$this->setrole(array_unique(Session::instance()->getRoles()));"/>
                <Output>
@@ -45,6 +49,7 @@
                </Output>
        </Transaction>
        <Transaction name="GetMyRights" mode="auth" updating="no">
+               <Doc>Returns the rights and flags of the user of the current session.</Doc>
                <Input/>
                <Call lang="php" method="$this->setright(array_unique(Session::instance()->getRights()));$this->setflag(array_unique(Session::instance()->getFlags()));"/>
                <Output>
        </Transaction>
        
        <Transaction name="ChangeMyPassword">
+               <Doc>Changes the password of the user of the current session. This may fail if the old password does not match or the new password is too weak.</Doc>
                <Input>
-                       <Var name="oldpassword" type="string"/>
-                       <Var name="newpassword" type="string"/>
+                       <Var name="oldpassword" type="string">this must match the old password of the user to authenticate the change</Var>
+                       <Var name="newpassword" type="string">this is the new password</Var>
                </Input>
                <Call lang="php" method="Session::instance()->setMyPasswd($this);"/>
                <Output/>
        </Transaction>
 
        <Transaction name="GetAllUsers" updating="no">
+               <Doc>Returns a list of all existing users.</Doc>
                <Input/>
                <Call lang="php" method="$this->setusers(WOUser::fromTableArrayuser(WTuser::selectFromDB()));"/>
                <Output>
@@ -70,6 +77,7 @@
                </Output>
        </Transaction>
        <Transaction name="GetUser" updating="no">
+               <Doc>Returns one specific user by name</Doc>
                <Input>
                        <Var name="uname" type="astring"/>
                </Input>
@@ -80,6 +88,7 @@
        </Transaction>
        
        <Transaction name="CreateUser">
+               <Doc>Attempts to create a new user. This may fail if the user already exists.</Doc>
                <Input>
                        <Var name="username" type="astring"/>
                        <Var name="password" type="string"/>
        </Transaction>
        
        <Transaction name="ChangePassword">
+               <Doc>Admins: change/reset the password of a specific user. To be used when a user forgot his/her password.</Doc>
                <Input>
                        <Var name="username" type="astring"/>
                        <Var name="password" type="string"/>
        </Transaction>
        
        <Transaction name="DeleteUser">
+               <Doc>Attempt to delete a user. Usually you will need to merge it with another user to move all orders created by that user over to the merge target. If you do not merge and there are orders by that user, the delete operation will fail.</Doc>
                <Input>
                        <Var name="username" type="astring"/>
                        <Var name="mergewithuser" type="astring"/>
        </Transaction>
        
        <Transaction name="SetUserDescription">
+               <Doc>Changes the description of a user.</Doc>
                <Input>
                        <Var name="username" type="astring"/>
                        <Var name="description" type="string"/>
        </Transaction>
        
        <Transaction name="GetUserRoles" updating="no">
+               <Doc>Returns all roles assigned to a specific user.</Doc>
                <Input>
                        <Var name="username" type="astring"/>
                </Input>
                </Output>
        </Transaction>
        <Transaction name="SetUserRoles">
+               <Doc>Changes the roles assigned to a specific user.</Doc>
                <Input>
                        <Var name="username" type="astring"/>
                        <Var name="roles" type="List:string"/>
        </Transaction>
        
        <Transaction name="GetUserHosts" updating="no">
+               <Doc>Returns all hosts a user may log in from.</Doc>
                <Input>
                        <Var name="username" type="astring"/>
                </Input>
                </Output>
        </Transaction>
        <Transaction name="SetUserHosts">
+               <Doc>Changes the hosts a user may log in from</Doc>
                <Input>
                        <Var name="username" type="astring"/>
                        <Var name="hosts" type="List:string"/>
                <Call lang="php" method="MachineUser::setUserHosts($this);"/>
        </Transaction>
        <Transaction name="SetUserFlags">
+               <Doc>Changes the flags of a user. Flags determine what data (events, templates, etc.) a user can use.</Doc>
                <Input>
                        <Var name="username" type="astring"/>
                        <Var name="flags" type="List:astring"/>
        </Transaction>
        
        <Transaction name="GetAllRoles" updating="no">
+               <Doc>Returns a list of all existing roles.</Doc>
                <Input/>
                <Call lang="php" method="$this->setroles(WORole::fromTableArrayrole(WTrole::selectFromDB()));"/>
                <Output>
        </Transaction>
        
        <Transaction name="GetRole" updating="no">
+               <Doc>Returns a specific role by name.</Doc>
                <Input>
                        <Var name="role" type="astring"/>
                </Input>
        </Transaction>
        
        <Transaction name="CreateRole">
+               <Doc>Creates a new role.</Doc>
                <Input>
                        <Var name="role" type="astring"/>
                </Input>
                <Call lang="php" method="MachineUser::createRole($this);"/>
        </Transaction>
        <Transaction name="SetRoleDescription">
+               <Doc>Changes the description of a role</Doc>
                <Input>
                        <Var name="role" type="astring"/>
                        <Var name="description" type="string"/>
                <Call lang="php" method="MachineUser::setRoleDescription($this);"/>
        </Transaction>
        <Transaction name="SetRoleRights">
+               <Doc>Changes the rights assigned to a role</Doc>
                <Input>
                        <Var name="role" type="astring"/>
                        <Var name="rights" type="List:astring"/>
                <Call lang="php" method="MachineUser::setRoleRights($this);"/>
        </Transaction>
        <Transaction name="DeleteRole">
+               <Doc>Attempts to delete a role.</Doc>
                <Input>
                        <Var name="role" type="astring"/>
                </Input>
                <Call lang="php" method="MachineUser::deleteRole($this);"/>
        </Transaction>
        <Transaction name="SetRoleFlags">
+               <Doc>Changes the flags assigned to a role. This changes the data that users with this role can see.</Doc>
                <Input>
                        <Var name="role" type="astring"/>
                        <Var name="flags" type="List:astring"/>
        </Transaction>
        
        <Transaction name="GetAllRightNames" updating="no">
+               <Doc>Returns a list of all rights (i.e. transactions and privileges) that currently exist at the server</Doc>
                <Call lang="php" method="$this->setrights(array_merge(WobTransaction::transactionNames(),WobTransaction::privilegeNames()));"/>
                <Output>
                        <Var name="rights" type="List:astring"/>
        </Transaction>
        
        <Transaction name="GetAllHostNames" updating="no">
+               <Doc>returns a list of all (log in/client) host names that are known to the server</Doc>
                <Input/>
                <Call lang="php" method="MachineUser::getAllHostNames($this);"/>
                <Output>
        </Transaction>
        
        <Transaction name="GetAllHosts" updating="no">
+               <Doc>returns detailed info about all known (log in/client) hosts</Doc>
                <Input/>
                <Call lang="php" method="$this->sethosts(WOHost::fromTableArrayhost(WThost::selectFromDB()));"/>
                <Output>
        </Transaction>
        
        <Transaction name="SetHost">
+               <Doc>Creates/Changes a host from which users can log in. If the host is already used and you change the key here, you also have to change the key at the client host or no one will be able to log in from it.</Doc>
                <Input>
                        <Var name="name" type="astring"/>
                        <Var name="key" type="string"/>
        </Transaction>
        
        <Transaction name="DeleteHost">
+               <Doc>Deletes a host from which users can log in. If the host has been used, then users will lose the ability to log in from it.</Doc>
                <Input>
                        <Var name="name" type="astring"/>
                </Input>