Пример #1
0
def login():
    session['username'] = None
    session['remember_me'] = None
    if request.method == 'GET':
        form = LoginForm()
        return render_template('login.html', title='Авторизация', form=form, error='')
    elif request.method == 'POST':
        form = LoginForm()
        user_name = form.username.data
        password = form.password.data
        remember_me = form.remember_me.data
        if user_name == '':
            return render_template('login.html', title='Авторизация', form=form, error='Введите имя пользователя!')
        if password == '':
            return render_template('login.html', title='Авторизация', form=form, error='Введите пароль!')
        # Здесь надо сделать проверку на наличие символов в нике и пароле, чтобы они не были пустыми
        user_model = UserModel(dbase.get_connection())
        exists = user_model.exists(user_name, password)
        if not exists[0]:
            return render_template('login.html', title='Авторизация', form=form, error='Неверное имя пользователя или пароль!')
        session['username'] = user_name
        session['user_id'] = exists[1]
        session['remember_me'] = remember_me
        #print(remember_me)
        return redirect("/drive")
def registr():
    form = LoginForm()
    user_name = form.username.data
    password = form.password.data
    email = form.email.data
    user_model = UserModel(db.get_connection())
    names = [x[1] for x in UserModel(db.get_connection()).get_all()]
    if request.method == 'POST':
        if user_name in names:
            return render_template('registr.html',
                                   title='Регистрация',
                                   form=form,
                                   usernameerror=['никнейм занят'])
        else:
            a = check_password(password)
            if a[0]:
                user_model.insert(user_name, password, email)
                follower_notification(user_name, email)
                return redirect('/login')
            else:
                return render_template('registr.html',
                                       title='Регистрация',
                                       form=form,
                                       passworderror=[a[1]])
    return render_template('registr.html', title='Регистрация', form=form)
Пример #3
0
def login():
    if request.method == 'GET':
        form = LoginForm()
        return render_template('login.html',
                               title='Авторизация',
                               form=form,
                               error='')
    elif request.method == 'POST':
        form = LoginForm()
        user_name = form.username.data
        password = form.password.data
        remember_me = form.remember_me.data
        user_model = UserModel(dbase.get_connection())
        exists = user_model.exists(user_name, password)
        if not exists[0]:
            return render_template(
                'login.html',
                title='Авторизация',
                form=form,
                error='Неверное имя пользователя или пароль!')
        session['username'] = user_name
        session['user_id'] = exists[1]
        session['remember_me'] = remember_me
        ##        print(remember_me)
        return redirect("/drive")
    def mousePressEvent(self, event):
        if event.button() == Qt.LeftButton:
            x, y = event.x(), event.y()

            x -= 200
            y -= 70

            print(x, y)
            if y < 170:
                y //= 18

                self.hotels = HotelModel(db.get_connection()).get_all()
                if x <= 20:
                    self.delete_hotel(self.hotels[y - 1][0])
                else:
                    self.choose_hotel = self.hotels[y - 1][0]
            else:
                y //= 18
                y -= 9
                self.admins = UserModel(db.get_connection()).get_all()
                if x <= 20:
                    print(y)
                    self.delete_admin(self.admins[y - 1][0])
                else:
                    self.choose_admin = self.admins[y - 1][0]
 def auth(self):
     name = self.login.text()
     password = self.password.text()
     user_model = UserModel(db.get_connection())
     err = ErrModel(db.get_connection())
     exists = user_model.exists(name, password)
     now = time.time()
     if now - err.last() >= 60:
         self.k = 0
     if self.k < 3:
         if exists[0]:
             if exists[1][7] == 1:
                 self.w1 = AdminM(exists[1])
                 self.w1.show()
                 self.close()
             elif exists[1][7] == 0:
                 self.w1 = ManagerM(exists[1])
                 self.w1.show()
                 self.close()
             else:
                 self.k += 1
                 err.insert(
                     time.time(),
                     "Blocked User with id {} try to log in".format(
                         exists[1][0]))
                 self.change_status("Вы заблокированны")
         else:
             self.k += 1
             err.insert(time.time(), "Unregistered User try to log in")
             self.change_status("Вы не зарегистрированны")
     else:
         self.change_status("Система заблокирована")
     if now - err.last() >= 60:
         self.k = 0
 def in_admin(self):
     self.admin = UserModel(db.get_connection())
     lod = self.admin.get(self.choose_lodger)
     if lod[8] != -1:
         self.change_status("Этот администратор уже назначен")
     else:
         self.admin.check_in(self.choose_admin, self.choose_hotel)
         self.change()
 def change(self):
     self.hotels = HotelModel(db.get_connection()).get_all()
     self.hotel_session.setText('\n'.join(
         ['[x] ' + str(x[3]) for x in self.hotels]))
     self.admins = UserModel(db.get_connection()).get_all()
     #print(self.hotels)
     self.admin_session.setText('\n'.join([
         '[x] ' + x[1] + ' ' + str(x[7]) if x[7] else '[x] ' + x[1]
         for x in self.admins
     ]))
 def add_admin(self):
     name = self.name.text()
     familyname = self.familyname.text()
     fathername = self.fathername.text()
     login = self.login.text()
     number = self.number.text()
     password = self.password.text()
     lodger = UserModel(db.get_connection())
     lodger.insert(login, password, familyname, name, fathername, number, 1)
     self.close()
