Example #1
0
 def auth(self, username, password):
     ret = Authentificator.auth(self, username, password)
     if ret != "":
         return ret
     cur = None
     con = None
     try:
         con = sqlite3.connect(config.get("sql_auth", "users"))
         con.text_factory = str
         cur = con.cursor()
         cur.execute(
             """select username, password
                     from users where username=(?)""", (username, ))
         result = cur.fetchone()
         # если пользователь найден, то сравниваем хэш
         # переданного пароля с хэшем пароля, хранящимся в бд
         if result:
             if (result[1] == crypt(password, result[1][:5])):
                 return ""
             else:
                 return "(sql_auth) Invalid password"
         else:
             return "(sql_auth) User not found"
     except (sqlite3.OperationalError) as e:
         error("(sql_auth)", str(e))
         return str(e)
     finally:
         if cur is not None:
             cur.close()
         if con is not None:
             con.close()
     return ""
Example #2
0
 def auth(self, username, password):
     ret = Authentificator.auth(self, username, password)
     if ret != "":
         return ret
     cur = None
     con = None
     try:
         con = sqlite3.connect(config.get("sql_auth", "users"))
         con.text_factory = str
         cur = con.cursor()
         cur.execute("""select username, password
                     from users where username=(?)""", (username, ))
         result = cur.fetchone()
         # если пользователь найден, то сравниваем хэш
         # переданного пароля с хэшем пароля, хранящимся в бд
         if result:
             if (result[1] == crypt(password, result[1][:5])):
                 return ""
             else:
                 return "(sql_auth) Invalid password"
         else:
             return "(sql_auth) User not found"
     except(sqlite3.OperationalError) as e:
         error("(sql_auth)", str(e))
         return str(e)
     finally:
         if cur is not None:
             cur.close()
         if con is not None:
             con.close()
     return ""
Example #3
0
def main():
    global con, cur
    try:
        config = configparser.ConfigParser()
        config.readfp(open(conffile))

        con = sqlite3.connect(config.get("sql_auth", "users"))
        cur = con.cursor()
        try:
            cur.execute("""
            create table users
            (
                username    varchar(32) NOT NULL primary key collate nocase,
                password    varchar(100) NOT NULL
            )""")
            con.commit()
            print("Database \"users\" successfully created")
        except sqlite3.OperationalError:
            print("Database \"users\" is already created")

        cur.close()
        con.close()

        con = sqlite3.connect(config.get("sql", "session_db"))
        cur = con.cursor()
        try:
            cur.execute("""
            create table addresses
            (
                ip    varchar(15) NOT NULL,
                user  varchar(32) NOT NULL,
                start_time    uint(11) NOT NULL,
                end_time      uint(11) NOT NULL
    )""")
            cur.execute("""
            create table log
            (
                ip    varchar(15) NOT NULL,
                user  varchar(32) NOT NULL,
                start_time    uint(11) NOT NULL
            )""")
            con.commit()
            print("Database \"session_db\" successfully created")
        except sqlite3.OperationalError:
            print("Database \"session_db\" is already created")

    except IOError as e:
        error("Cannot open config file:", str(e))
    except sqlite3.OperationalError as e:
        error("(Sql)", str(e))
    finally:
        # закрываем бд
        if cur is not None:
            cur.close()
        if con is not None:
            con.close()
Example #4
0
def main():
    global con, cur
    try:
        config = configparser.ConfigParser()
        config.readfp(open(conffile))

        con = sqlite3.connect(config.get("sql_auth", "users"))
        cur = con.cursor()
        try:
            cur.execute("""
            create table users
            (
                username    varchar(32) NOT NULL primary key collate nocase,
                password    varchar(100) NOT NULL
            )""")
            con.commit()
            print("Database \"users\" successfully created")
        except sqlite3.OperationalError:
            print("Database \"users\" is already created")

        cur.close()
        con.close()

        con = sqlite3.connect(config.get("sql", "session_db"))
        cur = con.cursor()
        try:
            cur.execute("""
            create table addresses
            (
                ip    varchar(15) NOT NULL,
                user  varchar(32) NOT NULL,
                start_time    uint(11) NOT NULL,
                end_time      uint(11) NOT NULL
    )""")
            cur.execute("""
            create table log
            (
                ip    varchar(15) NOT NULL,
                user  varchar(32) NOT NULL,
                start_time    uint(11) NOT NULL
            )""")
            con.commit()
            print("Database \"session_db\" successfully created")
        except sqlite3.OperationalError:
            print("Database \"session_db\" is already created")

    except IOError as e:
        error("Cannot open config file:", str(e))
    except sqlite3.OperationalError as e:
        error("(Sql)", str(e))
    finally:
        # закрываем бд
        if cur is not None:
            cur.close()
        if con is not None:
            con.close()
Example #5
0
def add(user, password):
    global con, cur

    password = crypt(password, "".join(["$6$", getsalt()]))
    try:
        cur.execute("""INSERT INTO users
            (`username`, `password`) VALUES (?, ?)""", (user, password))
        con.commit()
    except sqlite3.IntegrityError as e:
        error(str(e))
Example #6
0
def add(user, password):
    global con, cur

    password = crypt(password, "".join(["$6$", getsalt()]))
    try:
        cur.execute(
            """INSERT INTO users
            (`username`, `password`) VALUES (?, ?)""", (user, password))
        con.commit()
    except sqlite3.IntegrityError as e:
        error(str(e))
