Przeglądaj źródła

implemented admin/user search

Serghey Rodin 13 lat temu
rodzic
commit
b1c9568248
60 zmienionych plików z 789 dodań i 144 usunięć
  1. 131 18
      bin/v_search_object
  2. 258 0
      bin/v_search_user_object
  3. 4 4
      func/main.sh
  4. 2 1
      web/delete/backup/index.php
  5. 2 1
      web/delete/cron/index.php
  6. 2 1
      web/delete/db/index.php
  7. 6 4
      web/delete/dns/index.php
  8. 2 1
      web/delete/ip/index.php
  9. 6 5
      web/delete/mail/index.php
  10. 2 1
      web/delete/package/index.php
  11. 2 1
      web/delete/user/index.php
  12. 2 1
      web/delete/web/index.php
  13. 4 2
      web/edit/cron/index.php
  14. 1 0
      web/list/backup/index.php
  15. 1 1
      web/list/cron/index.php
  16. 1 0
      web/list/db/index.php
  17. 1 1
      web/list/dns/index.php
  18. 1 2
      web/list/ip/index.php
  19. 1 1
      web/list/mail/index.php
  20. 1 0
      web/list/package/index.php
  21. 1 0
      web/list/rrd/index.php
  22. 1 0
      web/list/stats/index.php
  23. 1 2
      web/list/user/index.php
  24. 1 0
      web/list/web/index.php
  25. 3 2
      web/search/index.php
  26. 2 1
      web/suspend/cron/index.php
  27. 2 1
      web/suspend/db/index.php
  28. 4 3
      web/suspend/dns/index.php
  29. 4 4
      web/suspend/mail/index.php
  30. 2 1
      web/suspend/user/index.php
  31. 2 1
      web/suspend/web/index.php
  32. 3 3
      web/templates/admin/add_cron.html
  33. 3 3
      web/templates/admin/add_db.html
  34. 3 3
      web/templates/admin/add_dns.html
  35. 3 3
      web/templates/admin/add_dns_rec.html
  36. 3 3
      web/templates/admin/add_ip.html
  37. 3 3
      web/templates/admin/add_mail.html
  38. 3 3
      web/templates/admin/add_mail_acc.html
  39. 3 3
      web/templates/admin/add_package.html
  40. 3 3
      web/templates/admin/add_user.html
  41. 3 3
      web/templates/admin/add_web.html
  42. 2 2
      web/templates/admin/edit_cron.html
  43. 3 3
      web/templates/admin/edit_db.html
  44. 4 4
      web/templates/admin/edit_dns.html
  45. 3 3
      web/templates/admin/edit_dns_rec.html
  46. 3 3
      web/templates/admin/edit_ip.html
  47. 4 4
      web/templates/admin/edit_mail.html
  48. 3 3
      web/templates/admin/edit_mail_acc.html
  49. 3 3
      web/templates/admin/edit_user.html
  50. 3 3
      web/templates/admin/edit_web.html
  51. 2 2
      web/templates/admin/list_log.html
  52. 2 2
      web/templates/admin/list_rrd.html
  53. 87 6
      web/templates/admin/list_search.html
  54. 1 1
      web/templates/admin/list_stats.html
  55. 3 3
      web/templates/user/add_dns.html
  56. 3 3
      web/templates/user/add_web.html
  57. 3 3
      web/templates/user/edit_dns.html
  58. 3 3
      web/templates/user/edit_user.html
  59. 3 3
      web/templates/user/edit_web.html
  60. 171 0
      web/templates/user/list_search.html

+ 131 - 18
bin/v_search_object

@@ -17,6 +17,55 @@ format=${2-shell}
 source $VESTA/conf/vesta.conf
 source $VESTA/func/main.sh
 
+# Json list function
+json_list_search() {
+    echo '{'
+    fileds_count=$(echo $fields| wc -w )
+    while read line; do
+        eval $line
+        if [ -n "$list_data" ]; then
+            echo -e '        },'
+        fi
+        i=1
+        IFS=' '
+        for field in $fields; do
+            eval value=\"$field\"
+            value=$(echo "$value"|sed -e 's/"/\\"/g' -e "s/%quote%/'/g")
+            if [ $i -eq 1 ]; then
+                (( ++i))
+                echo -e "\t\"$value\": {"
+            else
+                if [ $i -lt $fileds_count ]; then
+                    (( ++i))
+                    echo -e "\t\t\"${field//$/}\": \"${value//,/, }\","
+                else
+                    echo -e "\t\t\"${field//$/}\": \"${value//,/, }\""
+                    list_data=1
+                fi
+            fi
+        done
+    done < $conf
+    if [ -n "$list_data" ]; then
+        echo -e '        }'
+    fi
+    echo -e '}'
+}
+
+# Shell list function
+shell_list_search() {
+    if [ -z "$nohead" ] ; then
+        echo "${fields//$/}"
+        for a in $fields; do
+            echo -e "------ \c"
+        done
+        echo
+    fi
+    while read line ; do
+        eval $line
+        eval echo "$fields" | sed -e "s/%quote%/'/g"
+    done < $conf
+}
+
 #----------------------------------------------------------#
 #                    Verifications                         #
 #----------------------------------------------------------#