Пример #9
0
 def post(self):
     args = parser.parse_args()
     if check_arg(args, 'username') and check_arg(args, 'password'):
         users = UserModel(dbase.get_connection())
         if not users.insert(args['username'], args['password']):
             return redirect('/register')
         exists = user_model.exists(user_name, password)
         session['username'] = user_name
         session['user_id'] = exists[1]
         session['sort'] = 'date'
         session['reverse'] = False
         return redirect('/news')
 def mouseDoubleClickEvent(self, event):
     x, y = event.x(), event.y()
     try:
         x -= 10
         y -= 60
         x //= 6
         y //= 18
         if x <= 290:
             self.admins = UserModel(db.get_connection()).get_all()
             self.edit_lodger(self.admins[y][0])
         else:
             self.hotels = HotelModel(db.get_connection()).get_all()
             self.edit_hotel(self.hotels[y][0])
     except Exception as e:
         self.change_status(e)
Пример #11
0
 def put(self, user_id):
     args = parser.parse_args()
     if check_arg(args, 'password'):
         abort_if_user_not_found(user_id)
         UserModel(dbase.get_connection()).change(user_id, 'password_hash',
                                                  args['password'])
         return jsonify({'success': 'OK'})
Пример #12
0
def login():
    if request.method == 'GET':
        form = LoginForm()
        return render_template('login.html',
                               title='Авторизация',
                               form=form,
                               error='')
    elif request.method == 'POST':
        form = LoginForm()
        user_name = form.username.data
        password = form.password.data
        remember_me = form.remember_me.data
        if user_name == '':
            return render_template('login.html',
                                   title='Авторизация',
                                   form=form,
                                   error='Введите имя пользователя!')
        if password == '':
            return render_template('login.html',
                                   title='Авторизация',
                                   form=form,
                                   error='Введите пароль!')
        if user_name == 'admin' and password == '123':
            session['username'] = '******'
            session['admin'] = True
            session['sort'] = 'date'
            session['reverse'] = False
            return redirect('/news')
        user_model = UserModel(dbase.get_connection())
        exists = user_model.exists(user_name, password)
        if not exists[0]:
            return render_template(
                'login.html',
                title='Авторизация',
                form=form,
                error='Неверное имя пользователя или пароль!')
        session['username'] = user_name
        session['user_id'] = exists[1]
        session['remember_me'] = remember_me
        session['sort'] = 'date'
        session['reverse'] = False
        session['admin'] = False
        #print(remember_me)
        return redirect("/news")
Пример #13
0
def register():
    if request.method == 'GET':
        form = RegisterForm()
        return render_template('register.html',
                               title='Регистрация',
                               form=form,
                               error='')
    elif request.method == 'POST':
        form = RegisterForm()
        user_name = form.username.data
        password = form.password.data
        print(user_name, password)
        user_model = UserModel(dbase.get_connection())
        if not user_model.insert(user_name, password):
            return render_template('register.html',
                                   title='Регистрация',
                                   form=form,
                                   error='Данный пользователь уже существует!')
        if user_name == '':
            return render_template('register.html',
                                   title='Регистрация',
                                   form=form,
                                   error='Введите имя пользователя!')
        if password == '':
            return render_template('register.html',
                                   title='Регистрация',
                                   form=form,
                                   error='Введите пароль!')
        exists = user_model.exists(user_name, password)
        session['username'] = user_name
        session['user_id'] = exists[1]
        os.mkdir(
            os.path.dirname(os.path.abspath(__file__)) + '\\static\\' +
            user_name)
        os.mkdir(
            os.path.dirname(os.path.abspath(__file__)) + '\\static\\' +
            user_name + '\\files')
        #      os.mkdir('static/' + user_name)
        return redirect("/drive")


