コード例 #1
0
ファイル: login.py プロジェクト: pushell/psh
def index_login():
    import getpass
    from logbuff import Logbuff as logbuff

    print(
        """
*******************************************************************************
*                        Welcome to Psh&Imagine shell !                       *
*    Please Enter your username and password ! Press CTRL_C to abort !        *
*******************************************************************************
     """
    )
    time = 0
    while time < 3:
        user = input("User:"******" ":
            password = getpass.getpass("Password:"******" ":
                level = checklevel(user, password)
                if level == "usererror" or level == "pwderror":
                    print("Authentication failure !")
                    time += 1
                    continue

                else:
                    print("Welcome %s !  %s" % (user, datetime.datetime.now()))
                    l = logbuff(logname=user + TIME + ".log", logger=user)
                    l.logbuff.info(user + " login!")
                    ins = db(host=HOST, port=PORT, user=USER, password=PASSWORD, db=DB)
                    conn = ins.isconnect()
                    if conn == "error":
                        print("exit now! ")
                        exit(0)

                    try:
                        with conn.cursor() as cur:
                            update_online = "update `im_sys_privileges` set `online`=1  where `user`=%s"
                            cur.execute(update_online, user)
                            cur.close()
                    except:
                        print("ERROR!login:index_login:131")
                    finally:
                        conn.commit()
                        conn.close()
                    return level, user
                    break
            else:
                time += 1
                continue
        else:
            time += 1
            continue
コード例 #2
0
ファイル: login.py プロジェクト: pushell/psh
def checklevel(local_user, local_password):
    l_user = local_user
    l_pwd = local_password
    ins = db(host=HOST, port=PORT, user=USER, password=PASSWORD, db=DB)
    conn = ins.isconnect()
    if conn == "error":
        print("exit now! ")
        exit(0)
    loginflag = "flase"
    try:
        with conn.cursor() as cur:
            checkuser = "******"
            checkpwd = "select `passwd` from im_sys_privileges where `user`=%s"
            res = cur.execute(checkuser, (l_user))
            if res != 0:
                loginflag = "true"
                exres = cur.fetchone()
                level = exres[1]
                online = exres[2]
                if online == 1:
                    print("Max login limit!")
                if loginflag == "true" and online == 0:
                    cur.execute(key, (l_pwd))
                    t_key = cur.fetchone()
                    t_key = t_key[0]
                    cur.execute(checkpwd, (l_user))
                    r_pwd = cur.fetchone()
                    r_pwd = r_pwd[0]

                    if t_key == r_pwd:
                        # print ("auth ok")
                        return level
                        cur.close()
                        conn.close()
                    else:
                        # print ("password failed")
                        loginflag = "pwderror"
                        return loginflag
                        cur.close()
                        conn.close()
                else:
                    loginflag = "usererror"
                    return loginflag
            else:
                loginflag = "usererror"
                # print (loginflag)
                return loginflag
    except:
        print("Error!login.checklevel:88,未知错误")
    finally:
        conn.close()
コード例 #3
0
ファイル: logout.py プロジェクト: pushell/psh
def logout(local_user):
    l_user=local_user
    ins=db(host=HOST,port=PORT,user=USER,password=PASSWORD,db=DB)
    conn=ins.isconnect()
    if conn == 'error':
        print ("exit now! ")
        exit(0)
    try:
        with conn.cursor() as cur:
            logout_online="update im_sys_privileges set `online`=0  where `user`=%s"
            if cur.execute(logout_online,(l_user)):
                cur.close()
                return 'ok'           
    except:
        print ("Error!login.checklevel:88,未知错误")
    finally:
        conn.commit()
        conn.close()
コード例 #4
0
ファイル: db_init.py プロジェクト: pushell/psh
def init():
    config=configparser.ConfigParser()
    conf=config.read(pshconf.imagineconf)
    ins=db(host=config.get('db','host'),port=config.getint('db','port'),user=config.get('db','user'),password=config.get('db','password'),db=config.get('db','db'))
    conn=ins.isconnect()
    
    try:
        with conn.cursor() as cur:
            create_db="CREATE DATABASE `psh_imagine` DEFAULT CHARACTER SET utf8"
            create_table="CREATE TABLE `psh_imagine`.`im_sys_privileges` (`id` int(11) NOT NULL AUTO_INCREMENT, `user` varchar(60) NOT NULL, `passwd` varchar(255) NOT NULL,`level` int(11) NOT NULL,`regtime` datetime NOT NULL,`full_name` varchar(255) DEFAULT NULL,`sa` varchar(30) NOT NULL,`na` varchar(30) NOT NULL,`dba` varchar(30) NOT NULL,`online` int(11) NOT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 "
            insert_data="insert into `psh_imagine`.`im_sys_privileges` values ('','admin',md5(password('admin')),3,now(),'admin',1,1,1,0)" 
            if cur.execute(create_db): 
                print ("create db ok! 创建数据库,成功! ") 
            res_create_table=cur.execute(create_table)
            res_insert_data=cur.execute(insert_data)
            if res_insert_data == 1:
                print("initialization ok! 初始化数据,成功!")
    except:
        print ("initialization  failure! 初始化失败! ")
    finally:
        conn.commit()
        conn.close()