Download gateway/user.py from deeme/cs: direct link, hf CLI and curl.
- Browser
- Download file 6.48 kB
-
https://huggingface.co/spaces/deeme/cs/resolve/main/gateway/user.py
- Command line
-
hf download hf://spaces/deeme/cs/gateway/user.py
-
curl -L -o user.py https://huggingface.co/spaces/deeme/cs/resolve/main/gateway/user.py
6.48 kB
| from app import app | |
| from flask import render_template, request, jsonify | |
| import uuid | |
| import utils.globals as globals | |
| from utils.globals import * | |
| from utils.tools import * | |
| from werkzeug.security import generate_password_hash | |
| def user_management(): | |
| return render_template('user_management.html') | |
| # 获取所有用户 | |
| def get_users(): | |
| # 返回用户列表时不包含密码信息 | |
| return jsonify([{k: v for k, v in user.items() if k != 'password' and k != 'bind_token'} for user in globals.users]) | |
| # 创建新用户 | |
| def create_user(): | |
| data = request.get_json() | |
| # 检查用户名是否已存在 | |
| if any(user['username'] == data['username'] for user in globals.users): | |
| return jsonify({'success': False, 'message': '用户名已存在'}), 400 | |
| new_user = { | |
| 'id': str(uuid.uuid4()), | |
| 'username': data['username'], | |
| 'password': generate_password_hash(data['password']), | |
| 'role': data['role'], | |
| 'bind_token': '', | |
| 'bind_email': '', | |
| 'expiration_time': data['expiration_time'], | |
| 'bind_claude_token': '', | |
| 'bind_claude_email': '', | |
| 'claude_expiration_time': data['claude_expiration_time'] | |
| } | |
| globals.users.append(new_user) | |
| save_users(globals.users) | |
| return jsonify({'success': True, 'message': '用户创建成功'}) | |
| # 更新用户信息 | |
| def update_user(user_id): | |
| data = request.get_json() | |
| user_index = next((i for i, user in enumerate(globals.users) if user['id'] == user_id), None) | |
| if user_index is None: | |
| return jsonify({'success': False, 'message': '用户不存在'}), 404 | |
| # 检查用户名是否与其他用户冲突 | |
| if any(user['username'] == data['username'] and user['id'] != user_id for user in globals.users): | |
| return jsonify({'success': False, 'message': '用户名已存在'}), 400 | |
| # 更新用户信息 | |
| globals.users[user_index]['username'] = data['username'] | |
| globals.users[user_index]['role'] = data['role'] | |
| # 如果提供了新密码,则更新密码 | |
| if data.get('password'): | |
| globals.users[user_index]['password'] = generate_password_hash(data['password']) | |
| globals.users[user_index]['expiration_time'] = data['expiration_time'] | |
| globals.users[user_index]['claude_expiration_time'] = data['claude_expiration_time'] | |
| save_users(globals.users) | |
| return jsonify({'success': True, 'message': '用户更新成功'}) | |
| # 绑定ChatGPT账号 | |
| def bind_account(user_id): | |
| data = request.get_json() | |
| user_index = next((i for i, user in enumerate(globals.users) if user['id'] == user_id), None) | |
| token_index = next((i for i, token in enumerate(globals.chatToken) if token['email'] == data['email']), None) | |
| res = set_seedmap(user_id,globals.chatToken[token_index]['access_token']) | |
| if res == 200: | |
| globals.users[user_index]['bind_email'] = data['email'] | |
| globals.users[user_index]['bind_token'] = globals.chatToken[token_index]['access_token'] | |
| save_users(globals.users) | |
| return jsonify({'success': True, 'message': '账号绑定成功'}) | |
| else: | |
| return jsonify({'success': False, 'message': '账号绑定失败'}) | |
| # 解绑ChatGPT账号 | |
| def del_bind_account(user_id): | |
| res = del_seedmap(user_id) | |
| if res == 200: | |
| user_index = next((i for i, user in enumerate(globals.users) if user['id'] == user_id), None) | |
| globals.users[user_index]['bind_email'] = '' | |
| globals.users[user_index]['bind_token'] = '' | |
| save_users(globals.users) | |
| return jsonify({'success': True, 'message': '账号解绑成功'}) | |
| else: | |
| return jsonify({'success': False, 'message': '账号解绑失败'}) | |
| # 获取全部ChatGPT账号的email | |
| def all_email(): | |
| # 返回账号的全部email | |
| return jsonify([token['email'] for token in globals.chatToken if 'email' in token]) | |
| # 绑定Claude账号 | |
| def bind_claude_account(user_id): | |
| data = request.get_json() | |
| user_index = next((i for i, user in enumerate(globals.users) if user['id'] == user_id), None) | |
| token_index = next((i for i, token in enumerate(globals.cluadeToken) if token['email'] == data['email']), None) | |
| globals.users[user_index]['bind_claude_email'] = data['email'] | |
| globals.users[user_index]['bind_claude_token'] = globals.cluadeToken[token_index]['skToken'] | |
| save_users(globals.users) | |
| return jsonify({'success': True, 'message': '账号绑定成功'}) | |
| # 解绑Claude账号 | |
| def del_bind_claude_account(user_id): | |
| user_index = next((i for i, user in enumerate(globals.users) if user['id'] == user_id), None) | |
| globals.users[user_index]['bind_claude_email'] = '' | |
| globals.users[user_index]['bind_claude_token'] = '' | |
| save_users(globals.users) | |
| return jsonify({'success': True, 'message': '账号解绑成功'}) | |
| # 获取全部Claude账号的email | |
| def all_claude_email(): | |
| # 返回账号的全部email | |
| return jsonify([token['email'] for token in globals.cluadeToken if 'email' in token]) | |
| # 删除用户 | |
| def delete_user(user_id): | |
| # 过滤掉要删除的用户 | |
| updated_users = [user for user in globals.users if user['id'] != user_id] | |
| user = next((user for user in globals.users if user['id'] == user_id), None) | |
| if len(updated_users) == len(globals.users): | |
| return jsonify({'success': False, 'message': '用户不存在'}), 404 | |
| globals.users = updated_users | |
| save_users(globals.users) | |
| if user['bind_token'] != '': | |
| del_seedmap(user_id) | |
| return jsonify({'success': True, 'message': '用户删除成功'}) |