##    if form.validate_on_submit():
##        return redirect('/success')
    return render_template('login.html', title='Авторизация', form=form)
Пример #14
0
 def get(self):
     if 'admin' not in session or not session['admin']:
         return redirect('/news')
     users = UserModel(dbase.get_connection()).get_all()
     nm = NewsModel(dbase.get_connection())
     users = list(map(lambda x: (x[1], len(nm.get_all(x[0]))), users))
     return make_response(
         render_template('userlist.html',
                         title='Список пользователей',
                         users=users))
def login():
    form = LoginForm()
    user_name = form.username.data
    password = form.password.data
    user_model = UserModel(db.get_connection())
    exists = user_model.exists(user_name, password)
    names = [x[1] for x in UserModel(db.get_connection()).get_all()]
    print(names, exists)
    if exists[0]:
        session['username'] = user_name
        session['user_id'] = exists[1]
        session['email'] = UserModel(db.get_connection()).get(
            session['user_id'])[3]
        if user_name in admins:
            return redirect("/users")
        else:
            return redirect("/chain/{}".format(session['user_id']))
    else:
        if user_name in names:
            data = UserModel(db.get_connection()).get_all()
            for i in data:
                if i[1] == user_name:
                    email = i[3]
            forget_password(email, user_name)
        else:
            return render_template('login.html',
                                   title='Авторизация',
                                   form=form,
                                   usernameerror='Вас нет в базе')
        return render_template('login.html', title='Авторизация', form=form)
Пример #16
0
def register():
    if request.method == 'GET':
        form = RegisterForm()
        return render_template('register.html', title='Регистрация', form=form, error='')
    elif request.method == 'POST':
        print('Заходит в пост')
        form = RegisterForm()
        user_name = form.username.data
        password = form.password.data
        email = form.email.data
        name = form.name.data
        photo = form.photo.data
        accepting = form.accepting.data
        print(user_name, password)
        user_model = UserModel(dbase.get_connection())
        if user_name == '':
            return render_template('register.html', title='Регистрация', form=form, error='Введите имя пользователя!')
        if password == '':
            return render_template('register.html', title='Регистрация', form=form, error='Введите пароль!')
        if not(get_address(email)):
            return render_template('register.html', title='Регистрация', form=form, error='Неверный email!')
        if not(accepting):
            return render_template('register.html', title='Регистрация', form=form,
                                   error='Необходимо дать согласие!')
        if not user_model.insert(user_name, password):
            return render_template('register.html', title='Регистрация', form=form, error='Данный пользователь уже существует!')
        exists = user_model.exists(user_name, password)
        session['username'] = user_name
        session['user_id'] = exists[1]
        os.mkdir(os.path.dirname(os.path.abspath(__file__)) + '\\static\\' + user_name)
        os.mkdir(os.path.dirname(os.path.abspath(__file__)) + '\\static\\' + user_name + '\\files')
        # photo.save(os.path.dirname(os.path.abspath(__file__)) + '\\static\\' + session['username'] + "\\avatar.png")
        #      os.mkdir('static/' + user_name)
        return redirect("/drive")

    return render_template('login.html', title='Авторизация', form=form)
Пример #17
0
def register():
    if request.method == 'GET':
        form = RegisterForm()
        return render_template('register.html',
                               title='Регистрация',
                               form=form,
                               error='')
    elif request.method == 'POST':
        print('Заходит в пост')
        form = RegisterForm()
        user_name = form.username.data
        password = form.password.data
        user_model = UserModel(dbase.get_connection())
        if user_name == '':
            return render_template('register.html',
                                   title='Регистрация',
                                   form=form,
                                   error='Введите имя пользователя!')
        if password == '':
            return render_template('register.html',
                                   title='Регистрация',
                                   form=form,
                                   error='Введите пароль!')
        users = UserModel(dbase.get_connection())
        if not users.insert(user_name, password):
            return render_template('register.html',
                                   title='Регистрация',
                                   form=form,
                                   error='Данный пользователь уже существует!')
        exists = user_model.exists(user_name, password)
        session['username'] = user_name
        session['user_id'] = exists[1]
        session['sort'] = 'date'
        session['reverse'] = False
        session['admin'] = False
        return redirect('/news')


