• 主机管理+堡垒机系统开发:前端显示审计日志(九)


    一、目录结构

    二、实现代码

    1、views

    from django.shortcuts import render,redirect,HttpResponse
    from django.contrib.auth.decorators import login_required
    from django.contrib.auth import authenticate,logout,login
    from  django.conf import settings
    import os,re,json
    
    from backend import audit
    # Create your views here.
    
    def json_date_handler(obj):
        if hasattr(obj, 'isoformat'):
            return obj.strftime("%Y-%m-%d %T")
    
    
    
    @login_required
    def dashboard(request):
        return render(request,'index.html')
    
    
    def acc_login(request):
    
        error_msg = ''
    
        if request.method == "POST":
            username = request.POST.get('username')
            password = request.POST.get('password')
            user = authenticate(username=username,password=password)
            if user:
                login(request,user)
    
                return redirect("/")
    
            else:
                error_msg = "Wrong username or password!"
        return render(request,"login.html",{'error_msg':error_msg})
    
    
    def acc_logout(request):
    
        logout(request)
    
        return redirect("/login/")
    
    
    
    @login_required
    def webssh(request):
        return render(request,'web_ssh.html')
    
    @login_required
    def user_audit(request):
    
        log_dirs = os.listdir(settings.AUDIT_LOG_DIR)
    
    
        return render(request,'user_audit.html',locals())
    
    
    @login_required
    def audit_log_date(request,log_date):
        log_date_path = "%s/%s" %(settings.AUDIT_LOG_DIR,log_date)
        log_file_dirs = os.listdir(log_date_path)
        session_ids = [re.search("d+",i).group() for i in log_file_dirs ]
    
        session_objs = models.Session.objects.filter(id__in=session_ids)
    
        return render(request, 'user_audit_file_list.html', locals())
    

     2、url

    from django.conf.urls import url
    from django.contrib import admin
    from web import views
    
    urlpatterns = [
        url(r'^admin/', admin.site.urls),
        url(r'^$', views.dashboard),
        url(r'^user_audit/$', views.user_audit,name="user_audit"),
        url(r'^audit_log/(w+-w+-w+)/$', views.audit_log_date,name="audit_log_date"),
        url(r'^audit_log/(w+-w+-w+)/(d+)/$', views.audit_log_detail,name="audit_log_detail"),
        url(r'^login/$', views.acc_login),
        url(r'^logout/$', views.acc_logout,name="logout"),
    
    ]
    

    3、settings

    STATICFILES_DIRS = (
        os.path.join(BASE_DIR,'statics'),
    )
    

    4、base.html

      1 <!DOCTYPE html>
      2 <html lang="en">
      3 <head>
      4     <meta charset="utf-8">
      5     <meta name="viewport" content="width=device-width, initial-scale=1.0">
      6     <title>CrazyEye | 智能堡垒机</title>
      7 
      8 
      9     <!--STYLESHEET-->
     10     <!--=================================================-->
     11 
     12 
     13     <!--Bootstrap Stylesheet [ REQUIRED ]-->
     14     <link href="/static/css/bootstrap.min.css" rel="stylesheet">
     15 
     16 
     17     <!--Nifty Stylesheet [ REQUIRED ]-->
     18     <link href="/static/css/nifty.min.css" rel="stylesheet">
     19 
     20 
     21     <!--Font Awesome [ OPTIONAL ]-->
     22     <link href="/static/css/font-awesome.min.css" rel="stylesheet">
     23 
     24 
     25     
     26 
     27     <!--SCRIPT-->
     28     <!--=================================================-->
     29 
     30     <!--Page Load Progress Bar [ OPTIONAL ]-->
     31     <link href="/static/css/pace.min.css" rel="stylesheet">
     32     <script src="/static/js/pace.min.js"></script>
     33 
     34 
     35     
     36     <!--
     37 
     38     REQUIRED
     39     You must include this in your project.
     40 
     41     RECOMMENDED
     42     This category must be included but you may modify which plugins or components which should be included in your project.
     43 
     44     OPTIONAL
     45     Optional plugins. You may choose whether to include it in your project or not.
     46 
     47 
     48     Detailed information and more samples can be found in the document.
     49 
     50     -->
     51         
     52 
     53 </head>
     54 
     55 <!--TIPS-->
     56 <!--You may remove all ID or Class names which contain "demo-", they are only used for demonstration. -->
     57 
     58 <body>
     59     {% block body %}body content{% endblock %}
     60 
     61 
     62     
     63     
     64     <!--JAVASCRIPT-->
     65     <!--=================================================-->
     66 
     67     <!--jQuery [ REQUIRED ]-->
     68     <script src="/static/js/jquery-2.1.1.min.js"></script>
     69 
     70 
     71     <!--BootstrapJS [ RECOMMENDED ]-->
     72     <script src="/static/js/bootstrap.min.js"></script>
     73 
     74 
     75     <!--Fast Click [ OPTIONAL ]-->
     76     <script src="/static/js/fastclick.min.js"></script>
     77 
     78     
     79     <!--Nifty Admin [ RECOMMENDED ]-->
     80     <script src="/static/js/nifty.min.js"></script>
     81 
     82     
     83     <!--
     84 
     85     REQUIRED
     86     You must include this in your project.
     87 
     88     RECOMMENDED
     89     This category must be included but you may modify which plugins or components which should be included in your project.
     90 
     91     OPTIONAL
     92     Optional plugins. You may choose whether to include it in your project or not.
     93 
     94 
     95     Detailed information and more samples can be found in the document.
     96 
     97     -->
     98         
     99 
    100 </body>
    101 </html>
    base

    5、index.html

      1 {% extends 'base.html' %}
      2 
      3 {% block body %}
      4     <div id="container" class="effect mainnav-lg  mainnav-fixed navbar-fixed footer-fixed">
      5 
      6         <!--NAVBAR-->
      7         <!--===================================================-->
      8         <header id="navbar">
      9             <div id="navbar-container" class="boxed">
     10 
     11                 <!--Brand logo & name-->
     12                 <!--================================-->
     13                 <div class="navbar-header">
     14                     <a href="index.html" class="navbar-brand">
     15                         <img src="/static/img/logo.png" alt="Nifty Logo" class="brand-icon">
     16                         <div class="brand-title">
     17                             <span class="brand-text">CrazyEye</span>
     18                         </div>
     19                     </a>
     20                 </div>
     21                 <!--================================-->
     22                 <!--End brand logo & name-->
     23 
     24 
     25                 <!--Navbar Dropdown-->
     26                 <!--================================-->
     27                 <div class="navbar-content clearfix">
     28                     <ul class="nav navbar-top-links pull-left">
     29 
     30                         <!--Navigation toogle button-->
     31                         <!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
     32                         <li class="tgl-menu-btn">
     33                             <a class="mainnav-toggle" href="#">
     34                                 <i class="fa fa-navicon fa-lg"></i>
     35                             </a>
     36                         </li>
     37                         <!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
     38                         <!--End Navigation toogle button-->
     39 
     40 
     41                         <!--Messages Dropdown-->
     42                         <!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
     43                         <li class="dropdown">
     44                             <a href="#" data-toggle="dropdown" class="dropdown-toggle">
     45                                 <i class="fa fa-envelope fa-lg"></i>
     46                                 <span class="badge badge-header badge-warning">9</span>
     47                             </a>
     48 
     49                             <!--Message dropdown menu-->
     50                             <div class="dropdown-menu dropdown-menu-md with-arrow">
     51                                 <div class="pad-all bord-btm">
     52                                     <p class="text-lg text-muted text-thin mar-no">You have 3 messages.</p>
     53                                 </div>
     54                                 <div class="nano scrollable">
     55                                     <div class="nano-content">
     56                                         <ul class="head-list">
     57 
     58                                             <!-- Dropdown list-->
     59                                             <li>
     60                                                 <a href="#" class="media">
     61                                                     <div class="media-left">
     62                                                         <img src="/static/img/av2.png" alt="Profile Picture" class="img-circle img-sm">
     63                                                     </div>
     64                                                     <div class="media-body">
     65                                                         <div class="text-nowrap">Andy sent you a message</div>
     66                                                         <small class="text-muted">15 minutes ago</small>
     67                                                     </div>
     68                                                 </a>
     69                                             </li>
     70 
     71                                             <!-- Dropdown list-->
     72                                             <li>
     73                                                 <a href="#" class="media">
     74                                                     <div class="media-left">
     75                                                         <img src="/static/img/av4.png" alt="Profile Picture" class="img-circle img-sm">
     76                                                     </div>
     77                                                     <div class="media-body">
     78                                                         <div class="text-nowrap">Lucy sent you a message</div>
     79                                                         <small class="text-muted">30 minutes ago</small>
     80                                                     </div>
     81                                                 </a>
     82                                             </li>
     83                                         </ul>
     84                                     </div>
     85                                 </div>
     86 
     87                                 <!--Dropdown footer-->
     88                                 <div class="pad-all bord-top">
     89                                     <a href="#" class="btn-link text-dark box-block">
     90                                         <i class="fa fa-angle-right fa-lg pull-right"></i>Show All Messages
     91                                     </a>
     92                                 </div>
     93                             </div>
     94                         </li>
     95                         <!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
     96                         <!--End message dropdown-->
     97 
     98 
     99 
    100 
    101                         <!--Notification dropdown-->
    102                         <!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
    103                         <li class="dropdown">
    104                             <a href="#" data-toggle="dropdown" class="dropdown-toggle">
    105                                 <i class="fa fa-bell fa-lg"></i>
    106                                 <span class="badge badge-header badge-danger">5</span>
    107                             </a>
    108 
    109                             <!--Notification dropdown menu-->
    110                             <div class="dropdown-menu dropdown-menu-md with-arrow">
    111                                 <div class="pad-all bord-btm">
    112                                     <p class="text-lg text-muted text-thin mar-no">You have 3 messages.</p>
    113                                 </div>
    114                                 <div class="nano scrollable">
    115                                     <div class="nano-content">
    116                                         <ul class="head-list">
    117 
    118                                             <!-- Dropdown list-->
    119                                             <li>
    120                                                 <a href="#">
    121                                                     <div class="clearfix">
    122                                                         <p class="pull-left">Progressbar</p>
    123                                                         <p class="pull-right">70%</p>
    124                                                     </div>
    125                                                     <div class="progress progress-sm">
    126                                                         <div style=" 70%;" class="progress-bar">
    127                                                             <span class="sr-only">70% Complete</span>
    128                                                         </div>
    129                                                     </div>
    130                                                 </a>
    131                                             </li>
    132 
    133                                             <!-- Dropdown list-->
    134                                             <li>
    135                                                 <a href="#" class="media">
    136                                                     <div class="media-left">
    137                                                         <span class="icon-wrap icon-circle bg-primary">
    138                                                             <i class="fa fa-comment fa-lg"></i>
    139                                                         </span>
    140                                                     </div>
    141                                                     <div class="media-body">
    142                                                         <div class="text-nowrap">Circle Icon</div>
    143                                                         <small class="text-muted">15 minutes ago</small>
    144                                                     </div>
    145                                                 </a>
    146                                             </li>
    147 
    148                                             <!-- Dropdown list-->
    149                                             <li>
    150                                                 <a href="#" class="media">
    151                                             <span class="badge badge-success pull-right">90%</span>
    152                                                     <div class="media-left">
    153                                                         <span class="icon-wrap icon-circle bg-danger">
    154                                                             <i class="fa fa-hdd-o fa-lg"></i>
    155                                                         </span>
    156                                                     </div>
    157                                                     <div class="media-body">
    158                                                         <div class="text-nowrap">Circle icon with badge</div>
    159                                                         <small class="text-muted">50 minutes ago</small>
    160                                                     </div>
    161                                                 </a>
    162                                             </li>
    163 
    164                                             <!-- Dropdown list-->
    165                                             <li>
    166                                                 <a href="#" class="media">
    167                                                     <div class="media-left">
    168                                                         <span class="icon-wrap bg-info">
    169                                                             <i class="fa fa-file-word-o fa-lg"></i>
    170                                                         </span>
    171                                                     </div>
    172                                                     <div class="media-body">
    173                                                         <div class="text-nowrap">Square Icon</div>
    174                                                         <small class="text-muted">Last Update 8 hours ago</small>
    175                                                     </div>
    176                                                 </a>
    177                                             </li>
    178 
    179                                             <!-- Dropdown list-->
    180                                             <li>
    181                                                 <a href="#" class="media">
    182                                             <span class="label label-danger pull-right">New</span>
    183                                                     <div class="media-left">
    184                                                         <span class="icon-wrap bg-purple">
    185                                                             <i class="fa fa-comment fa-lg"></i>
    186                                                         </span>
    187                                                     </div>
    188                                                     <div class="media-body">
    189                                                         <div class="text-nowrap">Square icon with label</div>
    190                                                         <small class="text-muted">Last Update 8 hours ago</small>
    191                                                     </div>
    192                                                 </a>
    193                                             </li>
    194                                         </ul>
    195                                     </div>
    196                                 </div>
    197 
    198                                 <!--Dropdown footer-->
    199                                 <div class="pad-all bord-top">
    200                                     <a href="#" class="btn-link text-dark box-block">
    201                                         <i class="fa fa-angle-right fa-lg pull-right"></i>Show All Notifications
    202                                     </a>
    203                                 </div>
    204                             </div>
    205                         </li>
    206                         <!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
    207                         <!--End notifications dropdown-->
    208 
    209 
    210 
    211                         <!--Mega dropdown-->
    212                         <!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
    213                         <li class="mega-dropdown">
    214                             <a href="#" class="mega-dropdown-toggle">
    215                                 <i class="fa fa-th-large fa-lg"></i>
    216                             </a>
    217                             <div class="dropdown-menu mega-dropdown-menu">
    218                                 <div class="clearfix">
    219                                     <div class="col-sm-12 col-md-3">
    220 
    221                                         <!--Mega menu widget-->
    222                                         <div class="text-center bg-purple pad-all">
    223                                             <h3 class="text-thin mar-no">Weekend shopping</h3>
    224                                             <div class="pad-ver box-inline">
    225                                                 <span class="icon-wrap icon-wrap-lg icon-circle bg-trans-light">
    226                                                     <i class="fa fa-shopping-cart fa-4x"></i>
    227                                                 </span>
    228                                             </div>
    229                                             <p class="pad-btm">
    230                                                 Members get <span class="text-lg text-bold">50%</span> more points. Lorem ipsum dolor sit amet!
    231                                             </p>
    232                                             <a href="#" class="btn btn-purple">Learn More...</a>
    233                                         </div>
    234 
    235                                     </div>
    236                                     <div class="col-sm-4 col-md-3">
    237 
    238                                         <!--Mega menu list-->
    239                                         <ul class="list-unstyled">
    240                                             <li class="dropdown-header">Pages</li>
    241                                             <li><a href="#">Profile</a></li>
    242                                             <li><a href="#">Search Result</a></li>
    243                                             <li><a href="#">FAQ</a></li>
    244                                             <li><a href="#">Sreen Lock</a></li>
    245                                             <li><a href="#" class="disabled">Disabled</a></li>
    246                                             <li class="divider"></li>
    247                                             <li class="dropdown-header">Icons</li>
    248                                             <li><a href="#"><span class="pull-right badge badge-purple">479</span> Font Awesome</a></li>
    249                                             <li><a href="#">Skycons</a></li>
    250                                         </ul>
    251 
    252                                     </div>
    253                                     <div class="col-sm-4 col-md-3">
    254 
    255                                         <!--Mega menu list-->
    256                                         <ul class="list-unstyled">
    257                                             <li class="dropdown-header">Mailbox</li>
    258                                             <li><a href="#"><span class="pull-right label label-danger">Hot</span>Indox</a></li>
    259                                             <li><a href="#">Read Message</a></li>
    260                                             <li><a href="#">Compose</a></li>
    261                                             <li class="divider"></li>
    262                                             <li class="dropdown-header">Featured</li>
    263                                             <li><a href="#">Smart navigation</a></li>
    264                                             <li><a href="#"><span class="pull-right badge badge-success">6</span>Exclusive plugins</a></li>
    265                                             <li><a href="#">Lot of themes</a></li>
    266                                             <li><a href="#">Transition effects</a></li>
    267                                         </ul>
    268 
    269                                     </div>
    270                                     <div class="col-sm-4 col-md-3">
    271 
    272                                         <!--Mega menu list-->
    273                                         <ul class="list-unstyled">
    274                                             <li class="dropdown-header">Components</li>
    275                                             <li><a href="#">Tables</a></li>
    276                                             <li><a href="#">Charts</a></li>
    277                                             <li><a href="#">Forms</a></li>
    278                                             <li class="divider"></li>
    279                                             <li>
    280                                                 <form role="form" class="form">
    281                                                     <div class="form-group">
    282                                                         <label class="dropdown-header" for="demo-megamenu-input">Newsletter</label>
    283                                                         <input id="demo-megamenu-input" type="email" placeholder="Enter email" class="form-control">
    284                                                     </div>
    285                                                     <button class="btn btn-primary btn-block" type="submit">Submit</button>
    286                                                 </form>
    287                                             </li>
    288                                         </ul>
    289                                     </div>
    290                                 </div>
    291                             </div>
    292                         </li>
    293                         <!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
    294                         <!--End mega dropdown-->
    295 
    296                     </ul>
    297                     <ul class="nav navbar-top-links pull-right">
    298 
    299                         <!--Language selector-->
    300                         <!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
    301                         <li class="dropdown">
    302                             <a class="lang-selector dropdown-toggle" href="#" data-toggle="dropdown">
    303                                 <span class="lang-selected">
    304                                     <img class="lang-flag" src="/static/img/flags/united-kingdom.png" alt="English">
    305                                     <span class="lang-id">EN</span>
    306                                     <span class="lang-name">English</span>
    307                                 </span>
    308                             </a>
    309 
    310                             <!--Language selector menu-->
    311                             <ul class="head-list dropdown-menu with-arrow">
    312                                 <li>
    313                                     <!--English-->
    314                                     <a href="#" class="active">
    315                                         <img class="lang-flag" src="/static/img/flags/united-kingdom.png" alt="English">
    316                                         <span class="lang-id">EN</span>
    317                                         <span class="lang-name">English</span>
    318                                     </a>
    319                                 </li>
    320                                 <li>
    321                                     <!--France-->
    322                                     <a href="#">
    323                                         <img class="lang-flag" src="/static/img/flags/france.png" alt="France">
    324                                         <span class="lang-id">FR</span>
    325                                         <span class="lang-name">Fran&ccedil;ais</span>
    326                                     </a>
    327                                 </li>
    328                                 <li>
    329                                     <!--Germany-->
    330                                     <a href="#">
    331                                         <img class="lang-flag" src="/static/img/flags/germany.png" alt="Germany">
    332                                         <span class="lang-id">DE</span>
    333                                         <span class="lang-name">Deutsch</span>
    334                                     </a>
    335                                 </li>
    336                                 <li>
    337                                     <!--Italy-->
    338                                     <a href="#">
    339                                         <img class="lang-flag" src="/static/img/flags/italy.png" alt="Italy">
    340                                         <span class="lang-id">IT</span>
    341                                         <span class="lang-name">Italiano</span>
    342                                     </a>
    343                                 </li>
    344                                 <li>
    345                                     <!--Spain-->
    346                                     <a href="#">
    347                                         <img class="lang-flag" src="/static/img/flags/spain.png" alt="Spain">
    348                                         <span class="lang-id">ES</span>
    349                                         <span class="lang-name">Espa&ntilde;ol</span>
    350                                     </a>
    351                                 </li>
    352                             </ul>
    353                         </li>
    354                         <!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
    355                         <!--End language selector-->
    356 
    357 
    358 
    359                         <!--User dropdown-->
    360                         <!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
    361                         <li id="dropdown-user" class="dropdown">
    362                             <a href="#" data-toggle="dropdown" class="dropdown-toggle text-right">
    363                                 <span class="pull-right">
    364                                     <img class="img-circle img-user media-object" src="/static/img/av1.png" alt="Profile Picture">
    365                                 </span>
    366                                 <div class="username hidden-xs">{{ request.user.name }}</div>
    367                             </a>
    368 
    369 
    370                             <div class="dropdown-menu dropdown-menu-md dropdown-menu-right with-arrow panel-default">
    371 
    372                                 <!-- Dropdown heading  -->
    373                                 <div class="pad-all bord-btm">
    374                                     <p class="text-lg text-muted text-thin mar-btm">750Gb of 1,000Gb Used</p>
    375                                     <div class="progress progress-sm">
    376                                         <div class="progress-bar" style=" 70%;">
    377                                             <span class="sr-only">70%</span>
    378                                         </div>
    379                                     </div>
    380                                 </div>
    381 
    382 
    383                                 <!-- User dropdown menu -->
    384                                 <ul class="head-list">
    385                                     <li>
    386                                         <a href="#">
    387                                             <i class="fa fa-user fa-fw fa-lg"></i> Profile
    388                                         </a>
    389                                     </li>
    390                                     <li>
    391                                         <a href="#">
    392                                             <span class="badge badge-danger pull-right">9</span>
    393                                             <i class="fa fa-envelope fa-fw fa-lg"></i> Messages
    394                                         </a>
    395                                     </li>
    396                                     <li>
    397                                         <a href="#">
    398                                             <span class="label label-success pull-right">New</span>
    399                                             <i class="fa fa-gear fa-fw fa-lg"></i> Settings
    400                                         </a>
    401                                     </li>
    402                                 </ul>
    403 
    404                                 <!-- Dropdown footer -->
    405                                 <div class="pad-all text-right">
    406                                     <a href="{% url 'logout' %}" class="btn btn-primary">
    407                                         <i class="fa fa-sign-out fa-fw"></i> Logout
    408                                     </a>
    409                                 </div>
    410                             </div>
    411                         </li>
    412                         <!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
    413                         <!--End user dropdown-->
    414 
    415                     </ul>
    416                 </div>
    417                 <!--================================-->
    418                 <!--End Navbar Dropdown-->
    419 
    420             </div>
    421         </header>
    422         <!--===================================================-->
    423         <!--END NAVBAR-->
    424 
    425         <div class="boxed">
    426 
    427             <!--CONTENT CONTAINER-->
    428             <!--===================================================-->
    429             <div id="content-container">
    430 
    431                 <!--Page Title-->
    432                 <!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
    433                 <div id="page-title">
    434                     <h1 class="page-header text-overflow">{% block page-title %}Page Title{% endblock %}</h1>
    435 
    436                     <!--Searchbox-->
    437                     <div class="searchbox">
    438                         <div class="input-group custom-search-form">
    439                             <input type="text" class="form-control" placeholder="Search..">
    440                             <span class="input-group-btn">
    441                                 <button class="text-muted" type="button"><i class="fa fa-search"></i></button>
    442                             </span>
    443                         </div>
    444                     </div>
    445                 </div>
    446                 <!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
    447                 <!--End page title-->
    448 
    449 
    450                 <!--Breadcrumb-->
    451                 <!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
    452                 <ol class="breadcrumb">
    453                     <li><a href="#">Home</a></li>
    454                     <li><a href="#">Library</a></li>
    455                     <li class="active">Data</li>
    456                 </ol>
    457                 <!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
    458                 <!--End breadcrumb-->
    459 
    460 
    461 
    462 
    463                 <!--Page content-->
    464                 <!--===================================================-->
    465 
    466                     <div id="page-content">
    467                         {% block page-content %}
    468                             your page content
    469                         {% endblock %}
    470                     </div>
    471 
    472 
    473 
    474 
    475             </div>
    476             <!--===================================================-->
    477             <!--END CONTENT CONTAINER-->
    478 
    479 
    480 
    481             <!--MAIN NAVIGATION-->
    482             <!--===================================================-->
    483             <nav id="mainnav-container">
    484                 <div id="mainnav">
    485 
    486                     <!--Shortcut buttons-->
    487                     <!--================================-->
    488                     <div id="mainnav-shortcut">
    489                         <ul class="list-unstyled">
    490                             <li class="col-xs-4" data-content="Shortcut 1">
    491                                 <a class="shortcut-grid" href="#">
    492                                     <i class="fa fa-car"></i>
    493                                 </a>
    494                             </li>
    495                             <li class="col-xs-4" data-content="Shortcut 2">
    496                                 <a class="shortcut-grid" href="#">
    497                                     <i class="fa fa-taxi"></i>
    498                                 </a>
    499                             </li>
    500                             <li class="col-xs-4" data-content="Shortcut 3">
    501                                 <a class="shortcut-grid" href="#">
    502                                     <i class="fa fa-bus"></i>
    503                                 </a>
    504                             </li>
    505                         </ul>
    506                     </div>
    507                     <!--================================-->
    508                     <!--End shortcut buttons-->
    509 
    510 
    511                     <!--Menu-->
    512                     <!--================================-->
    513                     <div id="mainnav-menu-wrap">
    514                         <div class="nano">
    515                             <div class="nano-content">
    516                                 <ul id="mainnav-menu" class="list-group">
    517 
    518                                     <!--Category name-->
    519                                     <li class="list-header">Link List</li>
    520 
    521                                     <!--Menu list item-->
    522                                     <li class="active-link">
    523                                         <a href="#">
    524                                             <i class="fa fa-plane"></i>
    525                                             <span class="menu-title">首页</span>
    526                                         </a>
    527                                     </li>
    528 
    529                                     <!--Menu list item-->
    530                                     <li>
    531                                         <a href="{% url 'webssh' %}">
    532                                             <i class="fa fa-dashboard"></i>
    533                                             <span class="menu-title">
    534                                                 <strong>WEB SSH</strong>
    535                                             </span>
    536                                         </a>
    537                                     </li>
    538 
    539                                     <!--Menu list item-->
    540                                     <li>
    541                                         <a href="{% url 'user_audit' %}">
    542                                             <i class="fa fa-tag"></i>
    543                                             <span class="menu-title">
    544                                                 审计日志
    545                                                 <span class="label label-success pull-right">New</span>
    546                                             </span>
    547                                         </a>
    548                                     </li>
    549 
    550                                     <!--Menu list item-->
    551 
    552 
    553                                     <li class="list-divider"></li>
    554 
    555                                     <!--Category name-->
    556                                     <li class="list-header">Submenus</li>
    557 
    558                                     <!--Menu list item-->
    559                                     <li class="active-sub">
    560                                         <a href="#">
    561                                             <i class="fa fa-th"></i>
    562                                             <span class="menu-title">主机管理</span>
    563                                             <i class="arrow"></i>
    564                                         </a>
    565 
    566                                         <!--Submenu-->
    567                                         <ul class="collapse in">
    568                                             <li><a href="{% url 'multitask_cmd' %}">批量命令</a></li>
    569                                             <li class="active-link"><a href="{% url 'multitask_file_transfer' %}">批量文件</a></li>
    570 
    571 
    572                                         </ul>
    573                                     </li>
    574 
    575 
    576 
    577                                     <li class="list-divider"></li>
    578 
    579 
    580 
    581                                 </ul>
    582 
    583 
    584                                 <!--Widget-->
    585                                 <!--================================-->
    586                                 <div class="mainnav-widget">
    587 
    588                                     <!-- Show the button on collapsed navigation -->
    589                                     <div class="show-small">
    590                                         <a href="#" data-toggle="menu-widget" data-target="#demo-wg-server">
    591                                             <i class="fa fa-desktop"></i>
    592                                         </a>
    593                                     </div>
    594 
    595                                 </div>
    596                                 <!--================================-->
    597                                 <!--End widget-->
    598 
    599                             </div>
    600                         </div>
    601                     </div>
    602                     <!--================================-->
    603                     <!--End menu-->
    604 
    605                 </div>
    606             </nav>
    607             <!--===================================================-->
    608             <!--END MAIN NAVIGATION-->
    609 
    610             <!--ASIDE-->
    611             <!--===================================================-->
    612             <aside id="aside-container">
    613                 <div id="aside">
    614                     <div class="nano">
    615                         <div class="nano-content">
    616 
    617                             <!--Nav tabs-->
    618                             <!--================================-->
    619                             <ul class="nav nav-tabs nav-justified">
    620                                 <li class="active">
    621                                     <a href="#demo-asd-tab-1" data-toggle="tab">
    622                                         <i class="fa fa-comments"></i>
    623                                         <span class="badge badge-purple">7</span>
    624                                     </a>
    625                                 </li>
    626                                 <li>
    627                                     <a href="#demo-asd-tab-2" data-toggle="tab">
    628                                         <i class="fa fa-info-circle"></i>
    629                                     </a>
    630                                 </li>
    631                                 <li>
    632                                     <a href="#demo-asd-tab-3" data-toggle="tab">
    633                                         <i class="fa fa-wrench"></i>
    634                                     </a>
    635                                 </li>
    636                                 <li>
    637                                     <a href="#demo-asd-tab-4" data-toggle="tab">
    638                                         <i class="fa fa-shield"></i>
    639                                         <span class="label label-success">New</span>
    640                                     </a>
    641                                 </li>
    642                             </ul>
    643                             <!--================================-->
    644                             <!--End nav tabs-->
    645 
    646 
    647 
    648                             <!-- Tabs Content -->
    649                             <!--================================-->
    650                             <div class="tab-content">
    651 
    652                                 <!--First tab-->
    653                                 <!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
    654                                 <div class="tab-pane fade in active" id="demo-asd-tab-1">
    655                                     <h4 class="pad-hor text-thin">
    656                                         First tab
    657                                     </h4>
    658                                     <div class="pad-all">
    659 
    660                                     Lorem ipsum dolor sit amet, consectetuer adipiscing elit,
    661                                     sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
    662                                     Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl
    663                                     ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate
    664                                     velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan
    665                                     et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.
    666 
    667                                     </div>
    668 
    669                                 </div>
    670                                 <!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
    671                                 <!--End first tab-->
    672 
    673 
    674                                 <!--Second tab-->
    675                                 <!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
    676                                 <div class="tab-pane fade" id="demo-asd-tab-2">
    677                                     <h4 class="pad-hor text-thin">
    678                                         Second tab
    679                                     </h4>
    680                                     <div class="pad-all">
    681 
    682                                     Lorem ipsum dolor sit amet, consectetuer adipiscing elit,
    683                                     sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
    684                                     Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl
    685                                     ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate
    686                                     velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan
    687                                     et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.
    688 
    689                                     </div>
    690                                 </div>
    691                                 <!--End second tab-->
    692                                 <!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
    693 
    694 
    695                                 <!--Third tab-->
    696                                 <!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
    697                                 <div class="tab-pane fade" id="demo-asd-tab-3">
    698                                     <h4 class="pad-hor text-thin">
    699                                         Third tab
    700                                     </h4>
    701                                     <div class="pad-all">
    702 
    703                                     Lorem ipsum dolor sit amet, consectetuer adipiscing elit,
    704                                     sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
    705                                     Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl
    706                                     ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate
    707                                     velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan
    708                                     et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.
    709 
    710                                     </div>
    711 
    712                                 </div>
    713                                 <!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
    714                                 <!--Third tab-->
    715 
    716                                 <!--Fourth tab-->
    717                                 <!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
    718                                 <div class="tab-pane fade" id="demo-asd-tab-4">
    719                                     <h4 class="pad-hor text-thin">
    720                                         Fourth tab
    721                                     </h4>
    722                                     <div class="pad-all">
    723 
    724                                     Lorem ipsum dolor sit amet, consectetuer adipiscing elit,
    725                                     sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
    726                                     Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl
    727                                     ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate
    728                                     velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan
    729                                     et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.
    730 
    731                                     </div>
    732 
    733                                 </div>
    734                                 <!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
    735                                 <!--Third tab (Settings)-->
    736 
    737                             </div>
    738                         </div>
    739                     </div>
    740                 </div>
    741             </aside>
    742             <!--===================================================-->
    743             <!--END ASIDE-->
    744 
    745         </div>
    746 
    747 
    748 
    749         <!-- FOOTER -->
    750         <!--===================================================-->
    751         <footer id="footer">
    752 
    753             <!-- Visible when footer positions are fixed -->
    754             <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
    755             <div class="show-fixed pull-right">
    756                 <ul class="footer-list list-inline">
    757                     <li>
    758                         <p class="text-sm">SEO Proggres</p>
    759                         <div class="progress progress-sm progress-light-base">
    760                             <div style=" 80%" class="progress-bar progress-bar-danger"></div>
    761                         </div>
    762                     </li>
    763 
    764                     <li>
    765                         <p class="text-sm">Online Tutorial</p>
    766                         <div class="progress progress-sm progress-light-base">
    767                             <div style=" 80%" class="progress-bar progress-bar-primary"></div>
    768                         </div>
    769                     </li>
    770                     <li>
    771                         <button class="btn btn-sm btn-dark btn-active-success">Checkout</button>
    772                     </li>
    773                 </ul>
    774             </div>
    775 
    776 
    777 
    778             <!-- Visible when footer positions are static -->
    779             <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
    780             <div class="hide-fixed pull-right pad-rgt">Currently v2.2.2</div>
    781 
    782 
    783 
    784             <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
    785             <!-- Remove the class name "show-fixed" and "hide-fixed" to make the content always appears. -->
    786             <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
    787 
    788             <p class="pad-lft">&#0169; 2015 Your Company</p>
    789 
    790 
    791 
    792         </footer>
    793         <!--===================================================-->
    794         <!-- END FOOTER -->
    795 
    796 
    797         <!-- SCROLL TOP BUTTON -->
    798         <!--===================================================-->
    799         <button id="scroll-top" class="btn"><i class="fa fa-chevron-up"></i></button>
    800         <!--===================================================-->
    801 
    802 
    803 
    804     </div>
    805     <!--===================================================-->
    806     <!-- END OF CONTAINER -->
    807 {% endblock %}
    index

    6、login.html

     1 {% extends 'base.html' %}
     2 
     3 <!--TIPS-->
     4 <!--You may remove all ID or Class names which contain "demo-", they are only used for demonstration. -->
     5 
     6 {% block body %}
     7     <div id="container" class="cls-container">
     8         
     9         <!-- HEADER -->
    10         <!--===================================================-->
    11         <div class="cls-header cls-header-lg">
    12             <div class="cls-brand">
    13                 <a class="box-inline" href="index.html">
    14                     <!-- <img alt="Nifty Admin" src="img/logo.png" class="brand-icon"> -->
    15                     <span class="brand-title">CrazyEye<span class="text-thin">智能堡垒机</span></span>
    16                 </a>
    17             </div>
    18         </div>
    19         <!--===================================================-->
    20         
    21         
    22         <!-- LOGIN FORM -->
    23         <!--===================================================-->
    24         <div class="cls-content">
    25             <div class="cls-content-sm panel">
    26                 <div class="panel-body">
    27                     <p class="pad-btm">Sign In to your account</p>
    28                     <form method="post">{% csrf_token %}
    29                         <div class="form-group">
    30                             <div class="input-group">
    31                                 <div class="input-group-addon"><i class="fa fa-user"></i></div>
    32                                 <input type="email" name="username" class="form-control" placeholder="Username">
    33                             </div>
    34                         </div>
    35                         <div class="form-group">
    36                             <div class="input-group">
    37                                 <div class="input-group-addon"><i class="fa fa-asterisk"></i></div>
    38                                 <input type="password" name="password" class="form-control" placeholder="Password">
    39                             </div>
    40                         </div>
    41                         <div class="row">
    42                             <div class="col-xs-8 text-left checkbox">
    43                                 <label class="form-checkbox form-icon">
    44                                 <input type="checkbox"> Remember me
    45                                 </label>
    46                             </div>
    47                             <div class="col-xs-4">
    48                                 <div class="form-group text-right">
    49                                 <button class="btn btn-success text-uppercase" type="submit">Sign In</button>
    50                                 </div>
    51                             </div>
    52                             <span style="color: red">{{ error_msg }}</span>
    53                         </div>
    54 
    55                     </form>
    56                 </div>
    57             </div>
    58             <div class="pad-ver">
    59                 <a href="#" class="btn-link mar-rgt">Forgot password ?</a>
    60                 <a href="#" class="btn-link mar-lft">Create a new account</a>
    61             </div>
    62         </div>
    63         <!--===================================================-->
    64         
    65         
    66         
    67     </div>
    68     <!--===================================================-->
    69     <!-- END OF CONTAINER -->
    70 
    71 {% endblock %}
    login

    7、user_audit.html

    {% extends 'index.html' %}
    
    
    {% block page-title %}用户审计{% endblock %}
    
    {% block page-content %}
    <div class="panel">
        <div class="panel-heading">
            <h3 class="panel-title">审计目录</h3>
        </div>
        <div class="panel-body">
            <ul>
                {% for dir_name in log_dirs %}
                    <li><a class="btn-link" href="{% url 'audit_log_date' dir_name  %}">{{ dir_name }}</a></li>
                {% endfor %}
            </ul>
        </div>
    </div>
    {% endblock %}

    8、user_audit_detail.html

    {% extends 'index.html' %}
    
    
    {% block page-title %}用户审计{% endblock %}
    
    {% block page-content %}
    <div class="panel">
        <div class="panel-heading">
            <h3 class="panel-title">审计详情   主机:</h3>
        </div>
        <div class="panel-body">
    
            <table class="table ">
                <thead>
                    <tr>
                        <th>id</th>
                        <th>日期</th>
                        <th>命令</th>
    
    
                    </tr>
                </thead>
    
                <tbody>
                    {% for cmd in cmd_list %}
                        <tr>
                            <td>{{ forloop.counter }}</td>
                            <td>{{ cmd.0 }}</td>
                            <td>{{ cmd.1 }}</td>
    
                        </tr>
                    {% endfor %}
                </tbody>
    
            </table>
        </div>
    </div>
    {% endblock %}

    9、user_audit_file_list.html

    {% extends 'index.html' %}
    
    
    {% block page-title %}用户审计{% endblock %}
    
    {% block page-content %}
    <div class="panel">
        <div class="panel-heading">
            <h3 class="panel-title">审计日志列表</h3>
        </div>
        <div class="panel-body">
            <table class="table ">
                <thead>
                    <tr>
                        <th>Session ID</th>
                        <th>堡垒机用户</th>
                        <th>登录时间</th>
                        <th>登录主机</th>
                        <th>登录用户名</th>
                        <th>停留时间</th>
                        <th>执行命令数</th>
    
                    </tr>
                </thead>
    
                <tbody>
                    {% for session_obj in session_objs %}
                        <tr>
                            <td><a class="btn-link" href="{% url 'audit_log_detail' log_date session_obj.id  %}"> {{ session_obj.id }} </a></td>
                            <td>{{ session_obj.user.name }}</td>
                            <td>{{ session_obj.date }}</td>
                            <td>{{ session_obj.bind_host.host.hostname }}({{ session_obj.bind_host.host.ip_addr }})</td>
                            <td>{{ session_obj.bind_host.remote_user.username }}</td>
                            <td>...</td>
                            <td>...</td>
                        </tr>
                    {% endfor %}
                </tbody>
    
            </table>
        </div>
    </div>
    {% endblock %}

    三、测试截图

    1、审计列表

    2、审计目录

     3、审计详情主机

  • 相关阅读:
    [转]22条经典的编程引言 朱燚:
    [转]Windbg的学习记录(一) 朱燚:
    C#7.0 模式匹配与if语句
    使用switch表达式简化switch语句
    .Net 5 在函数中使用Lambda
    MongoDB find getmore操作慢问题排查
    multikey索引和wildCard索引场景比较
    一个高性能跨平台基于Python的Waitress WSGI Server的介绍!
    郁闷的一天!
    互联网项目管理要点
  • 原文地址:https://www.cnblogs.com/luoahong/p/9499656.html
Copyright © 2020-2023  润新知