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