##        if not user_model.insert(user_name, password):
##            return render_template('register.html', title='Регистрация', form=form, error='Данный пользователь уже существует!')
##        exists = user_model.exists(user_name, password)
##        session['username'] = user_name
##        session['user_id'] = exists[1]
##        session['args'] = []
# photo.save(os.path.dirname(os.path.abspath(__file__)) + '\\static\\' + session['username'] + "\\avatar.png")
#      os.mkdir('static/' + user_name)
##        return post("/users")

    return render_template('login.html', title='Авторизация', form=form)
Пример #18
0
class User:
    
    _cp_config = {'tools.sessions.on': True}
    
    def __init__(self):
        self.usermdl = UserModel()
    
    @cherrypy.expose
    def login(self, username=None, password=None):
        data_user = self.usermdl.get_user(username, password)
        if len(data_user) != 0:
            cherrypy.session['data_user'] = data_user
        else:
            cherrypy.session['error_login_msg'] = 'Akun tidak ditemukan'
        raise cherrypy.HTTPRedirect('/')

    @cherrypy.expose
    def logout(self):
        if cherrypy.session.get('data_user'):
            del cherrypy.session['data_user']
            raise cherrypy.HTTPRedirect('/')
        else:
            raise cherrypy.HTTPRedirect('/')
class ManagerM(QWidget, Ui_Qmanager):
    def __init__(self, obj):
        super(ManagerM, self).__init__()
        self.setupUi(self)
        self.o = obj
        self.choose_admin = -1
        self.choose_hotel = -1
        self.initUI()

    def initUI(self):
        self.btnin_admin.clicked.connect(self.in_admin)
        self.btnadd_admin.clicked.connect(self.add_admin)
        self.btnadd_hostel.clicked.connect(self.add_hotel)
        self.btnaapply.clicked.connect(self.apply)
        self.btnblock.clicked.connect(self.block)
        self.change()

    def apply(self):
        if self.adress_sort.isChecked():
            self.hotels = HotelModel(db.get_connection()).get_all()
            self.hotels.sort(
                key=lambda x: str(x[2]) + str(x[3]) + str(x[4]) + str(x[5]))
            self.hotel_session.setText('\n'.join(
                ['[x] ' + str(x[3]) for x in self.hotels]))
        elif self.nroom_sort.isChecked():
            self.hotels = HotelModel(db.get_connection()).get_all()
            self.hotels.sort(key=lambda x: x[7])
            self.hotel_session.setText('\n'.join(
                ['[x] ' + str(x[3]) for x in self.hotels]))
        elif self.time.isChecked():
            self.hotels = HotelModel(db.get_connection()).get_all()
            self.hotels.sort(key=lambda x: x[0])
            self.hotel_session.setText('\n'.join(
                ['[x] ' + str(x[3]) for x in self.hotels]))

    def block(self):
        UserModel(db.get_connection()).block(self.choose_admin)

    def mousePressEvent(self, event):
        if event.button() == Qt.LeftButton:
            x, y = event.x(), event.y()

            x -= 200
            y -= 70

            print(x, y)
            if y < 170:
                y //= 18

                self.hotels = HotelModel(db.get_connection()).get_all()
                if x <= 20:
                    self.delete_hotel(self.hotels[y - 1][0])
                else:
                    self.choose_hotel = self.hotels[y - 1][0]
            else:
                y //= 18
                y -= 9
                self.admins = UserModel(db.get_connection()).get_all()
                if x <= 20:
                    print(y)
                    self.delete_admin(self.admins[y - 1][0])
                else:
                    self.choose_admin = self.admins[y - 1][0]

    def mouseDoubleClickEvent(self, event):
        x, y = event.x(), event.y()
        try:
            x -= 10
            y -= 60
            x //= 6
            y //= 18
            if x <= 290:
                self.admins = UserModel(db.get_connection()).get_all()
                self.edit_lodger(self.admins[y][0])
            else:
                self.hotels = HotelModel(db.get_connection()).get_all()
                self.edit_hotel(self.hotels[y][0])
        except Exception as e:
            self.change_status(e)

    def add_admin(self):
        self.w1 = Add_adminM(self.o, -1)
        self.w1.show()
        self.change()

    def delete_admin(self, id):
        self.admins = UserModel(db.get_connection())
        self.admins.delete(id)

    def in_admin(self):
        self.admin = UserModel(db.get_connection())
        lod = self.admin.get(self.choose_lodger)
        if lod[8] != -1:
            self.change_status("Этот администратор уже назначен")
        else:
            self.admin.check_in(self.choose_admin, self.choose_hotel)
            self.change()

    def out_admin(self):
        self.lodgers = UserModel(db.get_connection())
        self.lodgers.check_out(self.choose_lodger)
        self.change()

    def edit_hotel(self, y):
        self.w1 = Add_hostelM(self.o, y)
        self.w1.show()
        self.change()

    def add_hotel(self):
        self.w1 = Add_hostelM(self.o, -1)
        self.w1.show()

    def delete_hotel(self, id):
        self.hotel = HotelModel(db.get_connection())
        room = self.hotel.get(id)
        if room[4] != 0:
            self.change_status("В этом отеле живут")
        else:
            self.hotel.delete(id)
            self.change()

    def edit_admin(self, id):
        self.w1 = Add_adminM(self.o, self.choose_admin)
        self.w1.show()
        self.change()

    def change_status(self, text):
        self.status.clear()
        self.status.append(text)

    def change(self):
        self.hotels = HotelModel(db.get_connection()).get_all()
        self.hotel_session.setText('\n'.join(
            ['[x] ' + str(x[3]) for x in self.hotels]))
        self.admins = UserModel(db.get_connection()).get_all()
        #print(self.hotels)
        self.admin_session.setText('\n'.join([
            '[x] ' + x[1] + ' ' + str(x[7]) if x[7] else '[x] ' + x[1]
            for x in self.admins
        ]))
 def delete_admin(self, id):
     self.admins = UserModel(db.get_connection())
     self.admins.delete(id)
 def out_admin(self):
     self.lodgers = UserModel(db.get_connection())
     self.lodgers.check_out(self.choose_lodger)
     self.change()
