Kaynağa Gözat

加入登陆功能

James Iter 9 yıl önce
ebeveyn
işleme
348f34bddb

+ 3 - 0
main.py

@@ -23,6 +23,7 @@ import views_route_table
 from models import Database as db
 from models import Config
 from models import User
+from api.user import blueprint as user_blueprint
 from api.boot_job import blueprint as boot_job_blueprint
 from api.boot_job import blueprints as boot_job_blueprints
 from api.operate_rule import blueprint as operate_rule_blueprint
@@ -103,6 +104,7 @@ def is_not_need_to_auth(endpoint):
         'api_config.r_get',
         'api_config.r_create',
         'v_config.create',
+        'v_misc.login',
         'api_user.r_sign_in'
     ]
 
@@ -189,6 +191,7 @@ try:
     db.init_conn_mysql()
     db.init_conn_redis()
 
+    app.register_blueprint(user_blueprint)
     app.register_blueprint(boot_job_blueprint)
     app.register_blueprint(boot_job_blueprints)
     app.register_blueprint(operate_rule_blueprint)

+ 3 - 0
misc/init.sql

@@ -21,6 +21,9 @@ CREATE TABLE IF NOT EXISTS user(
 ALTER TABLE user ADD INDEX (login_name);
 ALTER TABLE user ADD INDEX (mobile_phone);
 ALTER TABLE user ADD INDEX (email);
+INSERT INTO user (login_name, password, create_time) VALUES
+    ('admin', 'ji_pbkdf2$sha1$1000$b8UzawEs5kJ68TmbqQEqD07jgZGCYJsa$d3593420edee742499a974f2f377e5b220927dc7', UNIX_TIMESTAMP(NOW()) * 1000000);
+# password jimv.pswd.com
 
 
 CREATE TABLE IF NOT EXISTS guest(

+ 1 - 0
models/rules.py

@@ -56,6 +56,7 @@ class Rules(Enum):
     QUANTITY = (int, 'quantity')
     NAME = (basestring, 'name')
     PATH = (basestring, 'path')
+    LOGIN_NAME = (basestring, 'login_name')
     PASSWORD = (basestring, 'password')
     LEASE_TERM = (int, 'lease_term')
     DESTINATION_HOST = (basestring, 'destination_host', (5, 64))

+ 1 - 1
static/themes/admin/color-schemes/default.css

@@ -26,7 +26,7 @@ h1, h2, h3, h4, h5, h6,
 
 #page-header .user-account-btn > a.user-profile .glyph-icon,
 .logo-bg {
-    background-color: rgba(255, 255, 255, 0.55);
+    background-color: rgba(255, 255, 255, 0.07);
     color: #fff;
 }
 #page-header .user-account-btn > a.user-profile {

+ 23 - 0
static/utils.js

@@ -0,0 +1,23 @@
+/**
+ *
+ * Created by James on 15/11/29.
+ */
+
+function insert_warning_window(element, content) {
+    // 展出警告框
+    element.before(
+        '<div class="alert alert-warning alert-dismissible fade in" role="alert">' +
+        '<button id="warning_window_close_btn" type="button" class="close" data-dismiss="alert" aria-label="Close">' +
+        '<span aria-hidden="true">&times;</span>' +
+        '</button>' +
+        content +
+        '</div>');
+    // 3秒后自动关闭
+    setTimeout(function() {
+        $('#warning_window_close_btn').click();
+    }, 3000);
+}
+
+$.fn.hasAttr = function(name) {
+   return this.attr(name) !== undefined;
+};

+ 4 - 0
templates/layout.html

@@ -195,6 +195,7 @@
     <script type="text/javascript" src="{{ url_for('static', filename='js-core-min/jquery-ui-position.js') }}"></script>
     <script type="text/javascript" src="{{ url_for('static', filename='js-core-min/modernizr.js') }}"></script>
     <script type="text/javascript" src="{{ url_for('static', filename='js-core-min/jquery-cookie.js') }}"></script>
+    <script type="text/javascript" src="{{ url_for('static', filename='js-core-min/jquery-cookie.js') }}"></script>
 
     <script type="text/javascript">
 
@@ -447,6 +448,9 @@
         <!--<script type="text/javascript" src="{{ url_for('static', filename='bootstrap-select/js/i18n/defaults-zh_CN.min.js') }}"></script>-->
         <!-- smartwizard JavaScript -->
         <script type="text/javascript" src="{{ url_for('static', filename='smartwizard/js/jquery.smartWizard.min.js') }}"></script>
+
+        <!-- JimV -->
+        <script type="text/javascript" src="{{ url_for('static', filename='utils.js') }}"></script>
     </div>
 </body>
 </html>

+ 48 - 3
templates/login.html

@@ -32,9 +32,54 @@
     </style>
 {% endblock head %}
 {% block body %}
+<script type="text/javascript">
+    $(document).ready(function() {
+        $('body').addClass('add-transition');
+        $('.add-page-transition').on('click', function(){
+            var transAttr = $(this).attr('data-transition');
+            $('.add-transition').attr('class', 'add-transition');
+            $('.add-transition').addClass(transAttr);
+        });
+
+        $("#login_form").delegate('#login_submit', 'click', function() {
+            var fill_ok = true;
+            /*
+            if ($('#login_name').val().length < 1) {
+                fill_ok = false;
+                $('#login_name').parent().removeClass('has-success has-warning').addClass('has-error');
+                $('#login_name').next().removeClass('glyphicon-info-sign').addClass('glyphicon-remove');
+            }
+            if ($('#password').val().length < 1) {
+                fill_ok = false;
+                $('#password').parent().removeClass('has-success has-warning').addClass('has-error');
+                $('#password').next().removeClass('glyphicon-lock').addClass('glyphicon-remove');
+            }
+            */
+            if (fill_ok) {
+                $.ajax({
+                    url : '/api/user/_sign_in',
+                    type : 'POST',
+                    contentType: "application/json; charset=utf-8",
+                    dataType: "json",
+                    data : JSON.stringify({login_name: $('#login_name').val(), password: $('#password').val()}),
+                    error : function(data, textStatus, xhr) {
+                        if (data.status === 401) {
+                            insert_warning_window($('#login_submit'), '<strong>登录失败: </strong>&nbsp;&nbsp;请查证账号、密码重新登录.');
+                        } else {
+                            insert_warning_window($('#login_submit'), data.responseText);
+                        }
+                    },
+                    success : function(data, textStatus, xhr) {
+                        window.location.href="/";
+                    }
+                });
+            }
+        });
+    });
+</script>
 <div class="center-vertical">
     <div class="center-content row wow">
-        <form action="" id="login-validation" class="col-md-4 col-sm-5 col-xs-11 col-lg-3 center-margin" method="POST">
+        <form id="login_form" class="col-md-4 col-sm-5 col-xs-11 col-lg-3 center-margin">
             <h3 class="text-center pad25B font-primary" style="font-family: 'Baskerville'; opacity: 0.83; font-size: -webkit-xxx-large;">JimV<span style="font-family: 'serif';"> Admin</span></h3>
             <div id="login-form" class="content-box bg-default">
                 <div class="content-box-wrapper pad20A">
@@ -43,7 +88,7 @@
                             <span class="input-group-addon addon-inside bg-gray">
                                 <i class="glyph-icon icon-user"></i>
                             </span>
-                            <input type="email" class="form-control" id="login_name" placeholder="用户名" value="admin" disabled>
+                            <input type="text" class="form-control" id="login_name" placeholder="用户名" value="admin" disabled>
                         </div>
                     </div>
                     <div class="form-group">
@@ -55,7 +100,7 @@
                         </div>
                     </div>
                     <div class="form-group">
-                        <button type="submit" class="btn btn-block btn-primary">Login</button>
+                        <button id="login_submit" type="button" class="btn btn-block btn-primary">Login</button>
                     </div>
                 </div>
             </div>

+ 2 - 2
views/boot_job.py

@@ -69,7 +69,7 @@ def show():
     if args.__len__() > 0:
         boot_jobs_url = boot_jobs_url + '?' + '&'.join(args)
 
-    boot_jobs_ret = requests.get(url=boot_jobs_url)
+    boot_jobs_ret = requests.get(url=boot_jobs_url, cookies=request.cookies)
     boot_jobs_ret = json.loads(boot_jobs_ret.content)
 
     for i, boot_job in enumerate(boot_jobs_ret['data']):
@@ -120,7 +120,7 @@ def create():
 
         url = host_url + '/api/boot_job'
         headers = {'content-type': 'application/json'}
-        r = requests.post(url, data=json.dumps(payload), headers=headers)
+        r = requests.post(url, data=json.dumps(payload), cookies=request.cookies, headers=headers)
         j_r = json.loads(r.content)
         return render_template('success.html', go_back_url='/boot_jobs', timeout=10000, title='提交成功',
                                message_title='添加启动作业的请求已被接受',

+ 3 - 3
views/config.py

@@ -23,7 +23,7 @@ blueprint = Blueprint(
 def show():
     host_url = request.host_url.rstrip('/')
     config_url = host_url + '/api/config'
-    config_ret = requests.get(url=config_url)
+    config_ret = requests.get(url=config_url, cookies=request.cookies)
     config_ret = json.loads(config_ret.content)
 
     # 检测 JimV 的配置是否已被初始化,只有未被初始化时,才展现初始化配置页面
@@ -55,7 +55,7 @@ def create():
 
         url = host_url + '/api/config'
         headers = {'content-type': 'application/json'}
-        config_ret = requests.post(url, data=json.dumps(payload), headers=headers)
+        config_ret = requests.post(url, data=json.dumps(payload), headers=headers, cookies=request.cookies)
         config_ret = json.loads(config_ret.content)
         return render_template('success.html', go_back_url='/', timeout=5000, title='提交成功',
                                message_title='初始化 JimV 请求已被接受',
@@ -63,7 +63,7 @@ def create():
 
     else:
         url = host_url + '/api/config'
-        config_ret = requests.get(url=url)
+        config_ret = requests.get(url=url, cookies=request.cookies)
         config_ret = json.loads(config_ret.content)
 
         # 检测 JimV 的配置是否已被初始化,只有未被初始化时,才展现初始化配置页面

+ 7 - 7
views/dashboard.py

@@ -31,7 +31,7 @@ def show():
     guests_current_top_10_url = host_url + url_for('api_performance.r_current_top_10')
     hosts_current_top_10_url = host_url + url_for('api_host_performance.r_current_top_10')
 
-    hosts_ret = requests.get(url=hosts_url)
+    hosts_ret = requests.get(url=hosts_url, cookies=request.cookies)
     hosts_ret = json.loads(hosts_ret.content)
 
     # Host node_id 与 Host 的映射
@@ -39,13 +39,13 @@ def show():
     for host in hosts_ret['data']:
         hosts_mapping_by_node_id[int(host['node_id'])] = host
 
-    guests_distribute_count_ret = requests.get(url=guests_distribute_count_url)
+    guests_distribute_count_ret = requests.get(url=guests_distribute_count_url, cookies=request.cookies)
     guests_distribute_count_ret = json.loads(guests_distribute_count_ret.content)
 
-    disks_distribute_count_ret = requests.get(url=disks_distribute_count_url)
+    disks_distribute_count_ret = requests.get(url=disks_distribute_count_url, cookies=request.cookies)
     disks_distribute_count_ret = json.loads(disks_distribute_count_ret.content)
 
-    guests_current_top_10_ret = requests.get(url=guests_current_top_10_url)
+    guests_current_top_10_ret = requests.get(url=guests_current_top_10_url, cookies=request.cookies)
     guests_current_top_10_ret = json.loads(guests_current_top_10_ret.content)
 
     guests_url = host_url + url_for('api_guests.r_get_by_filter')
@@ -62,7 +62,7 @@ def show():
 
     guests_url = guests_url + '?filter=uuid:in:' + ','.join(guests_uuid)
 
-    guests_ret = requests.get(url=guests_url)
+    guests_ret = requests.get(url=guests_url, cookies=request.cookies)
     guests_ret = json.loads(guests_ret.content)
 
     # Guest uuid 与 Guest 的映射
@@ -83,7 +83,7 @@ def show():
 
     disks_url = disks_url + '?filter=uuid:in:' + ','.join(disks_uuid)
 
-    disks_ret = requests.get(url=disks_url)
+    disks_ret = requests.get(url=disks_url, cookies=request.cookies)
     disks_ret = json.loads(disks_ret.content)
 
     # Disk uuid 与 Disk 的映射
@@ -91,7 +91,7 @@ def show():
     for disk in disks_ret['data']:
         disks_mapping_by_uuid[disk['uuid']] = disk
 
-    hosts_current_top_10_ret = requests.get(url=hosts_current_top_10_url)
+    hosts_current_top_10_ret = requests.get(url=hosts_current_top_10_url, cookies=request.cookies)
     hosts_current_top_10_ret = json.loads(hosts_current_top_10_ret.content)
     hosts_current_top_10_ret['data']['memory_rate'] = hosts_current_top_10_ret['data']['cpu_load']
 

+ 8 - 8
views/disk.py

@@ -95,7 +95,7 @@ def show():
     if args.__len__() > 0:
         disks_url = disks_url + '?' + '&'.join(args)
 
-    disks_ret = requests.get(url=disks_url)
+    disks_ret = requests.get(url=disks_url, cookies=request.cookies)
     disks_ret = json.loads(disks_ret.content)
 
     guest_uuids = list()
@@ -107,7 +107,7 @@ def show():
     if guest_uuids.__len__() > 0:
         guests_url = host_url + url_for('api_guests.r_get_by_filter')
         guests_url += '?filter=uuid:in:' + ','.join(guest_uuids)
-        guests_ret = requests.get(url=guests_url)
+        guests_ret = requests.get(url=guests_url, cookies=request.cookies)
         guests_ret = json.loads(guests_ret.content)
 
         guests_uuid_mapping = dict()
@@ -118,7 +118,7 @@ def show():
             if disk['guest_uuid'].__len__() == 36:
                 disks_ret['data'][i]['guest'] = guests_uuid_mapping[disk['guest_uuid']]
 
-    config_ret = requests.get(url=config_url)
+    config_ret = requests.get(url=config_url, cookies=request.cookies)
     config_ret = json.loads(config_ret.content)
 
     show_on_host = False
@@ -169,7 +169,7 @@ def create():
 
         url = host_url + '/api/disk'
         headers = {'content-type': 'application/json'}
-        r = requests.post(url, data=json.dumps(payload), headers=headers)
+        r = requests.post(url, data=json.dumps(payload), headers=headers, cookies=request.cookies)
         j_r = json.loads(r.content)
         return render_template('success.html', go_back_url='/disks', timeout=10000, title='提交成功',
                                message_title='创建实例的请求已被接受',
@@ -177,7 +177,7 @@ def create():
 
     else:
         config_url = host_url + url_for('api_config.r_get')
-        config_ret = requests.get(url=config_url)
+        config_ret = requests.get(url=config_url, cookies=request.cookies)
         config_ret = json.loads(config_ret.content)
 
         show_on_host = False
@@ -192,7 +192,7 @@ def detail(uuid):
 
     disk_url = host_url + url_for('api_disks.r_get', uuids=uuid)
 
-    disk_ret = requests.get(url=disk_url)
+    disk_ret = requests.get(url=disk_url, cookies=request.cookies)
     disk_ret = json.loads(disk_ret.content)
 
     guest_ret = None
@@ -201,12 +201,12 @@ def detail(uuid):
     if disk_ret['data']['sequence'] != -1:
         guest_url = host_url + url_for('api_guests.r_get', uuids=disk_ret['data']['guest_uuid'])
 
-        guest_ret = requests.get(url=guest_url)
+        guest_ret = requests.get(url=guest_url, cookies=request.cookies)
         guest_ret = json.loads(guest_ret.content)
 
         os_template_url = host_url + url_for('api_os_templates.r_get', ids=guest_ret['data']['os_template_id'].__str__())
 
-        os_template_ret = requests.get(url=os_template_url)
+        os_template_ret = requests.get(url=os_template_url, cookies=request.cookies)
         os_template_ret = json.loads(os_template_ret.content)
 
     return render_template('disk_detail.html', uuid=uuid, guest_ret=guest_ret, os_template_ret=os_template_ret,

+ 17 - 17
views/guest.py

@@ -58,10 +58,10 @@ def show():
     if args.__len__() > 0:
         guests_url = guests_url + '?' + '&'.join(args)
 
-    guests_ret = requests.get(url=guests_url)
+    guests_ret = requests.get(url=guests_url, cookies=request.cookies)
     guests_ret = json.loads(guests_ret.content)
 
-    os_templates_ret = requests.get(url=os_templates_url)
+    os_templates_ret = requests.get(url=os_templates_url, cookies=request.cookies)
     os_templates_ret = json.loads(os_templates_ret.content)
     os_templates_mapping_by_id = dict()
     for os_template in os_templates_ret['data']:
@@ -77,7 +77,7 @@ def show():
     if guests_uuid.__len__() > 0:
         # 获取指定 Guest 的启动作业 ID
         guests_boot_jobs_url = host_url + url_for('api_guests.r_get_boot_jobs', uuids=','.join(guests_uuid))
-        guests_boot_jobs_ret = requests.get(url=guests_boot_jobs_url)
+        guests_boot_jobs_ret = requests.get(url=guests_boot_jobs_url, cookies=request.cookies)
 
         guests_boot_jobs_ret = json.loads(guests_boot_jobs_ret.content)
 
@@ -144,7 +144,7 @@ def create():
 
         url = host_url + '/api/guest'
         headers = {'content-type': 'application/json'}
-        r = requests.post(url, data=json.dumps(payload), headers=headers)
+        r = requests.post(url, data=json.dumps(payload), headers=headers, cookies=request.cookies)
         j_r = json.loads(r.content)
         return render_template('success.html', go_back_url='/guests', timeout=10000, title='提交成功',
                                message_title='创建实例的请求已被接受',
@@ -152,7 +152,7 @@ def create():
 
     else:
         os_template_url = host_url + url_for('api_os_templates.r_get_by_filter')
-        os_template_ret = requests.get(url=os_template_url)
+        os_template_ret = requests.get(url=os_template_url, cookies=request.cookies)
         os_template_ret = json.loads(os_template_ret.content)
         return render_template('guest_create.html', os_template_data=os_template_ret['data'])
 
@@ -171,7 +171,7 @@ def vnc(uuid):
 
     guest_url = host_url + url_for('api_guests.r_get', uuids=uuid)
 
-    guest_ret = requests.get(url=guest_url)
+    guest_ret = requests.get(url=guest_url, cookies=request.cookies)
     guest_ret = json.loads(guest_ret.content)
 
     port = random.randrange(50000, 60000)
@@ -193,17 +193,17 @@ def detail(uuid):
 
     guest_url = host_url + url_for('api_guests.r_get', uuids=uuid)
 
-    guest_ret = requests.get(url=guest_url)
+    guest_ret = requests.get(url=guest_url, cookies=request.cookies)
     guest_ret = json.loads(guest_ret.content)
 
     os_template_url = host_url + url_for('api_os_templates.r_get', ids=guest_ret['data']['os_template_id'].__str__())
 
-    os_template_ret = requests.get(url=os_template_url)
+    os_template_ret = requests.get(url=os_template_url, cookies=request.cookies)
     os_template_ret = json.loads(os_template_ret.content)
 
     disks_url = host_url + url_for('api_disks.r_get_by_filter')
     disks_url = disks_url + '?filter=guest_uuid:in:' + guest_ret['data']['uuid']
-    disks_ret = requests.get(url=disks_url)
+    disks_ret = requests.get(url=disks_url, cookies=request.cookies)
     disks_ret = json.loads(disks_ret.content)
 
     return render_template('guest_detail.html', uuid=uuid, guest_ret=guest_ret, os_template_ret=os_template_ret,
@@ -221,17 +221,17 @@ def show_boot_job(uuid):
 
     guest_url = host_url + url_for('api_guests.r_get', uuids=uuid)
 
-    guest_ret = requests.get(url=guest_url)
+    guest_ret = requests.get(url=guest_url, cookies=request.cookies)
     guest_ret = json.loads(guest_ret.content)
 
     guest_boot_jobs_url = host_url + url_for('api_guests.r_get_boot_jobs', uuids=uuid)
-    guest_boot_jobs_ret = requests.get(url=guest_boot_jobs_url)
+    guest_boot_jobs_ret = requests.get(url=guest_boot_jobs_url, cookies=request.cookies)
     guest_boot_jobs_ret = json.loads(guest_boot_jobs_ret.content)
 
     boot_jobs_url = host_url + url_for('api_boot_jobs.r_get_by_filter') + '?filter=id:in:' + \
         ','.join(guest_boot_jobs_ret['data']['boot_jobs'])
 
-    boot_jobs_ret = requests.get(url=boot_jobs_url)
+    boot_jobs_ret = requests.get(url=boot_jobs_url, cookies=request.cookies)
     boot_jobs_ret = json.loads(boot_jobs_ret.content)
     boot_jobs_mapping_by_id = dict()
     for boot_job in boot_jobs_ret['data']:
@@ -250,7 +250,7 @@ def show_guests_boot_jobs():
     # 获取所有有启动作业的 Guests uuid
     uuids_of_all_had_boot_job_url = host_url + url_for('api_guests.r_get_uuids_of_all_had_boot_job')
 
-    uuids_of_all_had_boot_job_ret = requests.get(url=uuids_of_all_had_boot_job_url)
+    uuids_of_all_had_boot_job_ret = requests.get(url=uuids_of_all_had_boot_job_url, cookies=request.cookies)
     uuids_of_all_had_boot_job_ret = json.loads(uuids_of_all_had_boot_job_ret.content)
     guests_uuid = uuids_of_all_had_boot_job_ret['data']
 
@@ -260,7 +260,7 @@ def show_guests_boot_jobs():
         # 获取指定 Guest 的启动作业 ID
         guests_boot_jobs_url = host_url + url_for('api_guests.r_get_boot_jobs',
                                                   uuids=','.join(guests_uuid[page_size * (page - 1): page_size * page]))
-        guests_boot_jobs_ret = requests.get(url=guests_boot_jobs_url)
+        guests_boot_jobs_ret = requests.get(url=guests_boot_jobs_url, cookies=request.cookies)
 
         guests_boot_jobs_ret = json.loads(guests_boot_jobs_ret.content)
 
@@ -279,7 +279,7 @@ def show_guests_boot_jobs():
     boot_jobs_url = host_url + url_for('api_boot_jobs.r_get_by_filter') + '?filter=id:in:' + \
         ','.join(guests_boot_jobs_id)
 
-    boot_jobs_ret = requests.get(url=boot_jobs_url)
+    boot_jobs_ret = requests.get(url=boot_jobs_url, cookies=request.cookies)
     boot_jobs_ret = json.loads(boot_jobs_ret.content)
 
     # 启动作业 ID 与启动作业的映射
@@ -291,7 +291,7 @@ def show_guests_boot_jobs():
 
     guests_url = guests_url + '?filter=uuid:in:' + ','.join(guests_uuid[page_size * (page - 1): page_size * page])
 
-    guests_ret = requests.get(url=guests_url)
+    guests_ret = requests.get(url=guests_url, cookies=request.cookies)
     guests_ret = json.loads(guests_ret.content)
 
     # Guest uuid 与 Guest 的映射
@@ -300,7 +300,7 @@ def show_guests_boot_jobs():
         guests_mapping_by_uuid[guest['uuid']] = guest
 
     os_templates_url = host_url + url_for('api_os_templates.r_get_by_filter')
-    os_templates_ret = requests.get(url=os_templates_url)
+    os_templates_ret = requests.get(url=os_templates_url, cookies=request.cookies)
     os_templates_ret = json.loads(os_templates_ret.content)
 
     # 模板与模板 ID 的映射

+ 2 - 2
views/host.py

@@ -52,7 +52,7 @@ def show():
     if args.__len__() > 0:
         hosts_url = hosts_url + '?' + '&'.join(args)
 
-    hosts_ret = requests.get(url=hosts_url)
+    hosts_ret = requests.get(url=hosts_url, cookies=request.cookies)
     hosts_ret = json.loads(hosts_ret.content)
 
     return render_template('hosts_show.html', hosts_ret=hosts_ret, resource_path=resource_path, keyword=keyword)
@@ -63,7 +63,7 @@ def detail(node_id):
 
     _host_url = host_url + url_for('api_hosts.r_get', nodes_id=node_id)
 
-    host_ret = requests.get(url=_host_url)
+    host_ret = requests.get(url=_host_url, cookies=request.cookies)
     host_ret = json.loads(host_ret.content)
 
     return render_template('host_detail.html', node_id=node_id, host_ret=host_ret)

+ 1 - 1
views/log.py

@@ -60,7 +60,7 @@ def show():
     if args.__len__() > 0:
         logs_url = logs_url + '?' + '&'.join(args)
 
-    logs_ret = requests.get(url=logs_url)
+    logs_ret = requests.get(url=logs_url, cookies=request.cookies)
     logs_ret = json.loads(logs_ret.content)
 
     last_page = int(ceil(logs_ret['paging']['total'] / float(page_size)))

+ 1 - 1
views/misc.py

@@ -31,7 +31,7 @@ def login():
 
         url = host_url + '/api/user/_sign_in'
         headers = {'content-type': 'application/json'}
-        ret = requests.post(url, data=json.dumps(payload), headers=headers)
+        ret = requests.post(url, data=json.dumps(payload), headers=headers, cookies=request.cookies)
         ret = json.loads(ret.content)
 
         if ret['state']['code'] == '200':

+ 3 - 3
views/operate_rule.py

@@ -71,12 +71,12 @@ def show():
     if args.__len__() > 0:
         operate_rules_url = operate_rules_url + '?' + '&'.join(args)
 
-    operate_rules_ret = requests.get(url=operate_rules_url)
+    operate_rules_ret = requests.get(url=operate_rules_url, cookies=request.cookies)
     operate_rules_ret = json.loads(operate_rules_ret.content)
 
     system_level_ids = list()
 
-    boot_jobs_ret = requests.get(url=boot_jobs_url)
+    boot_jobs_ret = requests.get(url=boot_jobs_url, cookies=request.cookies)
     boot_jobs_ret = json.loads(boot_jobs_ret.content)
     boot_jobs_mapping_by_id = dict()
     for boot_job in boot_jobs_ret['data']:
@@ -140,7 +140,7 @@ def create():
 
         url = host_url + '/api/operate_rule'
         headers = {'content-type': 'application/json'}
-        r = requests.post(url, data=json.dumps(payload), headers=headers)
+        r = requests.post(url, data=json.dumps(payload), headers=headers, cookies=request.cookies)
         j_r = json.loads(r.content)
         return render_template('success.html', go_back_url='/operate_rules', timeout=10000, title='提交成功',
                                message_title='添加启动作业操作细则的请求已被接受',

+ 3 - 3
views/os_template.py

@@ -74,10 +74,10 @@ def show():
     if args.__len__() > 0:
         os_templates_url = os_templates_url + '?' + '&'.join(args)
 
-    os_templates_ret = requests.get(url=os_templates_url)
+    os_templates_ret = requests.get(url=os_templates_url, cookies=request.cookies)
     os_templates_ret = json.loads(os_templates_ret.content)
 
-    boot_jobs_ret = requests.get(url=boot_job_url)
+    boot_jobs_ret = requests.get(url=boot_job_url, cookies=request.cookies)
     boot_jobs_ret = json.loads(boot_jobs_ret.content)
     boot_jobs_mapping_by_id = dict()
     for boot_job in boot_jobs_ret['data']:
@@ -129,7 +129,7 @@ def create():
 
         url = host_url + '/api/os_template'
         headers = {'content-type': 'application/json'}
-        r = requests.post(url, data=json.dumps(payload), headers=headers)
+        r = requests.post(url, data=json.dumps(payload), headers=headers, cookies=request.cookies)
         j_r = json.loads(r.content)
         return render_template('success.html', go_back_url='/os_templates', timeout=10000, title='提交成功',
                                message_title='添加模板的请求已被接受',