# HG changeset patch # User Pascal Bellard # Date 1356966888 -3600 # Node ID 288c375946620ff66af2810693681ba705bbe8d0 # Parent 7d549f711862ff5cde4f51eefdbb3522905f69f6 Add settings/groups diff -r 7d549f711862 -r 288c37594662 settings.cgi --- a/settings.cgi Fri Dec 21 01:49:21 2012 -0500 +++ b/settings.cgi Mon Dec 31 16:14:48 2012 +0100 @@ -14,6 +14,19 @@ TITLE=$(gettext 'TazPanel - Settings') +# Get system database. LDAP compatible. +getdb() +{ + getent $1 2>/dev/null || cat /etc/$1 +} + +listdb() +{ + for item in $(getdb $1 | cut -d ":" -f 1); do + echo "\n" + done +} + # # Commands executed before page loading. # @@ -22,13 +35,23 @@ *\ do\ *) # Assume no array support in httpd_helper.sh ;^) users="" + groups="" IFS="&" for i in $QUERY_STRING ; do case "$i" in - user=*) users="$users ${i#user=}" ;; + user=*) users="$users ${i#user=}" ;; + group=*) groups="$groups ${i#group=}" ;; esac done unset IFS + for cmd in "Delete group" ; do + [ "$(GET do)" == "$(gettext "$cmd")" ] || continue + for group in $groups ; do + case "$cmd" in + Delete*) delgroup $group ;; + esac + done + done for cmd in "Delete user" "Lock user" "Unlock user" \ "Change password" ; do [ "$(GET do)" == "$(gettext "$cmd")" ] || continue # BUGGY @@ -41,6 +64,12 @@ esac done done ;; + *\ addmember\ *) + addgroup $(GET member) $(GET group) ;; + *\ delmember\ *) + delgroup $(GET member) $(GET group) ;; + *\ addgroup\ *) + addgroup $(GET addgroup) ;; *\ adduser\ *) # # Manage system user accounts @@ -79,6 +108,90 @@ xhtml_header case " $(GET) " in + *\ group*) + # + # Groups management + # + cat <$(gettext 'Manage groups') + +
+ +
+
+ $(gettext 'Selection:') + +
+
+ + + + + + + + + + +EOT + for group in `getdb group | cut -d ":" -f 1` + do + IFS=':' + set -- $(getdb group | grep "^$group:") + unset IFS + gid=$3 + members=$4 + cat < + + + + +EOT + done + cat << EOT + +
$(gettext 'Group')$(gettext 'Group ID')$(gettext 'Members')
+ $group$gid${members//,/, }
+
+ +
+

$(gettext 'Add a new group')

+ +
+ + + + + +
$(gettext 'Group name:') +
+
+
+ +
+

$(gettext 'Manage group membership')

+ +
+ + + + + + + +
$(gettext 'Group name:')$(gettext 'User name:')
+
+
+
+ +EOT + ;; + *\ user*) # # Users management @@ -108,14 +221,14 @@ EOT - for login in `cat /etc/passwd | cut -d ":" -f 1` + for login in `getdb passwd | cut -d ":" -f 1` do if [ -d /home/$login ]; then colorlogin=$login grep -qs "^$login:!" /etc/shadow && colorlogin="$login" IFS=':' - set -- $(grep "^$login:" /etc/passwd) + set -- $(getdb passwd | grep "^$login:") unset IFS uid=$3 gid=$4 @@ -261,7 +374,9 @@
diff -r 7d549f711862 -r 288c37594662 styles/default/header.html --- a/styles/default/header.html Fri Dec 21 01:49:21 2012 -0500 +++ b/styles/default/header.html Mon Dec 31 16:14:48 2012 +0100 @@ -63,7 +63,9 @@
  • $(gettext 'Settings')
  • $(gettext 'Boot')