ConsulManager/flask-consul/views/ldap.py

54 lines
1.7 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

"""
ldap信息填写
"""
from flask import Blueprint
from flask_restful import reqparse, Resource, Api
import sys
from units.json_response import JsonResponse
from units.ldap.ldap_consul import Ldap_Consul
sys.path.append("..")
from units import token_auth, consul_kv,myaes
from itsdangerous import TimedJSONWebSignatureSerializer
secret_key = consul_kv.get_value('ConsulManager/assets/secret/skey')['sk']
s = TimedJSONWebSignatureSerializer(secret_key,expires_in=28800)
blueprint = Blueprint('ldap',__name__)
api = Api(blueprint)
parser = reqparse.RequestParser()
parser.add_argument('ldap_url',type=str)
parser.add_argument('password',type=str)
parser.add_argument('port',type=str)
parser.add_argument('rule',type=str)
parser.add_argument('ldapusr',type=str)
parser.add_argument('allow',type=str)
class LdapView(Resource):
"""
封装了公共返回格式
{"code": code,"success": success, "message": msg, "data": data}
"""
decorators = [token_auth.auth.login_required]
def post(self,):
args = parser.parse_args()
Ldap_Consul.set_consul_args(**args)
return JsonResponse(data="", code=20000, success=True, msg="添加统一认证成功")
def get(self):
ldap_info = consul_kv.get_value('ConsulManager/ldap/report')
if ldap_info:
ldap_info["password"] = myaes.decrypt(ldap_info["password"])
else:
ldap_info = {'port': '389', 'allow': '*'}
return {'code': 20000, 'ldap_info': ldap_info}
def delete(self):
consul_kv.del_key('ConsulManager/ldap/report')
return {'code': 20000, 'data': 'DLAP登录配置已清除'}
api.add_resource(LdapView, '/api/ldap/config')