]> code.citadel.org Git - citadel.git/blobdiff - webcit/useredit.c
* put filename reference into token, so we can put in errormessages where we wouldn...
[citadel.git] / webcit / useredit.c
index bdd457dc24982236e8c66f29380c41118b7d6162..97e59de1dd9dd67a4fe29d3020636c67623846ff 100644 (file)
@@ -1,21 +1,15 @@
 /*
  * $Id$
  */
-/**
- * \defgroup AdminTasks Administrative screen to add/change/delete user accounts
- * \ingroup CitadelConfig
- *
- */
-/*@{*/
 
 #include "webcit.h"
 #include "webserver.h"
 
 
 /**
- * \brief show a list of available users to edit them
- * \param message the header message???
- * \param preselect which user should be selected in the browser
+ *  show a list of available users to edit them
+ *  message the header message???
+ *  preselect which user should be selected in the browser
  */
 void select_user_to_edit(char *message, char *preselect)
 {/*
@@ -279,7 +273,7 @@ int ComparenPostsRev(const void *vUser1, const void *vUser2)
 }
 
 
-HashList *iterate_load_userlist(WCTemplateToken *Token)
+HashList *iterate_load_userlist(StrBuf *Target, int nArgs, WCTemplateToken *Tokens, void *Context, int ContextType)
 {
        HashList *Hash;
        char buf[SIZ];
@@ -448,9 +442,9 @@ int ConditionalUserAccess(WCTemplateToken *Tokens, void *Context, int ContextTyp
 }
 
 /**
- * \brief Locate the message number of a user's vCard in the current room
- * \param username the plaintext name of the user
- * \param usernum the number of the user on the citadel server
+ *  Locate the message number of a user's vCard in the current room
+ *  username the plaintext name of the user
+ *  usernum the number of the user on the citadel server
  * \return the message id of his vcard
  */
 long locate_user_vcard(char *username, long usernum) {
@@ -502,7 +496,7 @@ TRYAGAIN:
        }
 
        /** If there's no vcard, create one */
-       if (vcard_msgnum < 0) if (already_tried_creating_one == 0) {
+       if ((vcard_msgnum < 0) && (already_tried_creating_one == 0)) {
                already_tried_creating_one = 1;
                serv_puts("ENT0 1|||4");
                serv_getln(buf, sizeof buf);
@@ -521,9 +515,9 @@ TRYAGAIN:
 
 
 /**
- * \brief Display the form for editing a user's address book entry
- * \param username the name of the user
- * \param usernum the citadel-uid of the user
+ *  Display the form for editing a user's address book entry
+ *  username the name of the user
+ *  usernum the citadel-uid of the user
  */
 void display_edit_address_book_entry(char *username, long usernum) {
        char roomname[SIZ];
@@ -594,9 +588,18 @@ void display_edituser(char *supplied_username, int is_new) {
        }
        else {
                UL = NewUserListOneEntry(Buf);
-               output_headers(1, 0, 0, 0, 1, 0);
-               DoTemplate(HKEY("userlist_detailview"), NULL, (void*) UL, CTX_USERLIST);
-               end_burst();
+               if (havebstr("edit_abe_button")) {
+                       display_edit_address_book_entry(username, UL->UID);
+               }
+               else if (havebstr("delete_button")) {
+                       delete_user(username);
+               }
+               else {
+                       output_headers(1, 0, 0, 0, 1, 0);
+                       DoTemplate(HKEY("userlist_detailview"), NULL, (void*) UL, CTX_USERLIST);
+                       end_burst();
+               }
+               DeleteUserListEntry(UL);
                
        }
        FreeStrBuf(&Buf);
@@ -605,14 +608,14 @@ void display_edituser(char *supplied_username, int is_new) {
 
 
 /* *
- * \brief Edit a user.  
+ *  Edit a user.  
  * If supplied_username is null, look in the "username"
  * web variable for the name of the user to edit.
  * 
  * If "is_new" is set to nonzero, this screen will set the web variables
  * to send the user to the vCard editor next.
- * \param supplied_username user to look up or NULL if to search in the environment
- * \param is_new should we create the user?
+ *  supplied_username user to look up or NULL if to search in the environment
+ *  is_new should we create the user?
  * /
 void display_edituser(char *supplied_username, int is_new) {
        char buf[1024];
@@ -788,7 +791,7 @@ void display_edituser(char *supplied_username, int is_new) {
 */
 
 /**
- * \brief do the backend operation of the user edit on the server
+ *  do the backend operation of the user edit on the server
  */
 void edituser(void) {
        char message[SIZ];
@@ -859,8 +862,8 @@ void edituser(void) {
 }
 
 /*
- * \brief burge a user 
- * \param username the name of the user to remove
+ *  burge a user 
+ *  username the name of the user to remove
  */
 void delete_user(char *username) {
        char buf[SIZ];
@@ -882,7 +885,7 @@ void delete_user(char *username) {
 
 
 /**
- * \brief create a new user
+ *  create a new user
  * take the web environment username and create it on the citadel server
  */
 void create_user(void) {
@@ -947,6 +950,5 @@ InitModule_USEREDIT
        RegisterConditional(HKEY("COND:USERACCESS"), 0,   ConditionalUserAccess, CTX_USERLIST);
        RegisterConditional(HKEY("COND:USERLIST:FLAG:USE_INTERNET"), 0, ConditionalFlagINetEmail, CTX_USERLIST);
 
-       RegisterIterator("USERLIST", 0, NULL, iterate_load_userlist, NULL, DeleteHash, CTX_USERLIST);
+       RegisterIterator("USERLIST", 0, NULL, iterate_load_userlist, NULL, DeleteHash, CTX_USERLIST, CTX_NONE);
 }
-/*@}*/