summaryrefslogtreecommitdiff
path: root/src/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.c')
-rw-r--r--src/main.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/main.c b/src/main.c
index 19474de..e186215 100644
--- a/src/main.c
+++ b/src/main.c
@@ -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;
}