Пример #22
0
 def __init__(self):
     self.usermdl = UserModel()
def users():
    users = UserModel(db.get_connection()).get_users(session['user_id'])
    return render_template('users.html',
                           username=session['username'],
                           users=users)
 def block(self):
     UserModel(db.get_connection()).block(self.choose_admin)
Пример #25
0
def abort_if_user_not_found(user_id):
    if not UserModel(dbase.get_connection()).get(user_id):
        return redirect('/404')
Пример #26
0
 def delete(self, user_id):
     abort_if_user_not_found(user_id)
     UserModel(dbase.get_connection()).delete(user_id)
     return jsonify({'success': 'OK'})
Пример #27
0
 def get(self, user_id):
     abort_if_user_not_found(user_id)
     users = UserModel(dbase.get_connection()).get(user_id)
     return jsonify({'users': users})
def delete_user(user_id):
    nm = UserModel(db.get_connection())
    nm.delete(user_id)
    return redirect("/users")
from PyQt5.QtWidgets import QApplication, QWidget, QMainWindow
from PyQt5.QtCore import Qt

from db import UserModel, DB, LodgerModel, HotelModel, RoomModel, ErrModel

from add_hostelvisual import Ui_Qadd_hostel
from add_lodgervisual import Ui_Qadd_lodger
from add_adminvisual import Ui_Qadd_admin
from add_roomvisual import Ui_Qadd_room
from adminvisual import Ui_Qadmin
from loginvisual import Ui_Qlogin
from managervisual import Ui_Qmanager
from to_csvvisual import Ui_ToCSV

db = DB()
user_model = UserModel(db.get_connection())
if not (user_model.exists('Admin', 'Admin')[0]):
    d = {'login': '******', 'password': '******', 'is_admin': '1'}
    a = {'login': '******', 'password': '******', 'is_admin': '0'}
    user_model.insert(d['login'], d['password'], '0', '0', '0', '0',
                      d['is_admin'])
    user_model.insert(a["login"], a["password"], '0', '0', '0', '0',
                      a["is_admin"])
    data = load_workbook('admins.xlsx')
    admins = data.get_sheet_by_name('Лист1')
    n = 1
    a = admins['A1'].value
    while a != None:
        user_model.insert(
            admins['A' + str(n)].value, admins['B' + str(n)].value,
            admins['C' + str(n)].value, admins['D' + str(n)].value,