Browse Source

Make sure ip users list are uniqe also after removing user association

Robert Zollner 5 years ago
parent
commit
52f1e09ac6
2 changed files with 12 additions and 2 deletions
  1. 8 1
      func/ip.sh
  2. 4 1
      install/upgrade/versions/1.3.1.sh

+ 8 - 1
func/ip.sh

@@ -83,7 +83,7 @@ increase_ip_value() {
     if [ -z "$current_usr" ]; then
         new_usr="$USER"
     else
-        check_usr=$(echo -e "${current_usr//,/\\n}" | grep -w ^${USER}$)
+        check_usr=$(echo -e "${current_usr//,/\\n}" | grep -x "$USER")
         if [ -z "$check_usr" ]; then
             new_usr="$current_usr,$USER"
         else
@@ -91,6 +91,12 @@ increase_ip_value() {
         fi
     fi
 
+    # Make sure users list does not contain duplicates
+    new_usr=$(echo "$new_usr" |\
+        sed "s/,/\n/g"|\
+        sort -u |\
+        sed ':a;N;$!ba;s/\n/,/g')
+
     sed -i "s/$web_key='$current_web'/$web_key='$new_web'/g" \
         $HESTIA/data/ips/$sip
     sed -i "s/$usr_key='$current_usr'/$usr_key='$new_usr'/g" \
@@ -118,6 +124,7 @@ decrease_ip_value() {
             sed "s/,/\n/g"|\
             sed "s/^$user$//g"|\
             sed "/^$/d"|\
+            sort -u |\
             sed ':a;N;$!ba;s/\n/,/g')
     else
         new_usr="$current_usr"

+ 4 - 1
install/upgrade/versions/1.3.1.sh

@@ -10,7 +10,10 @@
 for ip in $(ls $HESTIA/data/ips/); do
     current_usr=$(grep "U_SYS_USERS=" $HESTIA/data/ips/$ip |cut -f 2 -d \')
     
-    new_usr=$(echo $current_usr | sed 's/,/\n/g' | sort | uniq | paste -sd,)
+    new_usr=$(echo "$current_usr" |\
+        sed "s/,/\n/g"|\
+        sort -u |\
+        sed ':a;N;$!ba;s/\n/,/g')
 
     if [ ! -z $new_usr ]; then
         sed -i "s/U_SYS_USERS='$current_usr'/U_SYS_USERS='$new_usr'/g" $HESTIA/data/ips/$ip