summaryrefslogtreecommitdiffstats
path: root/eurephiadm
diff options
context:
space:
mode:
authorDavid Sommerseth <dazo@users.sourceforge.net>2008-12-07 21:51:58 +0100
committerDavid Sommerseth <dazo@users.sourceforge.net>2008-12-07 21:51:58 +0100
commit596fb6394eb21a879bc7d4dc7f8ac4351a9bd163 (patch)
tree14c9cbb709e2a493d60b5fde25f87fb66e1973d0 /eurephiadm
parentef65848a7820fcdb71f8f6f7a01f21300e58acaa (diff)
downloadeurephia-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.c36
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;
}