Example #7
0
def main():
    global con, cur, encoding
    try:

        config = configparser.ConfigParser()
        config.readfp(open(conffile))

        # коннектимся к бд, создаем таблицу, если её не существует
        # timeout 10 sec
        con = sqlite3.connect(config.get("sql_auth", "users"), 10)
        con.text_factory = str
        cur = con.cursor()

        parser = argparse.ArgumentParser()
        parser.add_argument("-p", "--password", action="store")
        parser.add_argument("-u", "--user", action="store")
        group = parser.add_mutually_exclusive_group()
        group.add_argument("-a", "--add", action='store_true', help="Add user")
        group.add_argument("-l",
                           "--list",
                           action='store_true',
                           help="List users (default)")
        group.add_argument("-d",
                           "--delete",
                           action='store_true',
                           help="Delete user")

        args = parser.parse_args()

        if args.add:
            if (args.user is not None) and (args.password is not None):
                add(args.user.lower(), args.password)
            else:
                error("need username and password")
                sys.exit(2)
        elif args.delete:
            if (args.user is not None):
                delete(args.user.lower())
            else:
                error("need username")
                sys.exit(2)
        else:
            list_users()

    except IOError as e:
        error("Cannot open config file:", str(e))
    except sqlite3.OperationalError as e:
        error(str(e))

    except ImportError:
        pass
    finally:
        # закрываем бд
        if cur is not None:
            cur.close()
        if cur is not None:
            con.close()
Example #8
0
def main():
    global con, cur, encoding
    try:

        config = configparser.ConfigParser()
        config.readfp(open(conffile))

        # коннектимся к бд, создаем таблицу, если её не существует
        # timeout 10 sec
        con = sqlite3.connect(config.get("sql_auth", "users"), 10)
        con.text_factory = str
        cur = con.cursor()

        parser = argparse.ArgumentParser()
        parser.add_argument("-p", "--password", action="store")
        parser.add_argument("-u", "--user", action="store")
        group = parser.add_mutually_exclusive_group()
        group.add_argument("-a", "--add",
                    action='store_true', help="Add user")
        group.add_argument("-l", "--list",
                    action='store_true', help="List users (default)")
        group.add_argument("-d", "--delete",
                    action='store_true', help="Delete user")

        args = parser.parse_args()

        if args.add:
            if (args.user is not None) and (args.password is not None):
                add(args.user.lower(), args.password)
            else:
                error("need username and password")
                sys.exit(2)
        elif args.delete:
            if (args.user is not None):
                delete(args.user.lower())
            else:
                error("need username")
                sys.exit(2)
        else:
            list_users()

    except IOError as e:
        error("Cannot open config file:", str(e))
    except sqlite3.OperationalError as e:
        error(str(e))

    except ImportError:
        pass
    finally:
        # закрываем бд
        if cur is not None:
            cur.close()
        if cur is not None:
            con.close()
Example #9
0
    def auth(self, username, password):
        ret = Authentificator.auth(self, username, password)
        if ret:
            return ret
    # аутентифицирует пользователя через ldap-сервер
        try:
            l = ldap.open(config.get("ldap", "server"))
            login_dn = config.get("ldap", "login_dn") % username
            error(login_dn)
            login_pass = password
            l.simple_bind_s(login_dn, login_pass)
        except(ldap.INVALID_CREDENTIALS):
            return "(ldap) INVALID LOGIN/PASSWORD"
        except(ldap.SERVER_DOWN):
            return "(ldap) Server is down"
        except:
            return "(ldap) Unknown error"

        return ""
Example #10
0
    def auth(self, username, password):
        ret = Authentificator.auth(self, username, password)
        if ret:
            return ret

    # аутентифицирует пользователя через ldap-сервер
        try:
            l = ldap.open(config.get("ldap", "server"))
            login_dn = config.get("ldap", "login_dn") % username
            error(login_dn)
            login_pass = password
            l.simple_bind_s(login_dn, login_pass)
        except (ldap.INVALID_CREDENTIALS):
            return "(ldap) INVALID LOGIN/PASSWORD"
        except (ldap.SERVER_DOWN):
            return "(ldap) Server is down"
        except:
            return "(ldap) Unknown error"

        return ""
Example #11
0
except ImportError:
    from pysqlite2 import dbapi2 as sqlite3

import time  # for time.sleep and time conversion functions
import datetime

from tsqauth import error, template, ispy3  # functions
from tsqauth import conffile, encoding

config = None

try:
    config = configparser.ConfigParser()
    config.readfp(open(conffile))
except IOError as e:
    error(str(e))


class Authentificator:
    def __init__(self):
        pass

    # общая функция аутентификации, вызывает auth_ldap или auth_sql
    # в зависимости от значения переменной "method"
    def auth(self, username, password):
        # если логин или пароль пустой, то выводим ошибку
        if not (username and password):
            return "Enter login and password"
        else:
            return ""
Example #12
0
except ImportError:
    from pysqlite2 import dbapi2 as sqlite3

import time  # for time.sleep and time conversion functions
import datetime

from tsqauth import error, template, ispy3  # functions
from tsqauth import conffile, encoding

config = None

try:
    config = configparser.ConfigParser()
    config.readfp(open(conffile))
except IOError as e:
    error(str(e))


class Authentificator:
    def __init__(self):
        pass

    # общая функция аутентификации, вызывает auth_ldap или auth_sql
    # в зависимости от значения переменной "method"
    def auth(self, username, password):
        # если логин или пароль пустой, то выводим ошибку
        if not (username and password):
            return "Enter login and password"
        else:
            return ""