ZonD80 13 лет назад
Родитель
Сommit
cfe677c674
2 измененных файлов с 919 добавлено и 726 удалено
  1. 160 0
      bin/v-rebuild-user
  2. 759 726
      web/templates/header.html

+ 160 - 0
bin/v-rebuild-user

@@ -1,3 +1,4 @@
+<<<<<<< HEAD
 #!/bin/bash
 # info: rebuild system user
 # options: USER [RESTART]
@@ -155,3 +156,162 @@ fi
 log_event "$OK" "$EVENT"
 
 exit
+=======
+#!/bin/bash
+# info: rebuild system user
+# options: USER [RESTART]
+#
+# The function rebuilds system user account.
+
+
+#----------------------------------------------------------#
+#                    Variable&Function                     #
+#----------------------------------------------------------#
+
+# Argument defenition
+user=$1
+restart=$2
+
+# Includes
+source $VESTA/conf/vesta.conf
+source $VESTA/func/main.sh
+
+
+#----------------------------------------------------------#
+#                    Verifications                         #
+#----------------------------------------------------------#
+
+check_args '1' "$#" 'USER [RESTART]'
+validate_format 'user'
+is_object_valid 'user' 'USER' "$user"
+is_object_unsuspended 'user' 'USER' "$user"
+
+
+#----------------------------------------------------------#
+#                       Action                             #
+#----------------------------------------------------------#
+export PATH=$PATH:/usr/sbin
+
+# Get user variables
+source $USER_DATA/user.conf
+
+# Rebuild user
+shell=$(chsh --list-shells | grep -w "$SHELL" |head -n1)
+adduser "$user" -s "$shell" -c "$CONTACT" -m -d "$HOMEDIR/$user" &>/dev/null
+
+# Update password
+shadow='/etc/shadow'
+shdw=$(grep ^$user: $shadow)
+shdw3=$(echo "$shdw" | cut -f3 -d :)
+shdw4=$(echo "$shdw" | cut -f4 -d :)
+shdw5=$(echo "$shdw" | cut -f5 -d :)
+shdw6=$(echo "$shdw" | cut -f6 -d :)
+shdw7=$(echo "$shdw" | cut -f7 -d :)
+shdw8=$(echo "$shdw" | cut -f8 -d :)
+shdw9=$(echo "$shdw" | cut -f9 -d :)
+chmod u+w $shadow
+sed -i "/^$user:*/d" $shadow
+echo "$user:$MD5:$shdw3:$shdw4:$shdw5:$shdw6:$shdw7:$shdw8:$shdw9" >> $shadow
+chmod u-w $shadow
+
+# Building directory tree
+mkdir -p $HOMEDIR/$user/conf
+chmod a+x $HOMEDIR/$user
+chmod a+x $HOMEDIR/$user/conf
+chown $user:$user $HOMEDIR/$user
+chown $user:$user $HOMEDIR/$user/conf
+
+if [ ! -z "$WEB_SYSTEM" ] && [ "$WEB_SYSTEM" != 'no' ]; then
+    mkdir -p $HOMEDIR/$user/conf/web
+    mkdir -p $HOMEDIR/$user/web
+    mkdir -p $HOMEDIR/$user/tmp
+    chmod 751 $HOMEDIR/$user/conf/web
+    chmod 751 $HOMEDIR/$user/web
+    chmod 771 $HOMEDIR/$user/tmp
+    chown $user:$user $HOMEDIR/$user/web
+    $BIN/v-rebuild-web-domains $user $restart
+fi
+
+if [ ! -z "$DNS_SYSTEM" ] && [ "$DNS_SYSTEM" != 'no' ]; then
+    mkdir -p $HOMEDIR/$user/conf/dns
+    chmod 751 $HOMEDIR/$user/conf/dns
+    $BIN/v-rebuild-dns-domains $user $restart
+fi
+
+if [ ! -z "$MAIL_SYSTEM" ] && [ "$MAIL_SYSTEM" != 'no' ]; then
+    mkdir -p $HOMEDIR/$user/conf/mail
+    mkdir -p $HOMEDIR/$user/mail
+    chmod 751 $HOMEDIR/$user/mail
+    chmod 751 $HOMEDIR/$user/conf/mail
+    $BIN/v-rebuild-mail-domains $user
+fi
+
+
+if [ ! -z "$DB_SYSTEM" ] && [ "$DB_SYSTEM" != 'no' ]; then
+    $BIN/v-rebuild-databases $user
+fi
+
+if [ ! -z "$CRON_SYSTEM" ] && [ "$CRON_SYSTEM" != 'no' ]; then
+    $BIN/v-rebuild-cron-jobs $user $restart
+fi
+
+
+#----------------------------------------------------------#
+#                       Vesta                              #
+#----------------------------------------------------------#
+
+# Creating configuration files and pipes
+chmod 770 $USER_DATA
+touch $USER_DATA/backup.conf
+chmod 660 $USER_DATA/backup.conf
+touch $USER_DATA/history.log
+chmod 660 $USER_DATA/history.log
+touch $USER_DATA/stats.log
+chmod 660 $USER_DATA/stats.log
+
+sed -i "/ $user$/d" $VESTA/data/queue/disk.pipe
+echo "v-update-user-disk $user" >> $VESTA/data/queue/disk.pipe
+
+if [ ! -z "$WEB_SYSTEM" ] && [ "$WEB_SYSTEM" != 'no' ]; then
+    mkdir -p $USER_DATA/ssl
+    chmod 770 $USER_DATA/ssl
+    touch $USER_DATA/web.conf
+    chmod 660 $USER_DATA/web.conf
+    if [ "$(grep -w $user $VESTA/data/queue/traffic.pipe)" ]; then
+        echo "$BIN/v-update-web-domains-traff $user" \
+            >> $VESTA/data/queue/traffic.pipe
+    fi
+    echo "v-update-web-domains-disk $user" >> $VESTA/data/queue/disk.pipe
+fi
+
+if [ ! -z "$DNS_SYSTEM" ] && [ "$DNS_SYSTEM" != 'no' ]; then
+    mkdir -p $USER_DATA/dns
+    chmod 770 $USER_DATA/dns
+    touch $USER_DATA/dns.conf
+    chmod 660 $USER_DATA/dns.conf
+fi
+
+if [ ! -z "$MAIL_SYSTEM" ] && [ "$MAIL_SYSTEM" != 'no' ]; then
+    mkdir -p $USER_DATA/mail
+    chmod 770 $USER_DATA/mail
+    touch $USER_DATA/mail.conf
+    chmod 660 $USER_DATA/mail.conf
+    echo "v-update-mail-domains-disk $user" >> $VESTA/data/queue/disk.pipe
+fi
+
+if [ ! -z "$DB_SYSTEM" ] && [ "$DB_SYSTEM" != 'no' ]; then
+    touch $USER_DATA/db.conf
+    chmod 660 $USER_DATA/db.conf
+    echo "v-update-databases-disk $user" >> $VESTA/data/queue/disk.pipe
+fi
+
+if [ ! -z "$CRON_SYSTEM" ] && [ "$CRON_SYSTEM" != 'no' ]; then
+    touch $USER_DATA/cron.conf
+    chmod 660 $USER_DATA/cron.conf
+fi
+
+# Logging
+log_event "$OK" "$EVENT"
+
+exit
+>>>>>>> e81fb6c7307a777644ccaaf4dd15c5ac51b84ebc

