diff options
Diffstat (limited to 'src/main.c')
-rw-r--r-- | src/main.c | 13 |
1 files changed, 13 insertions, 0 deletions
@@ -50,6 +50,7 @@ COMMAND top_user_list[] = { { "help", com_help, "Display this text" }, { "?", com_help, "Synonym for `help'" }, { "shell", com_shell, "Activate submenu shell" }, + { "users", com_users, "Activate submenu users" }, { "quit", com_quit, "Quit using SILA Shell" }, { (char *)NULL, (rl_icpfunc_t *)NULL, (char *)NULL } }; @@ -121,6 +122,7 @@ COMMAND users_admin_list[] = { { "useradd", com_useradd, "Register new user" }, { "userdel", com_userdel, "Delete user" }, { "list", com_userlist, "List users" }, + { "passwd", com_passwd, "Set or change user's password" }, { "..", com_top, "Return to top menu" }, { "quit", com_quit, "Quit using SILA Shell" }, { (char *)NULL, (rl_icpfunc_t *)NULL, (char *)NULL } @@ -132,6 +134,7 @@ COMMAND users_operator_list[] = { { "useradd", com_useradd, "Register new user" }, { "userdel", com_userdel, "Delete user" }, { "list", com_userlist, "List users" }, + { "passwd", com_passwd, "Set or change user's password" }, { "..", com_top, "Return to top menu" }, { (char *)NULL, (rl_icpfunc_t *)NULL, (char *)NULL } }; @@ -140,6 +143,7 @@ COMMAND users_user_list[] = { { "help", com_help, "Display this text" }, { "?", com_help, "Synonym for `help'" }, { "list", com_userlist, "List users" }, + { "passwd", com_passwd, "Set or change user's password" }, { "..", com_top, "Return to top menu" }, { (char *)NULL, (rl_icpfunc_t *)NULL, (char *)NULL } }; @@ -166,6 +170,9 @@ enum priv user_privileges() if( !pw ) return ret; + strncpy( user_name, pw->pw_name, USER_NAME_SIZE - 1 ); + strncpy( user_role, ROLE_USER, USER_ROLE_SIZE - 1 ); + (void)getgrouplist( pw->pw_name, pw->pw_gid, NULL, &ng ); /* allocate groups[] */ if( ng == 0 ) @@ -210,6 +217,12 @@ enum priv user_privileges() free( groups ); + if( ret == OPERATOR ) + strncpy( user_role, ROLE_OPERATOR, USER_ROLE_SIZE - 1 ); + + if( ret == ADMIN ) + strncpy( user_role, ROLE_ADMIN, USER_ROLE_SIZE - 1 ); + return ret; } |