def get_users(): """ 显示用户的信息,用户新建、删除、解锁用户时显示用户基本信息 :return: """ username = common.input_msg("请输入用户名:") # 创建一个用户实例 _deluser = Users() _deluser.username = username # 如果用户名存在,load用户信息成功 if _deluser.load_user_info(): # 先显示一下用户的信息 common.show_message( template.user_info.format( username=_deluser.username, name=_deluser.name, mobile=_deluser.mobile, role=_deluser.role, isdel="否" if _deluser.isdel == 0 else "是", islocked="否" if _deluser.islocked == 0 else "是", bindcard=_deluser.bindcard), "NOTICE") return _deluser else: common.show_message("用户名不存在!", "ERROR") return False
def load_modules(): """ Import the system modules """ from htpc.root import Root htpc.ROOT = Root() from htpc.settings import Settings htpc.ROOT.settings = Settings() from htpc.log import Log htpc.ROOT.log = Log() from htpc.updater import Updater htpc.ROOT.update = Updater() # Import all modules. from modules.kodi import Kodi htpc.ROOT.kodi = Kodi() from modules.sabnzbd import Sabnzbd htpc.ROOT.sabnzbd = Sabnzbd() from modules.couchpotato import Couchpotato htpc.ROOT.couchpotato = Couchpotato() from modules.sickbeard import Sickbeard htpc.ROOT.sickbeard = Sickbeard() from modules.transmission import Transmission htpc.ROOT.transmission = Transmission() from modules.deluge import Deluge htpc.ROOT.deluge = Deluge() from modules.squeezebox import Squeezebox htpc.ROOT.squeezebox = Squeezebox() from modules.newznab import Newznab htpc.ROOT.newznab = Newznab() from modules.utorrent import UTorrent htpc.ROOT.utorrent = UTorrent() from modules.nzbget import NZBGet htpc.ROOT.nzbget = NZBGet() from modules.qbittorrent import Qbittorrent htpc.ROOT.qbittorrent = Qbittorrent() from modules.stats import Stats htpc.ROOT.stats = Stats() # Commented out since it broken # Its left here incase someone wants to fix it #from modules.tvheadend import TVHeadend #htpc.ROOT.tvheadend = TVHeadend() from modules.torrentsearch import Torrentsearch htpc.ROOT.torrentsearch = Torrentsearch() from modules.plex import Plex htpc.ROOT.plex = Plex() from modules.users import Users htpc.ROOT.users = Users() from modules.sonarr import Sonarr htpc.ROOT.sonarr = Sonarr() from modules.sickrage import Sickrage htpc.ROOT.sickrage = Sickrage() from modules.samsungtv import Samsungtv htpc.ROOT.samsungtv = Samsungtv() from modules.vnstat import Vnstat htpc.ROOT.vnstat = Vnstat() from modules.headphones import Headphones htpc.ROOT.headphones = Headphones() from modules.mylar import Mylar htpc.ROOT.mylar = Mylar()
def auth(client_socket, args): """ 客户端用户登录认证模块 :param client_socket: 客户端socket对象 :param args: 用户发送过来的数据 ex: "auth|test|a7470858e79c282bc2f6adfd831b132672dfd1224c1e78cbf5bcd057" :return: 3状态结果: 0: 认证成功 , 1:用户不存在 , 2:用户被锁 3:用户名或密码错误 """ recv_data_list = args.split("|") username = recv_data_list[1] passwd = recv_data_list[2] # 将传入的用户对象实例化 client_user = Users(username) # 若用户存在 if client_user.exists: # 验证成功 if client_user.user_auth(passwd): auth_status = "0" # 加载用户的磁盘配额信息 user_space = "{0}|{1}".format(client_user.totalspace, client_user.usedspace) # 验证失败 elif client_user.isdel == 1: # 用户已经删除,不存在 auth_status = "1" elif client_user.islocked == 1: # 用户被锁了 auth_status = "2" else: # 密码错误 auth_status = "3" else: auth_status = "1" # 认证结果发送给客户端 client_socket.send(bytes(auth_status, encoding='utf8')) # 认证成功则将用户空间信息发送到客户端 if auth_status == "0": client_socket.send(bytes(user_space, 'utf8')) return client_user
def get_users(): """ 显示用户的信息,用户新建、删除、解锁用户时显示用户基本信息 :return: """ username = common.input_msg("请输入用户名:") # 创建一个用户实例 _deluser = Users() _deluser.username = username # 如果用户名存在,load用户信息成功 if _deluser.load_user_info(): # 先显示一下用户的信息 common.show_message(template.user_info.format(username=_deluser.username, name=_deluser.name, mobile=_deluser.mobile, role=_deluser.role, isdel="否" if _deluser.isdel == 0 else "是", islocked="否" if _deluser.islocked == 0 else "是", bindcard=_deluser.bindcard) , "NOTICE") return _deluser else: common.show_message("用户名不存在!", "ERROR") return False
def load_modules(): """ Import the system modules """ from htpc.root import Root htpc.ROOT = Root() from htpc.settings import Settings htpc.ROOT.settings = Settings() from htpc.log import Log htpc.ROOT.log = Log() from htpc.updater import Updater htpc.ROOT.update = Updater() # Import all modules. from modules.xbmc import Xbmc htpc.ROOT.xbmc = Xbmc() from modules.sabnzbd import Sabnzbd htpc.ROOT.sabnzbd = Sabnzbd() from modules.couchpotato import Couchpotato htpc.ROOT.couchpotato = Couchpotato() from modules.sickbeard import Sickbeard htpc.ROOT.sickbeard = Sickbeard() from modules.transmission import Transmission htpc.ROOT.transmission = Transmission() from modules.deluge import Deluge htpc.ROOT.deluge = Deluge() from modules.squeezebox import Squeezebox htpc.ROOT.squeezebox = Squeezebox() from modules.search import Search htpc.ROOT.search = Search() from modules.utorrent import UTorrent htpc.ROOT.utorrent = UTorrent() from modules.nzbget import NZBGet htpc.ROOT.nzbget = NZBGet() from modules.qbittorrent import qbittorrent htpc.ROOT.qbittorrent = qbittorrent() from modules.stats import Stats htpc.ROOT.stats = Stats() from modules.tvheadend import TVHeadend htpc.ROOT.tvheadend = TVHeadend() from modules.plex import Plex htpc.ROOT.plex = Plex() from modules.users import Users htpc.ROOT.users = Users() from modules.nzbdrone import NzbDrone htpc.ROOT.nzbdrone = NzbDrone()
def manager(userobj): """ 主菜单后台管理模块 :param userobj: 当前登录用户对象 :return: """ if userobj.islogin: if userobj.role == "admin": quit_flag = False while not quit_flag: _show_template = template.index_admin print(_show_template.format(username=userobj.name)) _choose = input("选择操作功能: ").strip().lower() # 创建新用户 if _choose == "1": _newuser = Users() # 调用初始化用户函数创建新用户 _newuser.init_user_info() # 删除用户 if _choose == "2": _user = get_users() if _user: confirm = common.input_msg("确定要删除此用户吗(y/n)?", ("y", "n")) if confirm == "y": _user.del_user() common.show_message("用户删除成功!", "NOTICE") # 解锁用户 if _choose == "3": _user = get_users() if _user: confirm = common.input_msg("确认解锁吗(y/n)?", ("y", "n")) if confirm == "y": _user.unlock_user() common.show_message("用户解锁成功!", "NOTICE") # 发行信用卡 if _choose == "4": newcard = fill_card_info() newcard.create_card() common.show_message("发卡成功!", "NOTICE") # 冻结信用卡 if _choose == "5": cardno = common.input_msg("输入卡号:") card = CreditCard(cardno) if not card.card_is_exists: common.show_message("卡号不存在", "ERROR") else: # 调用模板显示卡信息 common.show_message( template.card_info.format( cardno=card.cardno, owner=card.owner, total=card.credit_total, balance=card.credit_balance, status="正常" if card.frozenstatus == 0 else "冻结"), "INFORMATION") confirm = common.input_msg("确认要冻结此卡吗(y/n)?", ("y", "n")) if confirm == "y": card.frozenstatus = 1 card.update_card() common.show_message("此卡已冻结!", "NOTICE") # 退出 if _choose == "0": quit_flag = True else: # 不是 admin 角色无权限 common.show_message("权限不够!", "ERROR") else: common.show_message("请先登录系统!", "NOTICE") userobj.login()
common.show_message("此卡已冻结!", "NOTICE") # 退出 if _choose == "0": quit_flag = True else: # 不是 admin 角色无权限 common.show_message("权限不够!", "ERROR") else: common.show_message("请先登录系统!", "NOTICE") userobj.login() if __name__ == "__main__": today = datetime.now().strftime("%Y-%m-%d") weekoftoday = date.weekday(datetime.now()) curruser = Users() # 初始化对账单 report.create_statement_main() # -------- 开始主程序 ------------------- exitflag = False while not exitflag: # 如果用户登录了,显示登录的界面; 未登录显示未登录的界面 if not curruser.islogin: print( template.index_default_menu.format( "", today, common.numtochr(weekoftoday))) else: print( template.index_logined_menu.format(
def manager(userobj): """ 主菜单后台管理模块 :param userobj: 当前登录用户对象 :return: """ if userobj.islogin: if userobj.role == "admin": quit_flag = False while not quit_flag: _show_template = template.index_admin print(_show_template.format(username=userobj.name)) _choose = input("选择操作功能: ").strip().lower() # 创建新用户 if _choose == "1": _newuser = Users() # 调用初始化用户函数创建新用户 _newuser.init_user_info() # 删除用户 if _choose == "2": _user = get_users() if _user: confirm = common.input_msg("确定要删除此用户吗(y/n)?", ("y", "n")) if confirm == "y": _user.del_user() common.show_message("用户删除成功!", "NOTICE") # 解锁用户 if _choose == "3": _user = get_users() if _user: confirm = common.input_msg("确认解锁吗(y/n)?", ("y", "n")) if confirm == "y": _user.unlock_user() common.show_message("用户解锁成功!", "NOTICE") # 发行信用卡 if _choose == "4": newcard = fill_card_info() newcard.create_card() common.show_message("发卡成功!", "NOTICE") # 冻结信用卡 if _choose == "5": cardno = common.input_msg("输入卡号:") card = CreditCard(cardno) if not card.card_is_exists: common.show_message("卡号不存在", "ERROR") else: # 调用模板显示卡信息 common.show_message(template.card_info.format(cardno=card.cardno, owner=card.owner, total=card.credit_total, balance=card.credit_balance, status="正常" if card.frozenstatus == 0 else "冻结" ), "INFORMATION") confirm = common.input_msg("确认要冻结此卡吗(y/n)?", ("y", "n")) if confirm == "y": card.frozenstatus = 1 card.update_card() common.show_message("此卡已冻结!", "NOTICE") # 退出 if _choose == "0": quit_flag = True else: # 不是 admin 角色无权限 common.show_message("权限不够!", "ERROR") else: common.show_message("请先登录系统!", "NOTICE") userobj.login()
common.show_message("此卡已冻结!", "NOTICE") # 退出 if _choose == "0": quit_flag = True else: # 不是 admin 角色无权限 common.show_message("权限不够!", "ERROR") else: common.show_message("请先登录系统!", "NOTICE") userobj.login() if __name__ == "__main__": today = datetime.now().strftime("%Y-%m-%d") weekoftoday = date.weekday(datetime.now()) curruser = Users() # 初始化对账单 report.create_statement_main() # -------- 开始主程序 ------------------- exitflag = False while not exitflag: # 如果用户登录了,显示登录的界面; 未登录显示未登录的界面 if not curruser.islogin: print(template.index_default_menu.format("", today, common.numtochr(weekoftoday))) else: print(template.index_logined_menu.format("欢迎您: {0}".format(curruser.name), today, common.numtochr(weekoftoday))) choose = common.input_msg("选择功能编号[1-5]: ", ("1", "2", "3", "4", "5")).strip()
from modules.general import * from modules.users import Users from modules.projects import Projects from modules.content import Content from modules.schedules import Schedules from modules.performance import Performance from modules.connectivity import Connectivity # modules putting the info together for delivery from modules.email_content import * from modules.send_email import send_report_out # check if deployment uses the .ini file if path.exists("looker.ini"): looker_client = setup.configure_sdk() api_user = Users(looker_client) logger.info("Found looker.ini file in the directory.") # use environment variable instead else: try: LOOKERSDK_API_VERSION = 4.0 # enforcing API 4.0 to access new endpoints when released LOOKERSDK_BASE_URL = os.environ.get('LOOKERSDK_BASE_URL') LOOKERSDK_CLIENT_ID = os.environ.get('LOOKERSDK_CLIENT_ID') LOOKERSDK_CLIENT_SECRET = os.environ.get('LOOKERSDK_CLIENT_SECRET') looker_client = setup.configure_sdk() api_user = Users(looker_client) logger.info("Found Looker ENV VAR in the system.") except Exception as e: logger.error('Missing Environment Variables {}'.format(e)) if not api_user.validate_api_creds():
# 服务端未启动,则启动服务端 P_SERVER = ftpserver.start() #ftpserver.doprocess() SERVER_RUNNING_STATUS = True print("\033[1;30mFTP 服务端已启动!\033[0m;") if command == "2": try: tmpflag = False while not tmpflag: username = common.input_msg("输入用户名[q返回]: ") if username == "q": tmpflag = True continue # 创建用户对象 new_user = Users(username) if not new_user.exists: userpasswd = common.input_msg("设置初始密码[默认12345]: ", default="12345") totalspace = common.input_msg("设置磁盘配额[默认500M]: ", default=str(settings.HOME_QUOTA)) print("\n 正在初始化用户,请稍等.........\n") new_user.password = common.encry_sha(userpasswd) new_user.islocked = 0 new_user.isdel = 0 new_user.totalspace = int(totalspace) * 1024 * 1024 new_user.usedspace = 0 new_user.create_user() print("初始化成功!") else: print("\033[1;30m用户已经存在!\033[0m;\n")
MENU = '''\033[1;32m ----------------------------------------- | 简版堡垒机 | ----------------------------------------- \033[0m''' if __name__ == "__main__": trycount = 3 count = 0 while count < trycount: print(MENU) username = common.inputs("用户名: ").lower() passwd = common.inputs("密码: ") # 实例化一个用户对象 userobj = Users(username) if not userobj.exists: print("用户名或密码错误!\n") common.write_log("用户{0}登录, 用户名不存在".format(username), "info", "op") count += 1 continue else: auth_stat = userobj.user_auth(passwd) if not auth_stat: common.write_log("用户{0}登录, 用户名密码不正确".format(username), "info", "op") print("登录失败!用户名或密码错误!") count += 1 continue else: # 登录成功 common.write_log("用户{0}登录, 登录成功!".format(username), "info", "op")
# 服务端未启动,则启动服务端 #P_SERVER = ftpserver.start() ftpserver.doprocess() SERVER_RUNNING_STATUS = True print("\033[1;30mFTP 服务端已启动!\033[0m;") if command == "2": try: tmpflag = False while not tmpflag: username = common.input_msg("输入用户名[q返回]: ") if username == "q": tmpflag = True continue # 创建用户对象 new_user = Users(username) if not new_user.exists: userpasswd = common.input_msg("设置初始密码[默认12345]: ", default="12345") totalspace = common.input_msg("设置磁盘配额[默认500M]: ", default=str( settings.HOME_QUOTA)) print("\n 正在初始化用户,请稍等.........\n") new_user.password = common.encry_sha(userpasswd) new_user.islocked = 0 new_user.isdel = 0 new_user.totalspace = int(totalspace) * 1024 * 1024 new_user.usedspace = 0 new_user.create_user()
#!/usr/bin/python3 #@Author:CaiDeyang #@Time: 2018/9/14 12:27 import os import sys import pickle BaseDir = os.path.dirname(os.path.dirname(os.path.abspath(sys.argv[0]))) sys.path.append(BaseDir) UploadsDir = os.path.join(BaseDir, 'uploads') from modules.users import Users name = 'caideyang' password = '******' # 123456 quta = 1000 # 限额 1000M cdy_obj = Users(name, password, quta) with open(name, 'wb') as db_f: pickle.dump(cdy_obj, db_f) name = 'deyangcai' password = '******' # 123456 quta = 500 # 限额 500M dyc_obj = Users(name, password, quta) with open(name, 'wb') as db_f: pickle.dump(dyc_obj, db_f) # if __name__ == "__main__": # with open(name, 'wb') as db_f: # pickle.dump(data, db_f)