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

一、目录结构

二、实现代码

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、审计详情主机

原文地址:https://www.cnblogs.com/luoahong/p/9499656.html