+ 759 - 726
web/templates/header.html

@@ -1,726 +1,759 @@
-<html>
-    <head>
-        <link rel="icon" href="/images/favicon.ico" type="image/x-icon">
-        <title>Vesta - <?php echo "$TAB"; ?> </title>
-        <style type="text/css">
-
-            body {
-                margin: 0;
-                margin-left: auto;
-                margin-right: auto;
-                background-image: url(/images/b.png);
-                font-family: Arial, sans-serif;
-            }
-
-            form {
-                margin: 0;
-            }
-
-            .hidden {
-                display: none;
-            }
-
-            .main {
-                background: #ffffff;
-                padding: 0 0 28px 0;
-                box-shadow: 0 0 2px 2px #d7d7d7;
-                border-bottom: 1px solid #cccccc;
-                border-left: 1px solid #cccccc;
-                border-right: 1px solid #cccccc;
-            <?php
-            if (!empty($_SESSION['look'])) {
-                echo "    border-left: 2px solid #f79b44;\n";
-                echo "                border-right: 2px solid #f79b44;\n";
-            }
-            ?> 
-            }
-
-
-            .top {
-                background: #ebe9dc;
-                color: #825117;
-                padding: 0;
-                margin-left: auto;
-                margin-right: auto;
-                width: 990px;
-                font-size: 10pt;
-                text-align: left;
-                line-height: 1.2em;
-                border: 0px;
-                border-collapse:collapse;
-            }
-
-            .top-link {
-                text-decoration: none;
-                color: #323232;
-            }
-
-            .top-link:hover {
-                color: #174f82;
-            }
-
-            .top-link:active{
-                color: #ccc;
-            }
-
-            .top-selected-link {
-                text-decoration: none;
-                color: #174f82;
-            }
-
-            .top-logout {
-                text-decoration: none;
-                color: #e6e6e6;
-                padding: 0 0 0 2px;
-                border: noner;
-            }
-
-            .top-logout:hover {
-                color: white;
-            }
-
-            .nav-logo {
-                float:left;
-                height:104px;
-                width:161px;
-                margin: 0 0px 0 0;
-                border-bottom: 3px solid #d6d6d6;
-            }
-
-            .nav-lnk {
-                text-decoration: none;
-                color: #323232;
-                float:left;
-            }
-
-            .nav-lnk:active {
-                color: #ccc;
-            }
-
-            .nav-block {
-                margin: 0 0px 0 0;
-                height:104px;
-                width: 118px;
-                float:left;
-                cursor: pointer;
-                border-bottom: 3px solid #d6d6d6;
-
-            }
-
-            .nav-block:hover {
-                border-bottom: 3px solid #f79b44;
-            }
-
-            .nav-selected-block {
-                margin: 0;
-                color: #174f82;
-                height: 104px;
-                width: 118px;
-                float: left;
-                background: #fff;
-                border-bottom: 3px solid #777;
-                cursor: pointer;
-            }
-
-            .nav-selected-block:hover {
-                border-bottom: 3px solid #f79b44;
-            }
-
-            .nav-header {
-                padding: 16px 0 0 6px;
-                margin: 0;
-                letter-spacing: -1.0px;
-                font-size: 16pt;
-                font-weight: bold;
-            }
-
-            .nav-selected-header {
-                padding: 16px 0 0 6px;
-                margin: 0;
-                letter-spacing: -1.0px;
-                font-size: 16pt;
-                font-weight: bold;
-            }
-
-            .nav-counters {
-                padding: 6px 0 5px 6px;
-                margin: 0;
-                height: 58px;
-                line-height: 1.4em;
-                letter-spacing: 0.1px;
-                font-size: 9pt;
-                color: #555;
-            }
-
-            .sub-menu {
-                margin-left: auto;
-                margin-right: auto;
-                width: 990px;
-                height: 54px;
-                font-size: 10pt;
-                text-align: left;
-                vertical-align:top;
-                padding: 0px 10px 0px 0;
-                background: none repeat scroll 0% 0% white;
-            }
-
-            .select-controls {
-                color: #6A6A6A;
-                font-size: 8pt;
-                letter-spacing: 0.1em;
-                text-decoration: none;
-            }
-
-            .select-controls:hover {
-                text-decoration: underline;
-            }
-
-            .bottom {
-                background: #ebe9dc;
-                color: #555;
-                margin: 30 0 0 0;
-                padding: 4 20 8 0;
-                margin-left: auto;
-                margin-right: auto;
-                width: 990px;
-                font-size: 8pt;
-                text-align: center;
-                vertical-align:top;
-                line-height: 0.8em;
-                border-top: 4px solid #d6d4c9;
-            }
-
-            .bottom a:link {
-                font-size: 8pt;
-                text-decoration: none;
-                color: #555;
-            }
-
-            .bottom a:visited {
-                text-decoration: none;
-                color: #555;
-            }
-
-            .bottom a:hover {
-                text-decoration: underline;
-                color: #7fa1cb;
-            }
-
-            .vst {
-                padding: 0 8px 0 0;
-                margin: 0;
-                text-decoration: none;
-                color: #777;
-                font-size: 12pt;
-            }
-
-            .vst:hover {
-                text-decoration: underline;
-            }
-
-            .vst:active {
-                color: #174f82;
-            }
-
-            .data {
-                border-collapse:collapse;
-                margin-left: auto;
-                margin-right: auto;
-                width: 990px;
-                color: #e5a907;
-                font-size: 12pt;
-                text-align: left;
-                vertical-align:top;
-                margin: 0;
-                behavior:url("/css/csshover3.htc");
-            }
-
-            .data-row:hover {
-                margin: 0;
-                background-color: #f7f6ed;
-            }
-
-            .datarowhover {
-                margin: 0;
-                background-color: #f7f6ed;
-            }
-
-            .data-null {
-                margin: 0;
-                width: 990px;
-                height: 10px;
-                border-top:1px dotted #ccc;
-            }
-
-            .data-spacer {
-                margin: 0;
-                width: 990px;
-            }
-
-            .data-add {
-                margin: 0;
-                background-color: #f7f6ed;
-                border-bottom: 1px dotted #ccc;
-            }
-
-            .data-dotted {
-                text-align: left;
-                vertical-align:top;
-                border-top:1px dotted #ccc;
-                padding: 0 0 26px 0;
-                margin: 0;
-            }
-
-            .data-dotted td {
-                margin: 0;
-            }
-
-            .data-col1 {
-                text-align: left;
-                padding: 0;
-            }
-
-            .data-col2 {
-                text-align: left;
-                padding: 0;
-                overflow: hidden;
-            }
-
-            .data-col5 {
-                table-layout: fixed;
-                text-align: left;
-                padding: 0;
-                overflow: hidden;
-                white-space: nowrap;
-            }
-
-            .data-date {
-                padding: 0 0 0 18;
-                letter-spacing: 0.3em;
-                font-size: 8pt;
-                color: #6A6A6A
-            }
-
-            .data-active {
-                font-size: 8pt;
-                letter-spacing: 0.1em;
-                color: #81a64f;
-                padding: 0 0 13 18;
-            }
-
-            .data-suspended {
-                font-size: 8pt;
-                letter-spacing: 0.1em;
-                color: #de5543;
-                padding: 0 0 13 18;
-            }
-
-            .data-controls {
-                border-left: 1px solid #ccc;
-                font-size: 8pt;
-                padding: 2 5 0 5;
-                letter-spacing: 0.1em;
-                color: #174f82;
-                text-decoration: none;
-                cursor: pointer;
-            }
-
-            .data-controls:hover {
-                color: #ffffff;
-                background: #f79b44;
-            }
-
-            .data-controls:active {
-                color: #433832;
-                background: #f79b44;
-            }
-
-            .data-controls a:link {
-                color: #174f82;
-                text-decoration: none;
-            }
-
-            .data-controls a:visited {
-                color: #174f82;
-            }
-
-            .data-controls a:hover {
-                color: #ffffff;
-            }
-
-            .data-controls a:active {
-                color: #433832;
-            }
-
-            .data-controls img {
-                border: 0px;
-            }
-
-
-            .data-count {
-                background: #ebe9dc;
-                color: #555;
-                font-size: 8pt;
-                margin: 18px 0 0 0;
-                text-align:right;
-                padding: 0 16px 0 0;
-            }
-
-            .chart1 {
-                font-size: 10pt;
-            }
-
-            .chart2 {
-                color: #484243;
-                font-size: 8pt;
-            }
-
-            .username {
-                color: #323232;
-                font-size: 16pt;
-                line-height: 1.2em;
-            }
-
-            .domain {
-                color: #323232;
-                font-size: 16pt;
-                line-height: 0.8em;
-            }
-
-            .cron {
-                color: #323232;
-                font-size: 18px;
-            }
-
-            .log {
-                color: #323232;
-                font-size: 12pt;
-            }
-
-            .aliases {
-                font-size: 12pt;
-                color: #99a7af;
-                padding: 0 0 0 8px;
-            }
-
-            .nginx-ext {
-                color: black;
-                vertical-align:top;
-                font-size: 10pt;
-            }
-
-            .fullname {
-                font-size: 18px;
-                color: #99a7af;
-                padding: 0 0 0 8px;
-            }
-
-            .counter-name {
-                vertical-align:top;
-                line-height: 1.2em;
-                font-size: 10pt;
-                color: #484243;
-                color: #5c5455;
-            }
-
-            .cron-counter-name {
-                vertical-align:top;
-                line-height: 0.8em;
-                font-size: 8pt;
-                padding: 4 0 0 0;
-                color: #484243;
-                color: #5c5455;
-            }
-
-            .counter-value {
-                vertical-align:top;
-                line-height: 1.2em;
-                font-size: 10pt;
-                color: black;
-                padding: 0 0 0 4px;
-            }
-
-            .log-counter-value {
-                vertical-align:top;
-                font-size: 12pt;
-                color: #484243;
-            }
-
-            .cron-counter-value {
-                vertical-align:top;
-                line-height: 1.2em;
-                font-size: 12pt;
-                color: #484243;
-            }
-
-            .name {
-                font-size: 16pt;
-                color: #777;
-                padding: 0 0 0 10px;
-            }
-
-            .vst-ok {
-                font-size: 18px;
-                color: #62a358;
-                padding: 0 0 0 6px;
-            }
-
-            .vst-ok a{
-                color: #58934f;
-                text-decoration: none;
-            }
-
-            .vst-ok a:hover{
-                text-decoration: underline;
-            }
-
-            .vst-error {
-                font-size: 18px;
-                color: #de6c5d;
-                padding: 0 0 0 6px;
-            }
-
-            .vst-text {
-                color: #333;
-                font-size: 12pt;
-            }
-
-            .vst-textinput {
-                background-color: #FFFFFF;
-                border: 1px solid #999999;
-                border-radius: 3px 3px 3px 3px;
-                color: #555;
-                font-size: 18px;
-                padding: 6px;
-                width: 360px;
-                height: 120px;
-            }
-
-            .vst-textinput:hover {
-                border: 1px solid #f79b44;
-            }
-
-            .vst-textinput:disabled {
-                background-color: #F1F1F1;
-            }
-
-            .vst-input {
-                background-color: #FFFFFF;
-                border: 1px solid #999999;
-                border-radius: 3px 3px 3px 3px;
-                color: #555;
-                font-size: 14pt;
-                padding: 6px;
-                width: 360px;
-                height: 36px;
-            }
-
-            .vst-input:hover {
-                border: 1px solid #f79b44;
-            }
-
-            .vst-input:disabled {
-                background-color: #f1f1f1;
-            }
-
-            .vst-list {
-                padding: 4px;
-                font-size: 12pt;
-                color: #555;
-                border-radius: 3px 3px 3px 3px;
-                border: 1px solid #999999;
-            }
-
-            .vst-list:hover {
-                border: 1px solid #f79b44;
-            }
-
-            .vst-checkbox {
-                padding: 4px;
-                font-size: 12pt;
-            }
-
-            .vst-checkbox:hover {
-                border: 1px solid #f79b44;
-            }
-
-            button {
-                cursor: pointer;
-                color: #333;
-                background-color: #fafafa;
-                border: 1px solid #ACACAC;
-                border-radius: 3px 3px 3px 3px;
-                font-size: 12px;
-                padding: 2px 16px;
-                width: 108px;
-                height: 24px;
-            }
-
-            button:hover {
-                background-color: #f0f0f0;
-            }
-
-            button:active {
-                background-color: #e6e6e6;
-            }
-
-            .button {
-                filter:chroma(color=#000000);
-                cursor: pointer;
-                color: #333;
-                background-color: #fafafa;
-                border: 1px solid #ACACAC;
-                border-radius: 3px 3px 3px 3px;
-                font-size: 14px;
-                padding: 2px 16px;
-                width: 108px;
-                height: 32px;
-            }
-
-            .button:hover {
-                background-color: #f0f0f0;
-            }
-
-            .button:active {
-                background-color: #e6e6e6;
-            }
-
-            .genpass {
-                color: #34536a;
-                font-size: 8pt;
-                padding: 0 5px 0 8px;
-                letter-spacing: 0.1em;
-                text-decoration: underline;
-            }
-
-            .genpass:hover {
-                color: #7fa1cb;
-            }
-
-            .vst-advanced {
-                color: #34536a;
-                font-size: 10pt;
-                letter-spacing: 0.1em;
-                text-decoration: none;
-                border-bottom: 1px solid #f79b44;
-            }
-
-            .vst-advanced:hover {
-                color: #7fa1cb;
-            }
-
-
-            /* fixed header */
-            .fixed{
-                position: fixed;
-                border: none;
-                top: -3px;
-                border-bottom: 1px solid #ccc;
-                background-color: #fff;
-            }
-
-            *html .fixed{
-                position:absolute;
-                position:fixed; _position:absolute; top:0; _top:expression( eval(document.body.scrollTop) + 'px' );
-            }
-
-            #vstobjects{
-                padding-top: 188px;
-                width: 996px;
-                padding-left: 3px;
-                min-height: 370px;
-            }
-
-            .login {
-                margin: 80px 0 80px 0;
-                padding: 0;
-                border-top: 1px solid #cccccc;
-                border-left: 1px solid #cccccc;
-                border-right: 1px solid #cccccc;
-                background: #fff;
-                text-align: left;
-                vertical-align:top;
-                width: 500px;
-                box-shadow: 0 0 2px 2px #d7d7d7;
-            }
-
-            .login-box {
-                text-align: left;
-                vertical-align:top;
-                padding: 0 0 10px 40px;
-                color: #323232;
-            }
-
-            .login-bottom {
-                color: #ebe9dc;
-                text-align: right;
-                width: 500px;
-                height: 50px;
-                background: #ebe9dc;
-                padding: 0 8px 0 0;
-                margin: 0;
-            }
-
-            .vestacp{
-                font-size: 8pt;
-                color: #323232;
-                text-align: right;
-                padding: 20px 0 0 0;
-            }
-
-            .error {
-                font-size: 10pt;
-                color: #dE6c5d;
-            }
-
-        </style>
-        <!--[if IE]>
-            <style type="text/css">
-                html, body, div, span, applet, object, iframe {
-                    margin: 0;
-                    padding: 0;
-                    border: 0;
-                    font-size: 100%;
-                    font: inherit;
-                    vertical-align: baseline;
-                }
-
-                .fixed {
-                    margin-top: -3px;
-                }
-
-                .vst-advanced {
-                    text-decoration: underline;
-                }
-
-                #vstobjects{
-                    padding-top: 187px;
-                    min-height: 370px;
-                    height: auto !important;
-                    height: 370px;
-                    width: 996px;
-                }
-
-            </style>
-        <![endif]-->
-        <link type="text/css" href="/css/jquery-custom-dialogs.css" rel="stylesheet" />
-        <script type="text/javascript" src="/js/events.js"></script>
-        <script type="text/javascript" src="/js/jquery-1.7.2.min.js"></script>
-        <script type="text/javascript" src="/js/jquery-ui-1.8.20.custom.min.js"></script>
-        <script language="JavaScript">
-            var checked=false;
-            var frmname='';
-            function checkedAll(frmname) {
-                var valus= document.getElementById(frmname);
-                if (checked==false) {
-                    checked=true;
-                } else {
-                    checked = false;
-                }
-                for (var i =0; i < valus.elements.length; i++) {
-                    valus.elements[i].checked=checked;
-                }
-            }
-        </script>
-    </head>
-    <body>
+<html>
+    <head>
+        <link rel="icon" href="/images/favicon.ico" type="image/x-icon">
+        <title>Vesta - <?php echo "$TAB"; ?> </title>
+        <style type="text/css">
+
+            body {
+                margin: 0;
+                margin-left: auto;
+                margin-right: auto;
+                background-image: url(/images/b.png);
+                font-family: Arial, sans-serif;
+            }
+
+            form {
+                margin: 0;
+            }
+
+            .hidden {
+                display: none;
+            }
+
+            .main {
+                background: #ffffff;
+                padding: 0 0 28px 0;
+                box-shadow: 0 0 2px 2px #d7d7d7;
+                border-bottom: 1px solid #cccccc;
+                border-left: 1px solid #cccccc;
+                border-right: 1px solid #cccccc;
+            <?php
+            if (!empty($_SESSION['look'])) {
+                echo "    border-left: 2px solid #f79b44;\n";
+                echo "                border-right: 2px solid #f79b44;\n";
+            }
+            ?> 
+            }
+
+
+            .top {
+                background: #ebe9dc;
+                color: #825117;
+                padding: 0;
+                margin-left: auto;
+                margin-right: auto;
+                width: 990px;
+                font-size: 10pt;
+                text-align: left;
+                line-height: 1.2em;
+                border: 0px;
+                border-collapse:collapse;
+            }
+
+            .top-link {
+                text-decoration: none;
+                color: #323232;
+            }
+
+            .top-link:hover {
+                color: #174f82;
+            }
+
+            .top-link:active{
+                color: #ccc;
+            }
+
+            .top-selected-link {
+                text-decoration: none;
+                color: #174f82;
+            }
+
+            .top-logout {
+                text-decoration: none;
+                color: #e6e6e6;
+                padding: 0 0 0 2px;
+                border: noner;
+            }
+
+            .top-logout:hover {
+                color: white;
+            }
+
+            .nav-logo {
+                float:left;
+                height:105px;
+                width:161px;
+                margin: 0 0px 0 0;
+                border-bottom: 2px solid #d6d6d6;
+            }
+
+            .nav-lnk {
+                text-decoration: none;
+                color: #323232;
+                float:left;
+            }
+
+            .nav-lnk:active {
+                color: #ccc;
+            }
+
+            .nav-block {
+                margin: 0 0px 0 0;
+                height:105px;
+                width: 118px;
+                float:left;
+                cursor: pointer;
+                border-bottom: 2px solid #d6d6d6;
+
+            }
+
+            .nav-block:hover {
+                height:103px;
+                border-bottom: 4px solid #f79b44;
+            }
+
+            .nav-selected-block {
+                margin: 0;
+                color: #174f82;
+                height: 103px;
+                width: 118px;
+                float: left;
+                background: #fff;
+                border-bottom: 4px solid #777;
+                cursor: pointer;
+            }
+
+            .nav-selected-block:hover {
+                height:103px;
+                border-bottom: 4px solid #f79b44;
+            }
+
+            .nav-header {
+                padding: 16px 0 0 6px;
+                margin: 0;
+                letter-spacing: -1.0px;
+                font-size: 16pt;
+                font-weight: bold;
+            }
+
+            .nav-selected-header {
+                padding: 16px 0 0 6px;
+                margin: 0;
+                letter-spacing: -1.0px;
+                font-size: 16pt;
+                font-weight: bold;
+            }
+
+            .nav-counters {
+                padding: 6px 0 5px 6px;
+                margin: 0;
+                height: 58px;
+                line-height: 1.4em;
+                letter-spacing: 0.1px;
+                font-size: 9pt;
+                color: #555;
+            }
+
+            .sub-menu {
+                margin-left: auto;
+                margin-right: auto;
+                width: 990px;
+                height: 54px;
+                font-size: 10pt;
+                text-align: left;
+                vertical-align:top;
+                padding: 0px 10px 0px 0;
+                background: none repeat scroll 0% 0% white;
+            }
+
+            .select-controls {
+                color: #6A6A6A;
+                font-size: 8pt;
+                letter-spacing: 0.1em;
+                text-decoration: none;
+            }
+
+            .select-controls:hover {
+                text-decoration: underline;
+            }
+
+            .bottom {
+                background: #ebe9dc;
+                color: #555;
+                margin: 30 0 0 0;
+                padding: 4 20 8 0;
+                margin-left: auto;
+                margin-right: auto;
+                width: 990px;
+                font-size: 8pt;
+                text-align: center;
+                vertical-align:top;
+                line-height: 0.8em;
+                border-top: 4px solid #d6d4c9;
+            }
+
+            .bottom a:link {
+                font-size: 8pt;
+                text-decoration: none;
+                color: #555;
+            }
+
+            .bottom a:visited {
+                text-decoration: none;
+                color: #555;
+            }
+
+            .bottom a:hover {
+                text-decoration: underline;
+                color: #7fa1cb;
+            }
+
+            .vst {
+                padding: 0 8px 0 0;
+                margin: 0;
+                text-decoration: none;
+                color: #777;
+                font-size: 12pt;
+            }
+
+            .vst:hover {
+                text-decoration: underline;
+            }
+
+            .vst:active {
+                color: #174f82;
+            }
+
+            .data {
+                border-collapse:collapse;
+                margin-left: auto;
+                margin-right: auto;
+                width: 990px;
+                color: #e5a907;
+                font-size: 12pt;
+                text-align: left;
+                vertical-align:top;
+                margin: 0;
+                behavior:url("/css/csshover3.htc");
+            }
+
+            .data-row:hover {
+                margin: 0;
+                background-color: #f7f6ed;
+            }
+
+            .datarowhover {
+                margin: 0;
+                background-color: #f7f6ed;
+            }
+
+            .data-null {
+                margin: 0;
+                width: 990px;
+                height: 10px;
+                border-top:1px dotted #ccc;
+            }
+
+            .data-spacer {
+                margin: 0;
+                width: 990px;
+            }
+
+            .data-add {
+                margin: 0;
+                background-color: #f7f6ed;
+                border-bottom: 1px dotted #ccc;
+            }
+
+            .data-dotted {
+                text-align: left;
+                vertical-align:top;
+                border-top:1px dotted #ccc;
+                padding: 0 0 26px 0;
+                margin: 0;
+            }
+
+            .data-dotted td {
+                margin: 0;
+            }
+
+            .data-col1 {
+                text-align: left;
+                padding: 0;
+            }
+
+            .data-col2 {
+                text-align: left;
+                padding: 0;
+                overflow: hidden;
+            }
+
+            .data-col5 {
+                table-layout: fixed;
+                text-align: left;
+                padding: 0;
+                overflow: hidden;
+                white-space: nowrap;
+            }
+
+            .data-date {
+                padding: 0 0 0 18;
+                letter-spacing: 0.3em;
+                font-size: 8pt;
+                color: #6A6A6A
+            }
+
+            .data-active {
+                font-size: 8pt;
+                letter-spacing: 0.1em;
+                color: #81a64f;
+                padding: 0 0 13 18;
+            }
+
+            .data-suspended {
+                font-size: 8pt;
+                letter-spacing: 0.1em;
+                color: #de5543;
+                padding: 0 0 13 18;
+            }
+
+            .data-controls {
+                border-left: 1px solid #ccc;
+                font-size: 8pt;
+                padding: 2 5 0 5;
+                letter-spacing: 0.1em;
+                color: #174f82;
+                text-decoration: none;
+                cursor: pointer;
+            }
+
+            .data-controls:hover {
+                color: #ffffff;
+                background: #f79b44;
+            }
+
+            .data-controls:active {
+                color: #433832;
+                background: #f79b44;
+            }
+
+            .data-controls a:link {
+                color: #174f82;
+                text-decoration: none;
+            }
+
+            .data-controls a:visited {
+                color: #174f82;
+            }
+
+            .data-controls a:hover {
+                color: #ffffff;
+            }
+
+            .data-controls a:active {
+                color: #433832;
+            }
+
+            .data-controls img {
+                border: 0px;
+            }
+
+
+            .data-count {
+                background: #ebe9dc;
+                color: #555;
+                font-size: 8pt;
+                margin: 18px 0 0 0;
+                text-align:right;
+                padding: 0 16px 0 0;
+            }
+
+            .chart1 {
+                font-size: 10pt;
+            }
+
+            .chart2 {
+                color: #484243;
+                font-size: 8pt;
+            }
+
+            .username {
+                color: #323232;
+                font-size: 16pt;
+                line-height: 1.2em;
+            }
+
+            .domain {
+                color: #323232;
+                font-size: 16pt;
+                line-height: 0.8em;
+            }
+
+            .cron {
+                color: #323232;
+                font-size: 18px;
+            }
+
+            .log {
+                color: #323232;
+                font-size: 12pt;
+            }
+
+            .aliases {
+                font-size: 12pt;
+                color: #99a7af;
+                padding: 0 0 0 8px;
+            }
+
+            .nginx-ext {
+                color: black;
+                vertical-align:top;
+                font-size: 10pt;
+            }
+
+            .fullname {
+                font-size: 18px;
+                color: #99a7af;
+                padding: 0 0 0 8px;
+            }
+
+            .counter-name {
+                vertical-align:top;
+                line-height: 1.2em;
+                font-size: 10pt;
+                color: #484243;
+                color: #5c5455;
+            }
+
+            .cron-counter-name {
+                vertical-align:top;
+                line-height: 0.8em;
+                font-size: 8pt;
+                padding: 4 0 0 0;
+                color: #484243;
+                color: #5c5455;
+            }
+
+            .counter-value {
+                vertical-align:top;
+                line-height: 1.2em;
+                font-size: 10pt;
+                color: black;
+                padding: 0 0 0 4px;
+            }
+
+            .log-counter-value {
+                vertical-align:top;
+                font-size: 12pt;
+                color: #484243;
+            }
+
+            .cron-counter-value {
+                vertical-align:top;
+                line-height: 1.2em;
+                font-size: 12pt;
+                color: #484243;
+            }
+
+            .name {
+                font-size: 16pt;
+                color: #777;
+                padding: 0 0 0 10px;
+            }
+
+            .vst-ok {
+                font-size: 18px;
+                color: #62a358;
+                padding: 0 0 0 6px;
+            }
+
+            .vst-ok a{
+                color: #58934f;
+                text-decoration: none;
+            }
+
+            .vst-ok a:hover{
+                text-decoration: underline;
+            }
+
+            .vst-error {
+                font-size: 18px;
+                color: #de6c5d;
+                padding: 0 0 0 6px;
+            }
+
+            .vst-text {
+                color: #333;
+                font-size: 12pt;
+            }
+
+            .vst-textinput {
+                background-color: #FFFFFF;
+                border: 1px solid #999999;
+                border-radius: 3px 3px 3px 3px;
+                color: #555;
+                font-size: 18px;
+                padding: 6px;
+                width: 360px;
+                height: 120px;
+            }
+
+            .vst-textinput:hover {
+                border: 1px solid #f79b44;
+            }
+
+            .vst-textinput:disabled {
+                background-color: #F1F1F1;
+            }
+
+            .vst-input {
+                background-color: #FFFFFF;
+                border: 1px solid #999999;
+                border-radius: 3px 3px 3px 3px;
+                color: #555;
+                font-size: 14pt;
+                padding: 6px;
+                width: 360px;
+                height: 36px;
+            }
+
+            .vst-input:hover {
+                border: 1px solid #f79b44;
+            }
+
+            .vst-input:disabled {
+                background-color: #f1f1f1;
+            }
+
+            .vst-list {
+                padding: 4px;
+                font-size: 12pt;
+                color: #555;
+                border-radius: 3px 3px 3px 3px;
+                border: 1px solid #999999;
+            }
+
+            .vst-list:hover {
+                border: 1px solid #f79b44;
+            }
+
+            .vst-checkbox {
+                padding: 4px;
+                font-size: 12pt;
+            }
+
+            .vst-checkbox:hover {
+                border: 1px solid #f79b44;
+            }
+
+            button {
+                cursor: pointer;
+                color: #333;
+                background-color: #fafafa;
+                border: 1px solid #ACACAC;
+                border-radius: 3px 3px 3px 3px;
+                font-size: 12px;
+                padding: 2px 16px;
+                width: 108px;
+                height: 24px;
+            }
+
+            button:hover {
+                background-color: #f0f0f0;
+            }
+
+            button:active {
+                background-color: #e6e6e6;
+            }
+
+            .button {
+                filter:chroma(color=#000000);
+                cursor: pointer;
+                color: #333;
+                background-color: #fafafa;
+                border: 1px solid #ACACAC;
+                border-radius: 3px 3px 3px 3px;
+                font-size: 14px;
+                padding: 2px 16px;
+                width: 108px;
+                height: 32px;
+            }
+
+            .button:hover {
+                background-color: #f0f0f0;
+            }
+
+            .button:active {
+                background-color: #e6e6e6;
+            }
+
+            .genpass {
+                color: #34536a;
+                font-size: 8pt;
+                padding: 0 5px 0 8px;
+                letter-spacing: 0.1em;
+                text-decoration: underline;
+            }
+
+            .genpass:hover {
+                color: #7fa1cb;
+            }
+
+            .vst-advanced {
+                color: #34536a;
+                font-size: 10pt;
+                letter-spacing: 0.1em;
+                text-decoration: none;
+                border-bottom: 1px solid #f79b44;
+            }
+
+            .vst-advanced:hover {
+                color: #7fa1cb;
+            }
+
+
+            /* fixed header */
+            .fixed{
+                position: fixed;
+                border: none;
+                top: -3px;
+                border-bottom: 1px solid #ccc;
+                background-color: #fff;
+            }
+
+            *html .fixed{
+                position:absolute;
+                position:fixed; _position:absolute; top:0; _top:expression( eval(document.body.scrollTop) + 'px' );
+            }
+
+            #vstobjects{
+                padding-top: 188px;
+                width: 996px;
+                padding-left: 3px;
+                min-height: 370px;
+            }
+
+            .login {
+                margin: 80px 0 80px 0;
+                padding: 0;
+                border-top: 1px solid #cccccc;
+                border-left: 1px solid #cccccc;
+                border-right: 1px solid #cccccc;
+                background: #fff;
+                text-align: left;
+                vertical-align:top;
+                width: 500px;
+                box-shadow: 0 0 2px 2px #d7d7d7;
+            }
+
+            .login-box {
+                text-align: left;
+                vertical-align:top;
+                padding: 0 0 10px 40px;
+                color: #323232;
+            }
+
+            .login-bottom {
+                color: #ebe9dc;
+                text-align: right;
+                width: 500px;
+                height: 50px;
+                background: #ebe9dc;
+                padding: 0 8px 0 0;
+                margin: 0;
+            }
+
+            .vestacp{
+                font-size: 8pt;
+                color: #323232;
+                text-align: right;
+                padding: 20px 0 0 0;
+            }
+
+            .error {
+                font-size: 10pt;
+                color: #dE6c5d;
+            }
+
+        </style>
+        <!--[if IE]>
+            <style type="text/css">
+                html, body, div, span, applet, object, iframe {
+                    margin: 0;
+                    padding: 0;
+                    border: 0;
+                    font-size: 100%;
+                    font: inherit;
+                    vertical-align: baseline;
+                }
+
+                .fixed {
+                    margin-top: -3px;
+                }
+
+                .vst-advanced {
+                    text-decoration: underline;
+                }
+
+                #vstobjects{
+                    padding-top: 187px;
+                    min-height: 370px;
+                    height: auto !important;
+                    height: 370px;
+                    width: 996px;
+                }
+
+                .nav-block {
+                    margin: 0 0px 0 0;
+                    height:105px;
+                    width: 118px;
+                    float:left;
+                    cursor: pointer;
+                    border-bottom: 2px solid #d6d6d6;
+                }
+
+                .nav-block:hover {
+                    height:105px;
+                    border-bottom: 4px solid #f79b44;
+                }
+
+                .nav-selected-block {
+                    margin: 0;
+                    color: #174f82;
+                    height: 105px;
+                    width: 118px;
+                    float: left;
+                    background: #fff;
+                    border-bottom: 4px solid #777;
+                    cursor: pointer;
+                }
+
+                .nav-selected-block:hover {
+                    height:105px;
+                    border-bottom: 4px solid #f79b44;
+                }
+
+
+            </style>
+        <![endif]-->
+        <link type="text/css" href="/css/jquery-custom-dialogs.css" rel="stylesheet" />
+        <script type="text/javascript" src="/js/events.js"></script>
+        <script type="text/javascript" src="/js/jquery-1.7.2.min.js"></script>
+        <script type="text/javascript" src="/js/jquery-ui-1.8.20.custom.min.js"></script>
+        <script language="JavaScript">
+            var checked=false;
+            var frmname='';
+            function checkedAll(frmname) {
+                var valus= document.getElementById(frmname);
+                if (checked==false) {
+                    checked=true;
+                } else {
+                    checked = false;
+                }
+                for (var i =0; i < valus.elements.length; i++) {
+                    valus.elements[i].checked=checked;
+                }
+            }
+        </script>
+    </head>
+    <body>