Demo Discussion
Forum Config Examples Contributions Vulnerabilities
  Discussion forum about ELOG  Not logged in ELOG logo
icon5.gif   error message "Command Config is not allowed" after registering, posted by Mark Bergman on Fri Oct 21 01:09:54 2011 
    icon2.gif   Re: error message "Command Config is not allowed" after registering, posted by Mark Bergman on Wed Feb 15 17:13:08 2012 
    icon2.gif   Re: error message "Command Config is not allowed" after registering, posted by Mark Bergman on Wed Apr 2 19:17:31 2014 
    icon2.gif   Re: error message "Command Config is not allowed" after registering, posted by Mark Bergman on Tue Sep 6 20:09:07 2016 elogd.c.patch
Message ID: 68419     Entry time: Tue Sep 6 20:09:07 2016     In reply to: 67137
Icon: Reply  Author: Mark Bergman  Author Email: mark.bergman@uphs.upenn.edu 
Category: Question  OS: Linux  ELOG Version: 2.90 
Subject: Re: error message "Command Config is not allowed" after registering 

 

Mark Bergman wrote:

After registering, elog displays a page with the message:

     Error: Command "Config" is not allowed for user ""

However, the registration is successful. This causes confusion, and results in users registering multiple times.

 

In the elogd.conf file, I have the directive:

     Allow Config = bergman

 

Any suggestions?

 

Well, 5 years after opening this issue, with no responses here, I finally got into the source code and fixed it.

The problem seems to be if eLog is configured to prohibit users (non-administrators) from the "Config" option...but on the initial self-registration, the code goes to the Config screen for the user anyway...resulting in the false error message.

So, I [badly] hacked eLog to fix that, add some debugging/log messages, and to correct a typo.

Attached is the patch against release 3.1.1-1. Try not to cringe too much at my code. :)

Attachment 1: elogd.c.patch  4 kB  | Hide | Hide all
*** ./elogd.c	Tue Aug 23 21:27:39 2016
--- ../../elog-3.1.1.orig/src/elogd.c	Tue Aug  4 09:30:54 2015
***************
*** 80,84 ****
  int _verbose_level, _current_message_id;
  int _logging_level, _ssl_flag;
- BOOL just_registered = FALSE;	/* flag to supress erroneous error */
  
  LOGBOOK *lb_list = NULL;
--- 80,83 ----
***************
*** 13363,13369 ****
  
     if (new_user) {
-       write_logfile(lbs,"In save_user_config() with new_user==TRUE, setting just_registered=TRUE");
-       just_registered = TRUE;
- 
        node = mxml_find_node(lbs->pwd_xml_tree, "/list");
        if (!node) {
--- 13362,13365 ----
***************
*** 13432,13436 ****
        mxml_write_tree(file_name, lbs->pwd_xml_tree);
  
- 
     /* if requested, send notification email to user or admin user */
     if (new_user && !first_user && (self_register == 2 || self_register == 3 || self_register == 4)
--- 13428,13431 ----
***************
*** 13616,13619 ****
--- 13611,13615 ----
                    };
                 }
+ 
                 pl = strtok(NULL, " ,");
              }
***************
*** 26649,26666 ****
     /* save user info if "save" is pressed */
     if (strieq(command, loc("Save")) && isparam("new_user_name") && !isparam("config")) {
!       if (!save_user_config(lbs, getparam("new_user_name"), TRUE)) {
           return 0;
!       }
!       if ( just_registered ) {
!          write_logfile(lbs,"In do_self_register with just_registered==TRUE, resetting flag, calling show_login_page(NULL,\"\",0)");
!          just_registered = FALSE;
!          show_login_page(NULL, "", 0);
!       } else {
!          if (lbs)
!             sprintf(str, "../%s/", lbs->name_enc);
!          else
!             sprintf(str, ".");
!          redirect(lbs, str);
!       }
        return 0;
     }
--- 26645,26655 ----
     /* save user info if "save" is pressed */
     if (strieq(command, loc("Save")) && isparam("new_user_name") && !isparam("config")) {
!       if (!save_user_config(lbs, getparam("new_user_name"), TRUE))
           return 0;
!       if (lbs)
!          sprintf(str, "../%s/", lbs->name_enc);
!       else
!          sprintf(str, ".");
!       redirect(lbs, str);
        return 0;
     }
***************
*** 27355,27364 ****
        /* check if user has access to logbook */
        if (!check_login_user(lbs, getparam("uname"))) {
!       	sprintf(str, "check_login_user access failure: user \"%s\", logbook \"%s\"", uname, lbs->name);
!       	write_logfile(lbs, str);
!          show_error("User has no access to this logbook.");
!          strlcpy(str, loc("New user"), sizeof(str));
!          url_encode(str, sizeof(str));
!          rsprintf("


<b><center><a href=\"?cmd=%s\">%s</a></center></b></td></tr>", str, loc("Register as new user")); return; } --- 27344,27348 ---- /* check if user has access to logbook */ if (!check_login_user(lbs, getparam("uname"))) { ! show_error("Use has no access to this logbook"); return; } *************** *** 27728,27747 **** strencode2(str2, command, sizeof(str2)); strencode2(str3, full_name, sizeof(str3)); ! ! if (strieq(str2,"Config") && just_registered == TRUE ) { ! /* this is the only time to skip the error that "Config" is not an allowed command...as the Config was really ! called in order to complete the self-registration ! ! now, reset the flag */ ! write_logfile(lbs,"In interprete() with just_registered==TRUE, resetting flag, skipping error message that user is not allowed to run command \"Config\""); ! just_registered = FALSE; ! } else { ! sprintf(str, "Error: Command \"%s\" is not allowed for uname \"%s\", full name \"%s\"", str2, uname,str3); ! write_logfile(lbs, str); ! ! sprintf(str, loc("Error: Command \"<b>%s</b>\" is not allowed for login \"<b>%s</b>\", user \"<b>%s</b>\""), str2,uname,str3); ! show_error(str); ! return; ! } } --- 27712,27718 ---- strencode2(str2, command, sizeof(str2)); strencode2(str3, full_name, sizeof(str3)); ! sprintf(str, loc("Error: Command \"<b>%s</b>\" is not allowed for user \"<b>%s</b>\""), str2, str3); ! show_error(str); ! return; }
ELOG V3.1.5-3fb85fa6