Пример #1
0
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
Пример #2
0
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()
Пример #3
0
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
Пример #4
0
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
Пример #5
0
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
Пример #6
0
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()
Пример #7
0
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()
Пример #8
0
                            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(
Пример #9
0
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()
Пример #10
0
                            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()
Пример #11
0
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():
Пример #12
0
                # 服务端未启动,则启动服务端
                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")
Пример #13
0
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")
Пример #14
0
                # 服务端未启动,则启动服务端
                #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()
Пример #15
0
#!/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)