diff options
author | David Sommerseth <dazo@users.sourceforge.net> | 2008-12-07 21:51:58 +0100 |
---|---|---|
committer | David Sommerseth <dazo@users.sourceforge.net> | 2008-12-07 21:51:58 +0100 |
commit | 596fb6394eb21a879bc7d4dc7f8ac4351a9bd163 (patch) | |
tree | 14c9cbb709e2a493d60b5fde25f87fb66e1973d0 /eurephiadm | |
parent | ef65848a7820fcdb71f8f6f7a01f21300e58acaa (diff) | |
download | eurephia-596fb6394eb21a879bc7d4dc7f8ac4351a9bd163.tar.gz eurephia-596fb6394eb21a879bc7d4dc7f8ac4351a9bd163.tar.xz eurephia-596fb6394eb21a879bc7d4dc7f8ac4351a9bd163.zip |
users command: Added --show action, to display user info
Diffstat (limited to 'eurephiadm')
-rw-r--r-- | eurephiadm/commands/users.c | 36 |
1 files changed, 35 insertions, 1 deletions
diff --git a/eurephiadm/commands/users.c b/eurephiadm/commands/users.c index 6fa842d..7e65609 100644 --- a/eurephiadm/commands/users.c +++ b/eurephiadm/commands/users.c @@ -35,6 +35,14 @@ #include "../argparser.h" +inline void field_print_int(char *label, int val) { + printf("%20.20s: %i\n", label, val); +} + +inline void field_print_str(char *label, char *val) { + printf("%20.20s: %s\n", label, (val == NULL ? "-" : val)); +} + void display_users_help(int page) { printf("\n%s -- Administer user accounts\n\n", MODULE); @@ -173,8 +181,9 @@ int list_users(eurephiaCTX *ctx, eurephiaSESSION *sess, eurephiaVALUES *cfg, int // This function handles showing info, activation and deactivation of an account int useraccount(eurephiaCTX *ctx, eurephiaSESSION *sess, eurephiaVALUES *cfg, int argc, char **argv) { + eurephiaUSERINFO *user = NULL; char *uname = NULL; - int i, uid = 0, actmode = 0; + int i, uid = 0, actmode = 0, rc = 0; e_options activargs[] = { {"--uid", "-i", 1}, @@ -191,6 +200,9 @@ int useraccount(eurephiaCTX *ctx, eurephiaSESSION *sess, eurephiaVALUES *cfg, in actmode = 'd'; } else if( (strcmp(argv[0], "--show") == 0) || (strcmp(argv[0], "-s") == 0) ) { actmode = 's'; + } else { + fprintf(stderr, "%s: System error - illegal users mode'%s'\n", MODULE, argv[0]); + return 1; } for( i = 1; i < argc; i++ ) { @@ -234,6 +246,28 @@ int useraccount(eurephiaCTX *ctx, eurephiaSESSION *sess, eurephiaVALUES *cfg, in return 1; } + user = eAdminPopulateUSERINFO(uid, uname, NULL, NULL, NULL, NULL); + assert(user != NULL); + + switch( actmode ) { + case 's': + if( (rc = eDBadminGetUserInfo(ctx, user)) == 1 ) { + field_print_int("User id", user->uid); + field_print_str("User name", user->username); + field_print_str("Last accessed", user->last_accessed); + field_print_str("Activated", user->activated); + field_print_str("Dectivated", user->deactivated); + } + break; + case 'a': + break; + case 'd': + break; + } + + eAdminFreeUSERINFO(user); + free_nullsafe(uname); + return 0; } |