@@ -40,8 +89,11 @@ for user in $(ls $VESTA/data/users/); do
     search=$(grep "$object" \
         $VESTA/data/users/$user/web.conf \
         $VESTA/data/users/$user/dns.conf \
+        $VESTA/data/users/$user/dns/*.conf \
         $VESTA/data/users/$user/mail.conf \
-        $VESTA/data/users/$user/db.conf)
+        $VESTA/data/users/$user/mail/*.conf \
+        $VESTA/data/users/$user/db.conf \
+        $VESTA/data/users/$user/cron.conf 2> /dev/null)
     
     for row in $search; do
         # Initialise variable
@@ -49,22 +101,23 @@ for user in $(ls $VESTA/data/users/); do
         result=''
         dom_alias=''
         suspended=''
-	object_time=''
+        object_link=''
+        object_parent=''
+        object_time=''
         object_date=''
 
         # Parsing result
-        type=$(echo $row |cut -f 1 -d : |cut -f 8 -d / |cut -f 1 -d \.)
+        type=$(echo $row |cut -f 1 -d : |cut -f 8 -d /)
         data=$(echo $row |cut -f 2,3,4,5 -d :)
         eval "$data"
 
         # Check WEB domain
-        dom_alias=''
-        if [ "$type" = 'web' ]; then
+        if [ "$type" = 'web.conf' ]; then
             if [ -n "$(echo $DOMAIN |grep $object)" ]; then
                 # Check domain alias
-                check_dom_alias="$(echo $ALIAS| tr ',' '\n' |grep $object)"
-                if [ ! -z "$check_dom_alias" ];then
-                    dom_alias=$(echo $check_dom_alias | tr ' ' ',')
+                check_alias="$(echo $ALIAS| tr ',' '\n' |grep $object)"
+                if [ ! -z "$check_alias" ];then
+                    object_alias=$(echo $check_alias | tr ' ' ',')
                 fi
                 key="DOMAIN"
                 result="$DOMAIN"
@@ -72,11 +125,23 @@ for user in $(ls $VESTA/data/users/); do
                 object_time=$TIME
                 object_date=$DATE
                 ((i ++))
+            else
+                check_alias="$(echo $ALIAS| tr ',' '\n' |grep $object)"
+                if [ ! -z "$check_alias" ];then
+                    key="DOMAIN"
+                    result="$DOMAIN"
+                    object_parent="$DOMAIN"
+                    object_alias=$(echo $check_alias | tr ' ' ',')
+                    suspended=$SUSPENDED
+                    object_time=$TIME
+                    object_date=$DATE
+                    ((i ++))
+                fi
             fi
         fi
 
         # DNS
-        if [ "$type" = 'dns' ]; then
+        if [ "$type" = 'dns.conf' ]; then
             if [ -n "$(echo $DOMAIN |grep $object)" ]; then
                 key="DOMAIN"
                 result="$DOMAIN"
@@ -87,8 +152,22 @@ for user in $(ls $VESTA/data/users/); do
             fi
         fi
 
+        # DNS Records
+        if [ "$type" = 'dns' ]; then
+            if [ -n "$(echo $RECORD |grep $object)" ]; then
+                key="RECORD"
+                result="$RECORD.$DOMAIN"
+                suspended=$SUSPENDED
+                object_link=$ID
+                object_parent=$DOMAIN
+                object_time=$TIME
+                object_date=$DATE
+                ((i ++))
+            fi
+        fi
+
         # MAIL
-        if [ "$type" = 'mail' ]; then
+        if [ "$type" = 'mail.conf' ]; then
             if [ -n "$(echo $DOMAIN |grep $object)" ]; then
                 key="DOMAIN"
                 result="$DOMAIN"
@@ -99,8 +178,24 @@ for user in $(ls $VESTA/data/users/); do
             fi
         fi
 
+        # Mail Accounts
+        if [ "$type" = 'mail' ]; then
+            type='mail'
+            if [ -n "$(echo $ACCOUNT |grep $object)" ]; then
+                key="ACCOUNT"
+                dom="$(echo $row|cut -f 1 -d :|cut -f 9 -d /|sed -e "s/.conf//")"
+                result="$ACCOUNT@$dom"
+                suspended=$SUSPENDED
+                object_link=$ACCOUNT
+                object_parent=$dom
+                object_time=$TIME
+                object_date=$DATE
+                ((i ++))
+            fi
+        fi
+
         # DB
-        if [ "$type" = 'db' ]; then
+        if [ "$type" = 'db.conf' ]; then
             if [ -n "$(echo $DB |grep $object)" ]; then
                 key="DATABASE"
                 result="$DB"
@@ -111,10 +206,26 @@ for user in $(ls $VESTA/data/users/); do
             fi
         fi
 
+        # Cron Jobs
+        if [ "$type" = 'cron.conf' ]; then
+            if [ -n "$(echo $CMD |grep $object)" ]; then
+                key="JOB"
+                result="$CMD"
+                suspended=$SUSPENDED
+                object_link=$JOB
+                object_parent=$JOB
+                object_time=$TIME
+                object_date=$DATE
+                ((i ++))
+            fi
+        fi
+
         if [ ! -z "$result" ]; then
+            type=$(echo $type|cut -f1 -d \.)
             str="ID='$i' USER='$user' TYPE='$type' KEY='$key'"
             str="$str RESULT='$result' ALIAS='$dom_alias'"
-            str="$str  SUSPENDED='$suspended' TIME='$object_time'"
+            str="$str LINK='$object_link' PARENT='$object_parent'"
+            str="$str SUSPENDED='$suspended' TIME='$object_time'"
             str="$str DATE='$object_date'"
             echo $str >> $conf
         fi
@@ -123,14 +234,16 @@ done
 IFS=$OLD_IFS
 
 # Defining fileds to select
-fields='$ID $USER $TYPE $KEY $RESULT $ALIAS $SUSPENDED $TIME $DATE'
+fields='$ID $USER $TYPE $KEY $RESULT $ALIAS $LINK $PARENT $SUSPENDED $TIME'
+fields="$fields \$DATE"
 
 # Listing domains
-case $format in 
-    json)   json_list ;;
-    plain)  nohead=1; shell_list ;;
-    shell)  fields='$USER $TYPE $KEY $RESULT $ALIAS'; shell_list |column -t;;
-    *)      check_args '2' '0' 'object [format]'
+case $format in
+    json)   json_list_search ;;
+    plain)  nohead=1; shell_list_search ;;
+    shell)  fields='$USER~$TYPE~$KEY~$RESULT~$ALIAS';
+            shell_list |column -t -s '~' ;;
+    *)      check_args '1' '0' 'object [format]'
 esac
 
 rm $conf

+ 258 - 0
bin/v_search_user_object

@@ -0,0 +1,258 @@
+#!/bin/bash
+# info: search objects
+# options: user object [format]
+#
+# The function that allows to find user objects.
+
+
+#----------------------------------------------------------#
+#                    Variable&Function                     #
+#----------------------------------------------------------#
+
+# Argument defenition
+user=$1
+object=$2
+format=${3-shell}
+
+# Includes
+source $VESTA/conf/vesta.conf
+source $VESTA/func/main.sh
+
+# Json list function
+json_list_search() {
+    echo '{'
+    fileds_count=$(echo $fields| wc -w )
+    while read line; do
+        eval $line
+        if [ -n "$list_data" ]; then
+            echo -e '        },'
+        fi
+        i=1
+        IFS=' '
+        for field in $fields; do
+            eval value=\"$field\"
+            value=$(echo "$value"|sed -e 's/"/\\"/g' -e "s/%quote%/'/g")
+            if [ $i -eq 1 ]; then
+                (( ++i))
+                echo -e "\t\"$value\": {"
+            else
+                if [ $i -lt $fileds_count ]; then
+                    (( ++i))
+                    echo -e "\t\t\"${field//$/}\": \"${value//,/, }\","
+                else
+                    echo -e "\t\t\"${field//$/}\": \"${value//,/, }\""
+                    list_data=1
+                fi
+            fi
+        done
+    done < $conf
+    if [ -n "$list_data" ]; then
+        echo -e '        }'
+    fi
+    echo -e '}'
+}
+
+# Shell list function
+shell_list_search() {
+    if [ -z "$nohead" ] ; then
+        echo "${fields//$/}"
+        for a in $fields; do
+            echo -e "------ \c"
+        done
+        echo
+    fi
+    while read line ; do
+        eval $line
+        eval echo "$fields" | sed -e "s/%quote%/'/g"
+    done < $conf
+}
+
+#----------------------------------------------------------#
+#                    Verifications                         #
+#----------------------------------------------------------#
+
+check_args '2' "$#" 'user object [format]'
+validate_format 'user' 'object'
+is_object_valid 'user' 'USER' "$user"
+
+
+#----------------------------------------------------------#
+#                       Action                             #
+#----------------------------------------------------------#
+
+conf=$(mktemp)
+i=0
+OLD_IFS=$IFS
+IFS=$'\n'
+
+# Search query
+search=$(grep "$object" \
+    $VESTA/data/users/$user/web.conf \
+    $VESTA/data/users/$user/dns.conf \
+    $VESTA/data/users/$user/dns/*.conf \
+    $VESTA/data/users/$user/mail.conf \
+    $VESTA/data/users/$user/mail/*.conf \
+    $VESTA/data/users/$user/db.conf \
+    $VESTA/data/users/$user/cron.conf 2> /dev/null)
+    
+for row in $search; do
+    # Initialise variable
+    key=''
+    result=''
+    dom_alias=''
+    suspended=''
+    object_link=''
+    object_parent=''
+    object_time=''
+    object_date=''
+
+    # Parsing result
+    type=$(echo $row |cut -f 1 -d : |cut -f 8 -d /)
+    data=$(echo $row |cut -f 2,3,4,5 -d :)
+    eval "$data"
+
+    # Check WEB domain
+    if [ "$type" = 'web.conf' ]; then
+        if [ -n "$(echo $DOMAIN |grep $object)" ]; then
+            # Check domain alias
+            check_alias="$(echo $ALIAS| tr ',' '\n' |grep $object)"
+            if [ ! -z "$check_alias" ];then
+                object_alias=$(echo $check_alias | tr ' ' ',')
+            fi
+            key="DOMAIN"
+            result="$DOMAIN"
+            suspended=$SUSPENDED
+            object_time=$TIME
+            object_date=$DATE
+            ((i ++))
+        else
+            check_alias="$(echo $ALIAS| tr ',' '\n' |grep $object)"
+            if [ ! -z "$check_alias" ];then
+                key="DOMAIN"
+                result="$DOMAIN"
+                object_parent="$DOMAIN"
+                object_alias=$(echo $check_alias | tr ' ' ',')
+                suspended=$SUSPENDED
+                object_time=$TIME
+                object_date=$DATE
+                ((i ++))
+            fi
+        fi
+    fi
+
+    # DNS
+    if [ "$type" = 'dns.conf' ]; then
+        if [ -n "$(echo $DOMAIN |grep $object)" ]; then
+            key="DOMAIN"
+            result="$DOMAIN"
+            suspended=$SUSPENDED
+            object_time=$TIME
+            object_date=$DATE
+            ((i ++))
+        fi
+    fi
+
+    # DNS Records
+    if [ "$type" = 'dns' ]; then
+        if [ -n "$(echo $RECORD |grep $object)" ]; then
+            key="RECORD"
+            result="$RECORD.$DOMAIN"
+            suspended=$SUSPENDED
+            object_link=$ID
+            object_parent=$DOMAIN
+            object_time=$TIME
+            object_date=$DATE
+            ((i ++))
+            fi
+    fi
+
+    # MAIL
+    if [ "$type" = 'mail.conf' ]; then
+        if [ -n "$(echo $DOMAIN |grep $object)" ]; then
+            key="DOMAIN"
+            result="$DOMAIN"
+            suspended=$SUSPENDED
+            object_time=$TIME
+            object_date=$DATE
+            ((i ++))
+        fi
+    fi
+
+    # Mail Accounts
+    if [ "$type" = 'mail' ]; then
+        type='mail'
+            if [ -n "$(echo $ACCOUNT |grep $object)" ]; then
+            key="ACCOUNT"
+            dom="$(echo $row|cut -f 1 -d :|cut -f 9 -d /|sed -e "s/.conf//")"
+            result="$ACCOUNT@$dom"
+            suspended=$SUSPENDED
+            object_link=$ACCOUNT
+            object_parent=$dom
+            object_time=$TIME
+            object_date=$DATE
+            ((i ++))
+            fi
+    fi
+
+    # DB
+    if [ "$type" = 'db.conf' ]; then
+        if [ -n "$(echo $DB |grep $object)" ]; then
+            key="DATABASE"
+            result="$DB"
+            suspended=$SUSPENDED
+            object_time=$TIME
+            object_date=$DATE
+            ((i ++))
+        fi
+    fi
+
+    # Cron Jobs
+    if [ "$type" = 'cron.conf' ]; then
+        if [ -n "$(echo $CMD |grep $object)" ]; then
+            key="JOB"
+            result="$CMD"
+            suspended=$SUSPENDED
+            object_link=$JOB
+            object_parent=$JOB
+            object_time=$TIME
+            object_date=$DATE
+            ((i ++))
+        fi
+    fi
+
+    if [ ! -z "$result" ]; then
+        type=$(echo $type|cut -f1 -d \.)
+        str="ID='$i' USER='$user' TYPE='$type' KEY='$key'"
+        str="$str RESULT='$result' ALIAS='$dom_alias'"
+        str="$str LINK='$object_link' PARENT='$object_parent'"
+        str="$str SUSPENDED='$suspended' TIME='$object_time'"
+        str="$str DATE='$object_date'"
+        echo $str >> $conf
+    fi
+done
+
+IFS=$OLD_IFS
+
+# Defining fileds to select
+fields='$ID $USER $TYPE $KEY $RESULT $ALIAS $LINK $PARENT $SUSPENDED $TIME'
+fields="$fields \$DATE"
+
+# Listing domains
+case $format in
+    json)   json_list_search ;;
+    plain)  nohead=1; shell_list_search ;;
+    shell)  fields='$USER~$TYPE~$KEY~$RESULT~$ALIAS';
+            shell_list |column -t -s '~' ;;
+    *)      check_args '2' '0' 'user object [format]'
+esac
+
+rm $conf
+
+#----------------------------------------------------------#
+#                       Vesta                              #
+#----------------------------------------------------------#
+
+# Logging
+#log_event "$OK" "$EVENT"
+
+exit

+ 4 - 4
func/main.sh

@@ -178,16 +178,16 @@ is_object_free() {
 is_object_valid() {
     if [ $2 = 'USER' ]; then
         if [ -d "$VESTA/data/users/$user" ]; then
-            object="OK"
+            sobject="OK"
         fi
     else
         if [ $2 = 'DBHOST' ]; then
-            object=$(grep "HOST='$host'" $VESTA/conf/$type.conf)
+            sobject=$(grep "HOST='$host'" $VESTA/conf/$type.conf)
         else
-            object=$(grep "$2='$3'" $VESTA/data/users/$user/$1.conf)
+            sobject=$(grep "$2='$3'" $VESTA/data/users/$user/$1.conf)
         fi
     fi
-    if [ -z "$object" ]; then
+    if [ -z "$sobject" ]; then
         echo "Error: $3 not exist"
         log_event "$E_NOTEXIST" "$EVENT"
         exit $E_NOTEXIST

+ 2 - 1
web/delete/backup/index.php

@@ -24,10 +24,11 @@ include($_SERVER['DOCUMENT_ROOT']."/inc/main.php");
 
 //}
 
-$back=getenv("HTTP_REFERER");
+$back = $_SESSION['back'];
 if (!empty($back)) {
     header("Location: ".$back);
     exit;
 }
+
 header("Location: /list/backup/");
 exit;

+ 2 - 1
web/delete/cron/index.php

@@ -24,10 +24,11 @@ include($_SERVER['DOCUMENT_ROOT']."/inc/main.php");
 
 //}
 
-$back=getenv("HTTP_REFERER");
+$back = $_SESSION['back'];
 if (!empty($back)) {
     header("Location: ".$back);
     exit;
 }
+
 header("Location: /list/cron/");
 exit;

+ 2 - 1
web/delete/db/index.php

@@ -24,10 +24,11 @@ include($_SERVER['DOCUMENT_ROOT']."/inc/main.php");
 
 //}
 
-$back=getenv("HTTP_REFERER");
+$back = $_SESSION['back'];
 if (!empty($back)) {
     header("Location: ".$back);
     exit;
 }
+
 header("Location: /list/db/");
 exit;

+ 6 - 4
web/delete/dns/index.php

@@ -21,7 +21,8 @@ include($_SERVER['DOCUMENT_ROOT']."/inc/main.php");
             $_SESSION['error_msg'] = $error;
         }
         unset($output);
-        $back=getenv("HTTP_REFERER");
+
+        $back = $_SESSION['back'];
         if (!empty($back)) {
             header("Location: ".$back);
             exit;
@@ -42,20 +43,21 @@ include($_SERVER['DOCUMENT_ROOT']."/inc/main.php");
             $_SESSION['error_msg'] = $error;
         }
         unset($output);
-        $back=getenv("HTTP_REFERER");
+        $back = $_SESSION['back'];
         if (!empty($back)) {
             header("Location: ".$back);
             exit;
-        }
+        }	
         header("Location: /list/dns/?domain=".$_GET['domain']);
         exit;
     }
 //}
 
-$back=getenv("HTTP_REFERER");
+$back = $_SESSION['back'];
 if (!empty($back)) {
     header("Location: ".$back);
     exit;
 }
+
 header("Location: /list/dns/");
 exit;

+ 2 - 1
web/delete/ip/index.php

@@ -19,10 +19,11 @@ if ($_SESSION['user'] == 'admin') {
 
 }
 
-$back=getenv("HTTP_REFERER");
+$back = $_SESSION['back'];
 if (!empty($back)) {
     header("Location: ".$back);
     exit;
 }
+
 header("Location: /list/ip/");
 exit;

+ 6 - 5
web/delete/mail/index.php

@@ -21,7 +21,7 @@ include($_SERVER['DOCUMENT_ROOT']."/inc/main.php");
             $_SESSION['error_msg'] = $error;
         }
         unset($output);
-        $back=getenv("HTTP_REFERER");
+        $back = $_SESSION['back'];
         if (!empty($back)) {
             header("Location: ".$back);
             exit;
@@ -42,20 +42,21 @@ include($_SERVER['DOCUMENT_ROOT']."/inc/main.php");
                 $_SESSION['error_msg'] = $error;
         }
         unset($output);
-        $back=getenv("HTTP_REFERER");
+        $back = $_SESSION['back'];
         if (!empty($back)) {
-            header("Location: ".$back);
+	    header("Location: ".$back);
             exit;
-        }
+	}
         header("Location: /list/mail/?domain=".$_GET['domain']);
         exit;
     }
 //}
 
-$back=getenv("HTTP_REFERER");
+$back = $_SESSION['back'];
 if (!empty($back)) {
     header("Location: ".$back);
     exit;
 }
+
 header("Location: /list/mail/");
 exit;

+ 2 - 1
web/delete/package/index.php

@@ -18,10 +18,11 @@ if ($_SESSION['user'] == 'admin') {
     unset($output);
 }
 
-$back=getenv("HTTP_REFERER");
+$back = $_SESSION['back'];
 if (!empty($back)) {
     header("Location: ".$back);
     exit;
 }
+
 header("Location: /list/package/");
 exit;

+ 2 - 1
web/delete/user/index.php

@@ -18,10 +18,11 @@ if ($_SESSION['user'] == 'admin') {
     unset($output);
 }
 
-$back=getenv("HTTP_REFERER");
+$back = $_SESSION['back'];
 if (!empty($back)) {
     header("Location: ".$back);
     exit;
 }
+
 header("Location: /list/user/");
 exit;

+ 2 - 1
web/delete/web/index.php

@@ -50,10 +50,11 @@ if (!empty($_GET['domain'])) {
     }
 }
 
-$back=getenv("HTTP_REFERER");
+$back = $_SESSION['back'];
 if (!empty($back)) {
     header("Location: ".$back);
     exit;
 }
+
 header("Location: /list/web/");
 exit;

+ 4 - 2
web/edit/cron/index.php

@@ -13,8 +13,10 @@ include($_SERVER['DOCUMENT_ROOT'].'/templates/header.html');
 // Panel
 top_panel($user,$TAB);
 
-// Are you admin?
-//if ($_SESSION['user'] == 'admin') {
+    // Edit as someone else?
+    if (($_SESSION['user'] == 'admin') && (!empty($_GET['user']))) {
+        $user=escapeshellarg($_GET['user']);
+    }
 
     // Check user argument?
     if (empty($_GET['job'])) {

+ 1 - 0
web/list/backup/index.php

@@ -3,6 +3,7 @@
 error_reporting(NULL);
 session_start();
 $TAB = 'BACKUP';
+$_SESSION['back'] = $_SERVER['REQUEST_URI'];
 include($_SERVER['DOCUMENT_ROOT']."/inc/main.php");
 
 // Header

+ 1 - 1
web/list/cron/index.php

@@ -3,6 +3,7 @@
 error_reporting(NULL);
 session_start();
 $TAB = 'CRON';
+$_SESSION['back'] = $_SERVER['REQUEST_URI'];
 include($_SERVER['DOCUMENT_ROOT']."/inc/main.php");
 
 // Header
@@ -19,7 +20,6 @@ if ($_SESSION['user'] == 'admin') {
     unset($output);
     include($_SERVER['DOCUMENT_ROOT'].'/templates/admin/list_cron.html');
 } else {
-
     exec (VESTA_CMD."v_list_cron_jobs $user json", $output, $return_var);
     $data = json_decode(implode('', $output), true);
     $data = array_reverse($data);

+ 1 - 0
web/list/db/index.php

@@ -3,6 +3,7 @@
 error_reporting(NULL);
 session_start();
 $TAB = 'DB';
+$_SESSION['back'] = $_SERVER['REQUEST_URI'];
 include($_SERVER['DOCUMENT_ROOT']."/inc/main.php");
 
 // Header

+ 1 - 1
web/list/dns/index.php

@@ -3,6 +3,7 @@
 error_reporting(NULL);
 session_start();
 $TAB = 'DNS';
+$_SESSION['back'] = $_SERVER['REQUEST_URI'];
 include($_SERVER['DOCUMENT_ROOT']."/inc/main.php");
 
 // Header
@@ -13,7 +14,6 @@ top_panel($user,$TAB);
 
 // Data
 if ($_SESSION['user'] == 'admin') {
-
     if (empty($_GET['domain'])){
         exec (VESTA_CMD."v_list_dns_domains $user json", $output, $return_var);
         $data = json_decode(implode('', $output), true);

+ 1 - 2
web/list/ip/index.php

@@ -3,10 +3,9 @@
 error_reporting(NULL);
 session_start();
 $TAB = 'IP';
-
+$_SESSION['back'] = $_SERVER['REQUEST_URI'];
 include($_SERVER['DOCUMENT_ROOT']."/inc/main.php");
 
-
 // Header
 include($_SERVER['DOCUMENT_ROOT'].'/templates/header.html');
 

+ 1 - 1
web/list/mail/index.php

@@ -3,6 +3,7 @@
 error_reporting(NULL);
 session_start();
 $TAB = 'MAIL';
+$_SESSION['back'] = $_SERVER['REQUEST_URI'];
 include($_SERVER['DOCUMENT_ROOT']."/inc/main.php");
 
 // Header
@@ -28,7 +29,6 @@ if ($_SESSION['user'] == 'admin') {
         include($_SERVER['DOCUMENT_ROOT'].'/templates/admin/list_mail_acc.html');
     }
 } else {
-
     if (empty($_GET['domain'])){
         exec (VESTA_CMD."v_list_mail_domains $user json", $output, $return_var);
         $data = json_decode(implode('', $output), true);

+ 1 - 0
web/list/package/index.php

@@ -3,6 +3,7 @@
 error_reporting(NULL);
 session_start();
 $TAB = 'PACKAGE';
+$_SESSION['back'] = $_SERVER['REQUEST_URI'];
 include($_SERVER['DOCUMENT_ROOT']."/inc/main.php");
 
 // Header

+ 1 - 0
web/list/rrd/index.php

@@ -3,6 +3,7 @@
 error_reporting(NULL);
 session_start();
 $TAB = 'RRD';
+$_SESSION['back'] = $_SERVER['REQUEST_URI'];
 include($_SERVER['DOCUMENT_ROOT']."/inc/main.php");
 
 // Header

+ 1 - 0
web/list/stats/index.php

@@ -3,6 +3,7 @@
 error_reporting(NULL);
 session_start();
 $TAB = 'STATS';
+$_SESSION['back'] = $_SERVER['REQUEST_URI'];
 include($_SERVER['DOCUMENT_ROOT']."/inc/main.php");
 
 // Header

+ 1 - 2
web/list/user/index.php

@@ -3,9 +3,8 @@
 // Init
 error_reporting(NULL);
 session_start();
+$_SESSION['back'] = $_SERVER['REQUEST_URI'];
 $TAB = 'USER';
-
-// Inlcude functions
 include($_SERVER['DOCUMENT_ROOT']."/inc/main.php");
 
 // Header

+ 1 - 0
web/list/web/index.php

@@ -3,6 +3,7 @@
 error_reporting(NULL);
 session_start();
 $TAB = 'WEB';
+$_SESSION['back'] = $_SERVER['REQUEST_URI'];
 include($_SERVER['DOCUMENT_ROOT']."/inc/main.php");
 
 // Header

+ 3 - 2
web/search/index.php

@@ -3,6 +3,7 @@
 error_reporting(NULL);
 session_start();
 $TAB = 'SEARCH';
+$_SESSION['back'] = $_SERVER['REQUEST_URI'];
 include($_SERVER['DOCUMENT_ROOT']."/inc/main.php");
 
 // Check query
@@ -30,9 +31,9 @@ if ($_SESSION['user'] == 'admin') {
     $data = json_decode(implode('', $output), true);
     include($_SERVER['DOCUMENT_ROOT'].'/templates/admin/list_search.html');
 } else {
-    exec (VESTA_CMD."v_list_web_domains $user json", $output, $return_var);
+    exec (VESTA_CMD."v_search_user_object ".$user." ".$q." json", $output, $return_var);
     $data = json_decode(implode('', $output), true);
-    include($_SERVER['DOCUMENT_ROOT'].'/templates/user/list_web.html');
+    include($_SERVER['DOCUMENT_ROOT'].'/templates/user/list_search.html');
 }
 
 // Footer

+ 2 - 1
web/suspend/cron/index.php

@@ -22,10 +22,11 @@ if ($_SESSION['user'] == 'admin') {
     unset($output);
 }
 
-$back=getenv("HTTP_REFERER");
+$back = $_SESSION['back'];
 if (!empty($back)) {
     header("Location: ".$back);
     exit;
 }
+
 header("Location: /list/cron/");
 exit;

+ 2 - 1
web/suspend/db/index.php

@@ -24,10 +24,11 @@ if ($_SESSION['user'] == 'admin') {
 
 }
 
-$back=getenv("HTTP_REFERER");
+$back = $_SESSION['back'];
 if (!empty($back)) {
     header("Location: ".$back);
     exit;
 }
+
 header("Location: /list/db/");
 exit;

+ 4 - 3
web/suspend/dns/index.php

@@ -21,7 +21,7 @@ if ($_SESSION['user'] == 'admin') {
             $_SESSION['error_msg'] = $error;
         }
         unset($output);
-        $back=getenv("HTTP_REFERER");
+        $back = $_SESSION['back'];
         if (!empty($back)) {
             header("Location: ".$back);
             exit;
@@ -42,7 +42,7 @@ if ($_SESSION['user'] == 'admin') {
             $_SESSION['error_msg'] = $error;
         }
         unset($output);
-        $back=getenv("HTTP_REFERER");
+        $back = $_SESSION['back'];
         if (!empty($back)) {
             header("Location: ".$back);
             exit;
@@ -53,10 +53,11 @@ if ($_SESSION['user'] == 'admin') {
     }
 
 }
-$back=getenv("HTTP_REFERER");
+$back = $_SESSION['back'];
 if (!empty($back)) {
     header("Location: ".$back);
     exit;
 }
+
 header("Location: /list/dns/");
 exit;

+ 4 - 4
web/suspend/mail/index.php

@@ -42,17 +42,17 @@ if ($_SESSION['user'] == 'admin') {
             $_SESSION['error_msg'] = $error;
         }
         unset($output);
-        $back=getenv("HTTP_REFERER");
-        if (!empty($back)) {
+	$back = $_SESSION['back'];
+	    if (!empty($back)) {
             header("Location: ".$back);
             exit;
-	}
+        }
         header("Location: /list/mail/?domain=".$_GET['domain']);
         exit;
     }
 }
 
-$back=getenv("HTTP_REFERER");
+$back = $_SESSION['back'];
 if (!empty($back)) {
     header("Location: ".$back);
     exit;

+ 2 - 1
web/suspend/user/index.php

@@ -20,10 +20,11 @@ if ($_SESSION['user'] == 'admin') {
 
 }
 
-$back=getenv("HTTP_REFERER");
+$back = $_SESSION['back'];
 if (!empty($back)) {
     header("Location: ".$back);
     exit;
 }
+
 header("Location: /list/user/");
 exit;

+ 2 - 1
web/suspend/web/index.php

@@ -23,10 +23,11 @@ if ($_SESSION['user'] == 'admin') {
     unset($output);
 }
 
-$back=getenv("HTTP_REFERER");
+$back = $_SESSION['back'];
 if (!empty($back)) {
     header("Location: ".$back);
     exit;
 }
+
 header("Location: /list/web/");
 exit;

+ 3 - 3
web/templates/admin/add_cron.html

@@ -1,11 +1,11 @@
                                 <?php
-                                    $back = getenv("HTTP_REFERER");
+                                    $back = $_SESSION['back'];
                                     if (empty($back)) {
                                         $back = "location.href='/list/cron/'";
                                     } else {
-                                        $back = "javascript:history.back(1)";
+                                        $back = "location.href='".$back."'";
                                     }
-                                ?> 
+                                ?>
 
                                 <table class="sub-menu" style="background: white;">
                                     <tr>

+ 3 - 3
web/templates/admin/add_db.html

@@ -1,11 +1,11 @@
                                 <?php
-                                    $back = getenv("HTTP_REFERER");
+                                    $back = $_SESSION['back'];
                                     if (empty($back)) {
                                         $back = "location.href='/list/db/'";
                                     } else {
-                                        $back = "javascript:history.back(1)";
+                                        $back = "location.href='".$back."'";
                                     }
-                                ?> 
+                                ?>
 
                                 <table class="sub-menu" style="background: white;">
                                     <tr>

+ 3 - 3
web/templates/admin/add_dns.html

@@ -1,11 +1,11 @@
                                 <?php
-                                    $back = getenv("HTTP_REFERER");
+                                    $back = $_SESSION['back'];
                                     if (empty($back)) {
                                         $back = "location.href='/list/dns/'";
                                     } else {
-                                        $back = "javascript:history.back(1)";
+                                        $back = "location.href='".$back."'";
                                     }
-                                ?> 
+                                ?>
 
                                 <table class="sub-menu" style="background: white;">
                                     <tr>

+ 3 - 3
web/templates/admin/add_dns_rec.html

@@ -1,11 +1,11 @@
                                 <?php
-                                    $back = getenv("HTTP_REFERER");
+                                    $back = $_SESSION['back'];
                                     if (empty($back)) {
                                         $back = "location.href='/list/dns/?domain=".$v_domain."'";
                                     } else {
-                                        $back = "javascript:history.back(1)";
+                                        $back = "location.href='".$back."'";
                                     }
-                                ?> 
+                                ?>
 
                                 <table class="sub-menu" style="background: white;">
                                     <tr>

+ 3 - 3
web/templates/admin/add_ip.html

@@ -1,11 +1,11 @@
                                 <?php
-                                    $back = getenv("HTTP_REFERER");
+                                    $back = $_SESSION['back'];
                                     if (empty($back)) {
                                         $back = "location.href='/list/ip/'";
                                     } else {
-                                        $back = "javascript:history.back(1)";
+                                        $back = "location.href='".$back."'";
                                     }
-                                ?> 
+                                ?>
 
                                 <table class="sub-menu" style="background: white;">
                                     <tr>

+ 3 - 3
web/templates/admin/add_mail.html

@@ -1,11 +1,11 @@
                                 <?php
-                                    $back = getenv("HTTP_REFERER");
+                                    $back = $_SESSION['back'];
                                     if (empty($back)) {
                                         $back = "location.href='/list/mail/'";
                                     } else {
-                                        $back = "javascript:history.back(1)";
+                                        $back = "location.href='".$back."'";
                                     }
-                                ?> 
+                                ?>
 
                                 <table class="sub-menu" style="background: white;">
                                     <tr>

+ 3 - 3
web/templates/admin/add_mail_acc.html

@@ -1,11 +1,11 @@
                                 <?php
-                                    $back = getenv("HTTP_REFERER");
+                                    $back = $_SESSION['back'];
                                     if (empty($back)) {
                                         $back = "location.href='/list/mail/?domain=".$v_domain."'";
                                     } else {
-                                        $back = "javascript:history.back(1)";
+                                        $back = "location.href='".$back."'";
                                     }
-                                ?> 
+                                ?>
 
                                 <table class="sub-menu" style="background: white;">
                                     <tr>

+ 3 - 3
web/templates/admin/add_package.html

@@ -1,11 +1,11 @@
                                 <?php
-                                    $back = getenv("HTTP_REFERER");
+                                    $back = $_SESSION['back'];
                                     if (empty($back)) {
                                         $back = "location.href='/list/package/'";
                                     } else {
-                                        $back = "javascript:history.back(1)";
+                                        $back = "location.href='".$back."'";
                                     }
-                                ?> 
+                                ?>
 
                                 <table class="sub-menu" style="background: white;">
                                     <tr>

+ 3 - 3
web/templates/admin/add_user.html

@@ -1,11 +1,11 @@
                                 <?php
-                                    $back = getenv("HTTP_REFERER");
+                                    $back = $_SESSION['back'];
                                     if (empty($back)) {
                                         $back = "location.href='/list/user/'";
                                     } else {
-                                        $back = "javascript:history.back(1)";
+                                        $back = "location.href='".$back."'";
                                     }
-                                ?> 
+                                ?>
 
                                 <table class="sub-menu" style="background: white;">
                                     <tr>

+ 3 - 3
web/templates/admin/add_web.html

@@ -1,11 +1,11 @@
                                 <?php
-                                    $back = getenv("HTTP_REFERER");
+                                    $back = $_SESSION['back'];
                                     if (empty($back)) {
                                         $back = "location.href='/list/web/'";
                                     } else {
-                                        $back = "javascript:history.back(1)";
+                                        $back = "location.href='".$back."'";
                                     }
-                                ?> 
+                                ?>
 
                                 <table class="sub-menu" style="background: white;">
                                     <tr>

+ 2 - 2
web/templates/admin/edit_cron.html

@@ -1,9 +1,9 @@
                                 <?php
-                                    $back = getenv("HTTP_REFERER");
+                                    $back = $_SESSION['back'];
                                     if (empty($back)) {
                                         $back = "location.href='/list/cron/'";
                                     } else {
-                                        $back = "javascript:history.back(1)";
+                                        $back = "location.href='".$back."'";
                                     }
                                 ?> 
 

+ 3 - 3
web/templates/admin/edit_db.html

@@ -1,11 +1,11 @@
                                 <?php
-                                    $back = getenv("HTTP_REFERER");
+                                    $back = $_SESSION['back'];
                                     if (empty($back)) {
                                         $back = "location.href='/list/db/'";
                                     } else {
-                                        $back = "javascript:history.back(1)";
+                                        $back = "location.href='".$back."'";
                                     }
-                                ?> 
+                                ?>
 
                                 <table class="sub-menu" style="background: white;">
                                     <tr>

+ 4 - 4
web/templates/admin/edit_dns.html

@@ -1,11 +1,11 @@
                                 <?php
-                                    $back = getenv("HTTP_REFERER");
+                                    $back = $_SESSION['back'];
                                     if (empty($back)) {
-                                        $back = "location.href='/list/web/'";
+                                        $back = "location.href='/list/dns/'";
                                     } else {
-                                        $back = "javascript:history.back(1)";
+                                        $back = "location.href='".$back."'";
                                     }
-                                ?> 
+                                ?>
 
                                 <table class="sub-menu" style="background: white;">
                                     <tr>

+ 3 - 3
web/templates/admin/edit_dns_rec.html

@@ -1,11 +1,11 @@
                                 <?php
-                                    $back = getenv("HTTP_REFERER");
+                                    $back = $_SESSION['back'];
                                     if (empty($back)) {
                                         $back = "location.href='/list/dns/?domain=".$_GET['domain']."'";
                                     } else {
-                                        $back = "javascript:history.back(1)";
+                                        $back = "location.href='".$back."'";
                                     }
-                                ?> 
+                                ?>
 
                                 <table class="sub-menu" style="background: white;">
                                     <tr>

+ 3 - 3
web/templates/admin/edit_ip.html

@@ -1,11 +1,11 @@
                                 <?php
-                                    $back = getenv("HTTP_REFERER");
+                                    $back = $_SESSION['back'];
                                     if (empty($back)) {
                                         $back = "location.href='/list/ip/'";
                                     } else {
-                                        $back = "javascript:history.back(1)";
+                                        $back = "location.href='".$back."'";
                                     }
-                                ?> 
+                                ?>
 
                                 <table class="sub-menu" style="background: white;">
                                     <tr>

+ 4 - 4
web/templates/admin/edit_mail.html

@@ -1,11 +1,11 @@
                                 <?php
-                                    $back = getenv("HTTP_REFERER");
+                                    $back = $_SESSION['back'];
                                     if (empty($back)) {
-                                        $back = "location.href='/list/back/'";
+                                        $back = "location.href='/list/mail/'";
                                     } else {
-                                        $back = "javascript:history.back(1)";
+                                        $back = "location.href='".$back."'";
                                     }
-                                ?> 
+                                ?>
 
                                 <table class="sub-menu" style="background: white;">
                                     <tr>

+ 3 - 3
web/templates/admin/edit_mail_acc.html

@@ -1,11 +1,11 @@
                                 <?php
-                                    $back = getenv("HTTP_REFERER");
+                                    $back = $_SESSION['back'];
                                     if (empty($back)) {
                                         $back = "location.href='/list/mail/?domain=".$_GET['domain']."'";
                                     } else {
-                                        $back = "javascript:history.back(1)";
+                                        $back = "location.href='".$back."'";
                                     }
-                                ?> 
+                                ?>
 
                                 <table class="sub-menu" style="background: white;">
                                     <tr>

+ 3 - 3
web/templates/admin/edit_user.html

@@ -1,11 +1,11 @@
                                 <?php
-                                    $back = getenv("HTTP_REFERER");
+                                    $back = $_SESSION['back'];
                                     if (empty($back)) {
                                         $back = "location.href='/list/user/'";
                                     } else {
-                                        $back = "javascript:history.back(1)";
+                                        $back = "location.href='".$back."'";
                                     }
-                                ?> 
+                                ?>
 
                                 <table class="sub-menu" style="background: white;">
                                     <tr>

+ 3 - 3
web/templates/admin/edit_web.html

@@ -1,11 +1,11 @@
                                 <?php
-                                    $back = getenv("HTTP_REFERER");
+                                    $back = $_SESSION['back'];
                                     if (empty($back)) {
                                         $back = "location.href='/list/web/'";
                                     } else {
-                                        $back = "javascript:history.back(1)";
+                                        $back = "location.href='".$back."'";
                                     }
-                                ?> 
+                                ?>
 
                                 <table class="sub-menu" style="background: white;">
                                     <tr>

+ 2 - 2
web/templates/admin/list_log.html

@@ -28,8 +28,8 @@
                             <tr class="data-row">
                                 <td class="data-dotted" style="padding: 0px 10px 0px 0px" width="150px">
                                     <table class="data-col1" width="150">
-                                        <tr><td style="padding: 14 0 4 4;"><a class="data-date" title="<?php echo $data[$key]['DATE']."  ".$data[$key]['TIME'] ?>"><?php echo date("d M Y", strtotime($data[$key]['DATE']))?></a></td></tr>
-                                        <tr><td style="padding: 0 0 0 4;"><a class="data-date" title="<?php echo $data[$key]['DATE']."  ".$data[$key]['TIME'] ?>"><?php echo $data[$key]['TIME']?></a></td></tr>
+                                        <tr><td style="padding: 14 0 4 0;"><a class="data-date" title="<?php echo $data[$key]['DATE']."  ".$data[$key]['TIME'] ?>"><?php echo date("d M Y", strtotime($data[$key]['DATE']))?></a></td></tr>
+                                        <tr><td><a class="data-date" title="<?php echo $data[$key]['DATE']."  ".$data[$key]['TIME'] ?>"><?php echo $data[$key]['TIME']?></a></td></tr>
                                     </table>
                                 </td>
                                 <td class="data-dotted" width="830px" style="vertical-align:top;">

+ 2 - 2
web/templates/admin/list_rrd.html

@@ -35,8 +35,8 @@
                             <tr class="data-row">
                                 <td class="data-dotted" style="padding: 0px 10px 0px 0px" width="150px">
                                     <table class="data-col1" width="150">
-                                        <tr><td style="padding: 24 0 4 4;"><a class="data-date" title="<?php echo $data[$key]['DATE']."  ".$data[$key]['TIME'] ?>"><?php echo date("d M Y", strtotime($data[$key]['DATE']))?></a></td></tr>
-                                        <tr><td style="padding: 0 0 4 4;"><a class="data-date" title="<?php echo $data[$key]['DATE']."  ".$data[$key]['TIME'] ?>"><?php echo $data[$key]['TIME']?></a></td></tr>
+                                        <tr><td style="padding: 24 0 4 0;"><a class="data-date" title="<?php echo $data[$key]['DATE']."  ".$data[$key]['TIME'] ?>"><?php echo date("d M Y", strtotime($data[$key]['DATE']))?></a></td></tr>
+                                        <tr><td><a class="data-date" title="<?php echo $data[$key]['DATE']."  ".$data[$key]['TIME'] ?>"><?php echo $data[$key]['TIME']?></a></td></tr>
                                     </table>
                                 </td>
                                 <td class="data-dotted" width="830px" style="vertical-align:top;">

+ 87 - 6
web/templates/admin/list_search.html

@@ -40,20 +40,77 @@
                             <tr class="data-row">
                                 <td class="data-dotted" style="padding: 0px 10px 0px 0px" width="150px">
                                     <table class="data-col1" width="150">
-                                        <tr><td style="padding: 24 0 4 4;"><a class="data-date" title="<?php echo $data[$key]['DATE']."  ".$data[$key]['TIME'] ?>"><?php echo date("d M Y", strtotime($data[$key]['DATE']))?></a></td></tr>
-                                        <tr><td style="padding: 0 0 4 4;"><a class="data-date" title="<?php echo $data[$key]['DATE']."  ".$data[$key]['TIME'] ?>"><?php echo $data[$key]['TIME']?></a></td></tr>
+                                        <tr><td style="padding: 24 0 4 0;"><a class="data-date" title="<?php echo $data[$key]['DATE']."  ".$data[$key]['TIME'] ?>"><?php echo date("d M Y", strtotime($data[$key]['DATE']))?></a></td></tr>
+                                        <tr><td class="data-<?php echo $status ?>"><b><?php echo $status ?></b></td></tr>
                                     </table>
                                 </td>
                                 <td class="data-dotted" width="830px" style="vertical-align:top;">
                                     <table width="830px">
                                         <tr>
                                             <td></td>
-                                            <td class="data-controls" width="70px"><a href="/login/?loginas=<?php echo $data[$key]['USER'] ?>"><img src="/images/login-as.png" width="8px" height="8px"> login as</a></td>
-                                            <td class="data-controls" width="50px"><a href="/edit/<?php echo $data[$key]['TYPE'] ?>/?<?php echo strtolower($data[$key]['KEY']) ?>=<?php echo $data[$key]['RESULT'] ?>&user=<?php echo $data[$key]['USER'] ?>"><img src="/images/edit.png" width="8px" height="8px"> edit</a></td>
+                                            <?php
+                                                if ($data[$key]['USER'] != $user) {
+
+                                            ?> 
+                                            <td class="data-controls" width="70px">
+                                                <a href="/login/?loginas=<?php echo $data[$key]['USER'] ?>">
+                                                <img src="/images/login-as.png" width="8px" height="8px"> login as</a>
+                                            </td>
+                                            <?php
+                                                    }
+                                            ?> 
+                                            <td class="data-controls" width="50px">
+                                                <?php
+                                                    if ($data[$key]['KEY'] == 'RECORD') {
+                                                        echo '<a href="/edit/'.$data[$key]['TYPE'].'/?domain='.$data[$key]['PARENT'];
+                                                        echo '&record_id='.$data[$key]['LINK'].'&user='.$data[$key]['USER'].'">';
+                                                    }
+
+                                                    if ($data[$key]['KEY'] == 'ACCOUNT') {
+                                                        echo '<a href="/edit/'.$data[$key]['TYPE'].'/?domain='.$data[$key]['PARENT'];
+                                                        echo '&account='.$data[$key]['LINK'].'&user='.$data[$key]['USER'].'">';
+                                                    }
+
+                                                    if ($data[$key]['KEY'] == 'JOB') {
+                                                        echo '<a href="/edit/'.$data[$key]['TYPE'].'/?job='.$data[$key]['LINK'];
+                                                        echo '&user='.$data[$key]['USER'].'">';
+                                                    }
+
+                                                    if (($data[$key]['KEY'] != 'RECORD') && ($data[$key]['KEY'] != 'ACCOUNT') && ($data[$key]['KEY'] != 'JOB')) {
+                                                        echo '<a href="/edit/'.$data[$key]['TYPE'].'/?'.strtolower($data[$key]['KEY']).'='.$data[$key]['RESULT'];
+                                                        echo '&user='.$data[$key]['USER'].'">';
+                                                    }
+                                                ?> 
+                                                <img src="/images/edit.png" width="8px" height="8px"> edit</a>
+                                            </td>
                                             <td class="data-controls do_<?php echo $spnd_action ?>" width="80px">
                                                 <img src="/images/suspend.png" width="7px" height="8px" class="do_<?php echo $spnd_action ?>">
                                                 <a id="<?php echo $spnd_action ?>_link_<?php echo $i ?>" class="do_<?php echo $spnd_action ?>"> <?php echo $spnd_action ?></a>
-                                                <input type="hidden" name="<?php echo $spnd_action ?>_url" value="/<?php echo $spnd_action ?>/<?php echo $data[$key]['TYPE'] ?>/?<?php echo strtolower($data[$key]['KEY']) ?>=<?php echo $data[$key]['RESULT'] ?>&user=<?php echo $data[$key]['USER'] ?>" />
+                                                <?php
+                                                    if ($data[$key]['KEY'] == 'RECORD') {
+                                                        echo '<input type="hidden" name="'.$spnd_action.'_url" ';
+                                                        echo 'value="/'.$spnd_action.'/'.$data[$key]['TYPE'].'/?domain='.$data[$key]['PARENT'];
+                                                        echo '&record_id='.$data[$key]['LINK'].'&user='.$data[$key]['USER'].'"  />';
+                                                    }
+
+                                                    if ($data[$key]['KEY'] == 'ACCOUNT') {
+                                                        echo '<input type="hidden" name="'.$spnd_action.'_url" ';
+                                                        echo 'value="/'.$spnd_action.'/'.$data[$key]['TYPE'].'/?domain='.$data[$key]['PARENT'];
+                                                        echo '&account='.$data[$key]['LINK'].'&user='.$data[$key]['USER'].'"  />';
+                                                    }
+
+                                                    if ($data[$key]['KEY'] == 'JOB') {
+                                                        echo '<input type="hidden" name="'.$spnd_action.'_url" ';
+                                                        echo 'value="/'.$spnd_action.'/'.$data[$key]['TYPE'].'/?job='.$data[$key]['LINK'];
+                                                        echo '&user='.$data[$key]['USER'].'"  />';
+                                                    }
+
+                                                    if (($data[$key]['KEY'] != 'RECORD') && ($data[$key]['KEY'] != 'ACCOUNT') && ($data[$key]['KEY'] != 'JOB')) {
+                                                        echo '<input type="hidden" name="'.$spnd_action.'_url" ';
+                                                        echo 'value="/'.$spnd_action.'/'.$data[$key]['TYPE'].'/?'.strtolower($data[$key]['KEY']).'='.$data[$key]['RESULT'];
+                                                        echo '&user='.$data[$key]['USER'].'"  />';
+                                                    }
+                                                ?> 
                                                 <div id="<?php echo $spnd_action ?>_dialog_<?php echo $i ?>" class="confirmation-text-suspention hidden" title="Confirmation">
                                                     <p class="counter-value">Are you sure you want to <?php echo $spnd_action ?> <b><?php echo $data[$key]['RESULT'] ?></b> ?</p>
                                                 </div>
@@ -61,7 +118,31 @@
                                             <td class="data-controls do_delete" width="70px">
                                                 <img src="/images/delete.png" width="7px" height="7px" class="do_delete">
                                                 <a id="delete_link_<?php echo $i ?>" class="do_delete"> delete</a>
-                                                <input type="hidden" name="delete_url" value="/delete/<?php echo $data[$key]['TYPE'] ?>/?<?php echo strtolower($data[$key]['KEY']) ?>=<?php echo $data[$key]['RESULT'] ?>&user=<?php echo $data[$key]['USER'] ?>" />
+                                                <?php
+                                                    if ($data[$key]['KEY'] == 'RECORD') {
+                                                        echo '<input type="hidden" name="delete_url" ';
+                                                        echo 'value="/delete/'.$data[$key]['TYPE'].'/?domain='.$data[$key]['PARENT'];
+                                                        echo '&record_id='.$data[$key]['LINK'].'&user='.$data[$key]['USER'].'"  />';
+                                                    }
+
+                                                    if ($data[$key]['KEY'] == 'ACCOUNT') {
+                                                        echo '<input type="hidden" name="delete_url" ';
+                                                        echo 'value="/delete/'.$data[$key]['TYPE'].'/?domain='.$data[$key]['PARENT'];
+                                                        echo '&account='.$data[$key]['LINK'].'&user='.$data[$key]['USER'].'"  />';
+                                                    }
+
+                                                    if ($data[$key]['KEY'] == 'JOB') {
+                                                        echo '<input type="hidden" name="delete_url" ';
+                                                        echo 'value="/delete/'.$data[$key]['TYPE'].'/?job='.$data[$key]['LINK'];
+                                                        echo '&user='.$data[$key]['USER'].'"  />';
+                                                    }
+
+                                                    if (($data[$key]['KEY'] != 'RECORD') && ($data[$key]['KEY'] != 'ACCOUNT') && ($data[$key]['KEY'] != 'JOB')) {
+                                                        echo '<input type="hidden" name="delete_url" ';
+                                                        echo 'value="/delete/'.$data[$key]['TYPE'].'/?'.strtolower($data[$key]['KEY']).'='.$data[$key]['RESULT'];
+                                                        echo '&user='.$data[$key]['USER'].'"  />';
+                                                    }
+                                                ?> 
                                                 <div id="delete_dialog_<?php echo $i ?>" class="confirmation-text-delete hidden" title="Confirmation">
                                                     <p class="counter-value">Are you sure you want to delete <b><?php echo $data[$key]['RESULT'] ?></b> ?</p>
                                                 </div>

+ 1 - 1
web/templates/admin/list_stats.html

@@ -28,7 +28,7 @@
                             <tr class="data-row">
                                 <td class="data-dotted" style="padding: 0px 10px 0px 0px" width="150px">
                                     <table class="data-col1" width="150">
-                                        <tr><td style="padding: 24 0 4 4;"><a class="data-date" title="<?php echo $data[$key]['DATE']."  ".$data[$key]['TIME'] ?>"><?php echo date("d M Y", strtotime($key))?></a></td></tr>
+                                        <tr><td style="padding: 24 0 4 0;"><a class="data-date" title="<?php echo $data[$key]['DATE']."  ".$data[$key]['TIME'] ?>"><?php echo date("d M Y", strtotime($key))?></a></td></tr>
                                     </table>
                                 </td>
                                 <td class="data-dotted" width="830px" style="vertical-align:top;">

+ 3 - 3
web/templates/user/add_dns.html

@@ -1,11 +1,11 @@
                                 <?php
-                                    $back = getenv("HTTP_REFERER");
+                                    $back = $_SESSION['back'];
                                     if (empty($back)) {
                                         $back = "location.href='/list/dns/'";
                                     } else {
-                                        $back = "javascript:history.back(1)";
+                                        $back = "location.href='".$back."'";
                                     }
-                                ?> 
+                                ?>
 
                                 <table class="sub-menu" style="background: white;">
                                     <tr>

+ 3 - 3
web/templates/user/add_web.html

@@ -1,11 +1,11 @@
                                 <?php
-                                    $back = getenv("HTTP_REFERER");
+                                    $back = $_SESSION['back'];
                                     if (empty($back)) {
                                         $back = "location.href='/list/web/'";
                                     } else {
-                                        $back = "javascript:history.back(1)";
+                                        $back = "location.href='".$back."'";
                                     }
-                                ?> 
+                                ?>
 
                                 <table class="sub-menu" style="background: white;">
                                     <tr>

+ 3 - 3
web/templates/user/edit_dns.html

@@ -1,11 +1,11 @@
                                 <?php
-                                    $back = getenv("HTTP_REFERER");
+                                    $back = $_SESSION['back'];
                                     if (empty($back)) {
                                         $back = "location.href='/list/dns/'";
                                     } else {
-                                        $back = "javascript:history.back(1)";
+                                        $back = "location.href='".$back."'";
                                     }
-                                ?> 
+                                ?>
 
                                 <table class="sub-menu" style="background: white;">
                                     <tr>

+ 3 - 3
web/templates/user/edit_user.html

@@ -1,11 +1,11 @@
                                 <?php
-                                    $back = getenv("HTTP_REFERER");
+                                    $back = $_SESSION['back'];
                                     if (empty($back)) {
                                         $back = "location.href='/list/user/'";
                                     } else {
-                                        $back = "javascript:history.back(1)";
+                                        $back = "location.href='".$back."'";
                                     }
-                                ?> 
+                                ?>
 
                                 <table class="sub-menu" style="background: white;">
                                     <tr>

+ 3 - 3
web/templates/user/edit_web.html

@@ -1,11 +1,11 @@
                                 <?php
-                                    $back = getenv("HTTP_REFERER");
+                                    $back = $_SESSION['back'];
                                     if (empty($back)) {
                                         $back = "location.href='/list/web/'";
                                     } else {
-                                        $back = "javascript:history.back(1)";
+                                        $back = "location.href='".$back."'";
                                     }
-                                ?> 
+                                ?>
 
                                 <table class="sub-menu" style="background: white;">
                                     <tr>

+ 171 - 0
web/templates/user/list_search.html

@@ -0,0 +1,171 @@
+
+                                <table class="sub-menu" style="background: white;">
+                                    <tr>
+                                        <td style="padding: 12px 0 8px 6px">
+                                            <div style="float:left">
+                                                <a class="name" style="padding: 0;"><b>Search Results</b></a>
+                                            </div>
+                                            <div style="text-align: right; float: right;">
+                                                <form action="/search/" method="get">
+                                                <input type="text" size="30" style="padding: 3px 80px 3px 0; margin: 0 2px 0 0;" name="q">
+                                                <input type="submit" value="Search" class="button" style="font-size: 12px;">
+                                                </form>
+                                            </div>
+                                        </td>
+                                    </tr>
+                                </table>
+                            </td>
+                        </tr>
+                    </table>
+
+                    <div id="vstobjects">
+                        <table class="data">
+                            <?php
+                                foreach ($data as $key => $value) {
+                                    ++$i;
+                                    if ($data[$key]['SUSPENDED'] == 'yes') {
+                                        $status = 'suspended';
+                                        $spnd_action = 'unsuspend' ;
+                                    } else {
+                                        $status = 'active';
+                                        $spnd_action = 'suspend';
+                                    }
+                                    if ($data[$key]['TYPE'] == 'db') {
+                                        $object = 'database';
+                                    } else {
+                                        $object = strtolower($data[$key]['TYPE']." ".$data[$key]['KEY']);
+                                    }
+                            ?>
+
+                            <tr class="data-row">
+                                <td class="data-dotted" style="padding: 0px 10px 0px 0px" width="150px">
+                                    <table class="data-col1" width="150">
+                                        <tr><td style="padding: 24 0 4 0;"><a class="data-date" title="<?php echo $data[$key]['DATE']."  ".$data[$key]['TIME'] ?>"><?php echo date("d M Y", strtotime($data[$key]['DATE']))?></a></td></tr>
+                                        <tr><td class="data-<?php echo $status ?>"><b><?php echo $status ?></b></td></tr>
+                                    </table>
+                                </td>
+                                <td class="data-dotted" width="830px" style="vertical-align:top;">
+                                    <table width="830px">
+                                        <tr>
+                                            <td></td>
+                                            <td class="data-controls" width="50px">
+                                                <?php
+                                                    if ($data[$key]['KEY'] == 'RECORD') {
+                                                        echo '<a href="/edit/'.$data[$key]['TYPE'].'/?domain='.$data[$key]['PARENT'];
+                                                        echo '&record_id='.$data[$key]['LINK'].'">';
+                                                    }
+
+                                                    if ($data[$key]['KEY'] == 'ACCOUNT') {
+                                                        echo '<a href="/edit/'.$data[$key]['TYPE'].'/?domain='.$data[$key]['PARENT'];
+                                                        echo '&account='.$data[$key]['LINK'].'">';
+                                                    }
+
+                                                    if ($data[$key]['KEY'] == 'JOB') {
+                                                        echo '<a href="/edit/'.$data[$key]['TYPE'].'/?job='.$data[$key]['LINK'].'">';
+                                                    }
+
+                                                    if (($data[$key]['KEY'] != 'RECORD') && ($data[$key]['KEY'] != 'ACCOUNT') && ($data[$key]['KEY'] != 'JOB')) {
+                                                        echo '<a href="/edit/'.$data[$key]['TYPE'].'/?'.strtolower($data[$key]['KEY']).'='.$data[$key]['RESULT'].'">';
+                                                    }
+                                                ?> 
+                                                <img src="/images/edit.png" width="8px" height="8px"> edit</a>
+                                            </td>
+                                            <td class="data-controls do_delete" width="70px">
+                                                <img src="/images/delete.png" width="7px" height="7px" class="do_delete">
+                                                <a id="delete_link_<?php echo $i ?>" class="do_delete"> delete</a>
+                                                <?php
+                                                    if ($data[$key]['KEY'] == 'RECORD') {
+                                                        echo '<input type="hidden" name="delete_url" ';
+                                                        echo 'value="/delete/'.$data[$key]['TYPE'].'/?domain='.$data[$key]['PARENT'];
+                                                        echo '&record_id='.$data[$key]['LINK'].'" />';
+                                                    }
+
+                                                    if ($data[$key]['KEY'] == 'ACCOUNT') {
+                                                        echo '<input type="hidden" name="delete_url" ';
+                                                        echo 'value="/delete/'.$data[$key]['TYPE'].'/?domain='.$data[$key]['PARENT'];
+                                                        echo '&account='.$data[$key]['LINK'].'" />';
+                                                    }
+
+                                                    if ($data[$key]['KEY'] == 'JOB') {
+                                                        echo '<input type="hidden" name="delete_url" ';
+                                                        echo 'value="/delete/'.$data[$key]['TYPE'].'/?job='.$data[$key]['LINK'].'" />';
+                                                    }
+
+                                                    if (($data[$key]['KEY'] != 'RECORD') && ($data[$key]['KEY'] != 'ACCOUNT') && ($data[$key]['KEY'] != 'JOB')) {
+                                                        echo '<input type="hidden" name="delete_url" ';
+                                                        echo 'value="/delete/'.$data[$key]['TYPE'].'/?'.strtolower($data[$key]['KEY']).'='.$data[$key]['RESULT'].'" />';
+                                                    }
+                                                ?> 
+                                                <div id="delete_dialog_<?php echo $i ?>" class="confirmation-text-delete hidden" title="Confirmation">
+                                                    <p class="counter-value">Are you sure you want to delete <b><?php echo $data[$key]['RESULT'] ?></b> ?</p>
+                                                </div>
+                                            </td>
+                                        </tr>
+                                </table>
+
+                                <table class="data-col2" width="830px">
+                                    <tr><td colspan=3 class="domain" style="padding: 0 0 0 4px;"><b><?php echo $data[$key]['RESULT'] ?></b> <a class="aliases" style="padding: 0 20px 0 4px"><?php echo str_replace(',', ', ', $data[$key]['ALIAS']) ?></a></td></tr>
+                                    <tr>
+                                        <td style="vertical-align:top;" >
+                                            <table>
+                                                <tr>
+                                                    <td class="counter-name">
+                                                        Object:
+                                                    </td>
+                                                    <td class="counter-value">
+                                                        <?php echo $object ?>  
+                                                    </td>
+                                                </tr>
+                                            </table>
+                                        </td>
+                                        <td style="vertical-align:top;" width="200">
+                                            <table>
+                                                <tr>
+                                                    <td class="counter-name">
+                                                        Owner:
+                                                    </td>
+                                                    <td class="counter-value">
+                                                        <?php echo $data[$key]['USER'] ?> 
+                                                    </td>
+                                                </tr>
+                                            </table>
+                                        </td>
+                                        <td style="vertical-align:top;" width="350">
+                                            <table >
+                                                <tr>
+                                                    <td class="counter-name">
+                                                        Status:
+                                                    </td>
+                                                    <td class="counter-value" style="padding: 0 0 0 8px;">
+                                                        <?php echo $status ?> 
+                                                    </td>
+                                                </tr>
+                                            </table>
+                                        </td>
+                                    </tr>
+                                </table>
+                            </td>
+                        </tr>
+
+                        <?php
+                            }
+                        ?>
+                    </table>
+                    </form>
+
+                    <table class="data-count">
+                        <tr>
+                            <td width="160px"></td>
+                            <td>
+                                <?php
+                                    if ( $i == 1){
+                                        echo "1 object ";
+                                    } else {
+                                        echo "$i objects ";
+                                    }
+                                ?>
+                            </td>
+                        </tr>
+                    </table>
+                </div>
+