mirror of https://github.com/midoks/mdserver-web
parent
ebf474aefb
commit
11f42d5d2c
@ -0,0 +1,44 @@ |
|||||||
|
# coding:utf-8 |
||||||
|
|
||||||
|
# --------------------------------------------------------------------------------- |
||||||
|
# MW-Linux面板 |
||||||
|
# --------------------------------------------------------------------------------- |
||||||
|
# copyright (c) 2018-∞(https://github.com/midoks/mdserver-web) All rights reserved. |
||||||
|
# --------------------------------------------------------------------------------- |
||||||
|
# Author: midoks <midoks@163.com> |
||||||
|
# --------------------------------------------------------------------------------- |
||||||
|
|
||||||
|
import time |
||||||
|
|
||||||
|
from admin.model import db, TempLogin |
||||||
|
|
||||||
|
import core.mw as mw |
||||||
|
|
||||||
|
def getTempLoginByToken(token, |
||||||
|
) -> None: |
||||||
|
''' |
||||||
|
获取用户信息通过用户名 |
||||||
|
''' |
||||||
|
item = TempLogin.query.filter(TempLogin.token==token).first() |
||||||
|
if item is None: |
||||||
|
return None |
||||||
|
row = {} |
||||||
|
row['id'] = item.id |
||||||
|
row['token'] = item.token |
||||||
|
row['salt'] = item.salt |
||||||
|
row['state'] = item.state |
||||||
|
row['login_time'] = item.login_time |
||||||
|
row['login_addr'] = item.login_addr |
||||||
|
row['logout_time'] = item.logout_time |
||||||
|
row['expire'] = item.expire |
||||||
|
row['add_time'] = item.add_time |
||||||
|
return row |
||||||
|
|
||||||
|
def clearTempLogin()->bool: |
||||||
|
''' |
||||||
|
清空过期数据 |
||||||
|
''' |
||||||
|
now_time = int(time.time()) |
||||||
|
TempLogin.query.filter(TempLogin.expire<now_time).delete() |
||||||
|
db.session.commit() |
||||||
|
return True |
@ -0,0 +1,54 @@ |
|||||||
|
# coding:utf-8 |
||||||
|
|
||||||
|
# --------------------------------------------------------------------------------- |
||||||
|
# MW-Linux面板 |
||||||
|
# --------------------------------------------------------------------------------- |
||||||
|
# copyright (c) 2018-∞(https://github.com/midoks/mdserver-web) All rights reserved. |
||||||
|
# --------------------------------------------------------------------------------- |
||||||
|
# Author: midoks <midoks@163.com> |
||||||
|
# --------------------------------------------------------------------------------- |
||||||
|
|
||||||
|
import re |
||||||
|
import json |
||||||
|
import os |
||||||
|
import time |
||||||
|
|
||||||
|
from flask import Blueprint, render_template |
||||||
|
from flask import request |
||||||
|
|
||||||
|
from admin import model |
||||||
|
from admin import session |
||||||
|
from admin.model import db,TempLogin |
||||||
|
from admin.user_login_check import panel_login_required |
||||||
|
|
||||||
|
import core.mw as mw |
||||||
|
import utils.config as utils_config |
||||||
|
|
||||||
|
from .main import blueprint |
||||||
|
|
||||||
|
|
||||||
|
@blueprint.route('/get_auth_secret', endpoint='get_auth_secret', methods=['POST']) |
||||||
|
@panel_login_required |
||||||
|
def get_auth_secret(): |
||||||
|
reset = request.form.get('reset', '') |
||||||
|
__file = mw.getCommonFile() |
||||||
|
|
||||||
|
import pyotp |
||||||
|
auth = __file['auth_secret'] |
||||||
|
tag = 'mdserver-web' |
||||||
|
if os.path.exists(auth) and reset != '1': |
||||||
|
content = mw.readFile(auth) |
||||||
|
sec = mw.deDoubleCrypt(tag,content) |
||||||
|
else: |
||||||
|
sec = pyotp.random_base32() |
||||||
|
crypt_data = mw.enDoubleCrypt(tag, sec) |
||||||
|
mw.writeFile(auth, crypt_data) |
||||||
|
|
||||||
|
ip = mw.getHostAddr() |
||||||
|
url = pyotp.totp.TOTP(sec).provisioning_uri(name=ip, issuer_name=tag) |
||||||
|
|
||||||
|
rdata = {} |
||||||
|
rdata['secret'] = sec |
||||||
|
rdata['url'] = url |
||||||
|
return mw.returnData(True, '设置成功!', rdata) |
||||||
|
|
@ -0,0 +1,60 @@ |
|||||||
|
# coding:utf-8 |
||||||
|
|
||||||
|
# --------------------------------------------------------------------------------- |
||||||
|
# MW-Linux面板 |
||||||
|
# --------------------------------------------------------------------------------- |
||||||
|
# copyright (c) 2018-∞(https://github.com/midoks/mdserver-web) All rights reserved. |
||||||
|
# --------------------------------------------------------------------------------- |
||||||
|
# Author: midoks <midoks@163.com> |
||||||
|
# --------------------------------------------------------------------------------- |
||||||
|
|
||||||
|
import re |
||||||
|
import json |
||||||
|
import os |
||||||
|
|
||||||
|
from flask import Blueprint, render_template |
||||||
|
from flask import request |
||||||
|
|
||||||
|
from admin import model |
||||||
|
from admin.user_login_check import panel_login_required |
||||||
|
|
||||||
|
import core.mw as mw |
||||||
|
import utils.config as utils_config |
||||||
|
|
||||||
|
from .main import blueprint |
||||||
|
|
||||||
|
# 时区相关 |
||||||
|
@blueprint.route('/get_timezone_list', endpoint='get_timezone_list', methods=['POST']) |
||||||
|
@panel_login_required |
||||||
|
def get_timezone_list(): |
||||||
|
import pytz |
||||||
|
# 获取时区列表 |
||||||
|
# pytz.all_timezones | 所有 |
||||||
|
# pytz.common_timezones |
||||||
|
return pytz.all_timezones |
||||||
|
|
||||||
|
@blueprint.route('/sync_date', endpoint='sync_date', methods=['POST']) |
||||||
|
@panel_login_required |
||||||
|
def sync_date(): |
||||||
|
if mw.isAppleSystem(): |
||||||
|
return mw.returnData(True, '开发系统不必同步时间!') |
||||||
|
data = mw.execShell('ntpdate -s time.nist.gov') |
||||||
|
if data[0] == '': |
||||||
|
return mw.returnData(True, '同步成功!') |
||||||
|
return mw.returnData(False, '同步失败:' + data[0]) |
||||||
|
|
||||||
|
@blueprint.route('/set_timezone', endpoint='set_timezone', methods=['POST']) |
||||||
|
@panel_login_required |
||||||
|
def set_timezone(): |
||||||
|
# 设置时区列表 |
||||||
|
timezone = request.form.get('timezone', '').strip() |
||||||
|
cmd = 'timedatectl set-timezone "'+timezone+'"' |
||||||
|
mw.execShell(cmd) |
||||||
|
return mw.returnData(True, '设置成功!') |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in new issue