diff options
| author | David Sommerseth <dazo@users.sourceforge.net> | 2008-12-08 16:46:40 +0100 |
|---|---|---|
| committer | David Sommerseth <dazo@users.sourceforge.net> | 2008-12-08 16:46:40 +0100 |
| commit | 3e9924b2bd837994344bbc80a3da0b4dce010fd8 (patch) | |
| tree | 49aaf8994a40bad385c699933c046412f2ff3526 | |
| parent | ca570b1a032b7cb50c5bf17cc0711570ebc13be6 (diff) | |
users command: Implemented activate and deactivate account feature
| -rw-r--r-- | eurephiadm/commands/users.c | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/eurephiadm/commands/users.c b/eurephiadm/commands/users.c index 7e65609..6c9702d 100644 --- a/eurephiadm/commands/users.c +++ b/eurephiadm/commands/users.c @@ -31,6 +31,7 @@ #include <eurephiadb_session_struct.h> #include <eurephia_admin_struct.h> #include <eurephia_admin_common.h> +#include <eurephiadb_mapping.h> #include <eurephiadb_driver.h> #include "../argparser.h" @@ -260,8 +261,54 @@ int useraccount(eurephiaCTX *ctx, eurephiaSESSION *sess, eurephiaVALUES *cfg, in } break; case 'a': + if( (rc = eDBadminGetUserInfo(ctx, user)) == 1 ) { + if( (user->activated != NULL) && (user->deactivated == NULL) ) { + printf("User account is already active\n"); + } else { + // Set activated field to now() + free_nullsafe(user->activated); + user->activated = strdup("CURRENT_TIMESTAMP"); + + // Remove deactivated flag + free_nullsafe(user->deactivated); + user->setnull_flags = FIELD_DEACTIVATED; + + // Update the user record + rc = eDBadminUpdateUser(ctx, user->uid, user); + if( rc == 1 ) { + printf("User account is activated\n"); + } else { + fprintf(stderr, "%s: Activating user account failed\n", MODULE); + } + } + } else { + fprintf(stderr, "%s: User not found\n", MODULE); + } break; + case 'd': + if( (rc = eDBadminGetUserInfo(ctx, user)) == 1 ) { + if( (user->activated != NULL) && (user->deactivated != NULL) ) { + printf("User account is already deactived\n"); + } else if( (user->activated != NULL) ) { + // Set deactivated to now() + free_nullsafe(user->deactivated); + user->deactivated = strdup("CURRENT_TIMESTAMP"); + + // Update the user record + rc = eDBadminUpdateUser(ctx, user->uid, user); + if( rc == 1 ) { + printf("User account is deactivated\n"); + } else { + fprintf(stderr, "%s: Deactivating the user account failed\n", MODULE); + } + } else { + // ok + fprintf(stderr, "%s: User account is not activated yet\n", MODULE); + } + } else { + fprintf(stderr, "%s: User not found\n", MODULE); + } break; } |
