예제 #1
0
    def domain_acquire(self, request):
        user = self.authenticate(request)

        validator = Validator(request)
        user_domain = validator.new_user_domain()
        device_mac_address = validator.device_mac_address()
        device_name = validator.string('device_name', required=True)
        device_title = validator.string('device_title', required=True)
        check_validator(validator)

        with self.create_storage() as storage:
            domain = storage.get_domain_by_name(user_domain)
            if domain and domain.user_id != user.id:
                raise servicesexceptions.parameter_error(
                    'user_domain', 'User domain name is already in use')

            update_token = util.create_token()
            if not domain:
                domain = Domain(user_domain,
                                device_mac_address,
                                device_name,
                                device_title,
                                update_token=update_token)
                domain.user = user
                storage.add(domain)
            else:
                domain.update_token = update_token
                domain.device_mac_address = device_mac_address
                domain.device_name = device_name
                domain.device_title = device_title

            return domain
예제 #2
0
    def domain_acquire(self, request):
        user = self.authenticate(request)

        validator = Validator(request)
        user_domain = validator.new_user_domain()
        device_mac_address = validator.device_mac_address()
        device_name = validator.string('device_name', required=True)
        device_title = validator.string('device_title', required=True)
        check_validator(validator)

        with self.create_storage() as storage:
            domain = storage.get_domain_by_name(user_domain)
            if domain and domain.user_id != user.id:
                raise servicesexceptions.parameter_error('user_domain', 'User domain name is already in use')

            update_token = util.create_token()
            if not domain:
                domain = Domain(user_domain, device_mac_address, device_name, device_title, update_token=update_token)
                domain.user = user
                storage.add(domain)
            else:
                domain.update_token = update_token
                domain.device_mac_address = device_mac_address
                domain.device_name = device_name
                domain.device_title = device_title

            return domain
예제 #3
0
 def enable_action(self, type):
     token = util.create_token()
     action = self.action(type)
     if action:
         action.token = token
     else:
         action = Action(token, type)
         self.actions.append(action)
     return action
예제 #4
0
파일: models.py 프로젝트: algby/redirect
 def enable_action(self, type):
     token = util.create_token()
     action = self.action(type)
     if action:
         action.token = token
     else:
         action = Action(token, type)
         self.actions.append(action)
     return action
예제 #5
0
def get_login_token(username, password):
    user = query_db_one('''select id, password from user where
            name = %s''', [username],
                        one=True)
    if user is None:
        return None
    print('''[user] ==>''', user)
    if user[1] == password:
        login_timestamp = int(time.time())
        return util.create_token(user[0], login_timestamp)
예제 #6
0
def login():
    try:
        data = dict(request.get_json())
        if util.Check_all(data.keys(), ['email', 'password']):
            user = db.get_user(data['email'], None)
            if util.encrypt(data['password']) == user['password']:
                return jsonify({
                    'token':
                    util.create_token(user['email'], str(user['_id']),
                                      app.config['JWT_SECRET_KEY'])
                })
        raise ValidationError('Invalid username or Password!!')
    except ValidationError as err:
        return dict(message=err.messages)
예제 #7
0
def credit_balance(bot, update) -> None:
    conn = create_connection()
    user = get_user(conn, bot.message.chat.id)
    present_toke = user[6]
    pending = emojize('⌛', use_aliases=True)
    search = emojize('🔎', use_aliases=True)
    cancel = emojize('🧨', use_aliases=True)
    if present_toke != 0:
        inl_keyboard = InlineKeyboardMarkup(
            [[
                InlineKeyboardButton(text=f"Получить новый токен {cancel}",
                                     callback_data='68')
            ],
             [
                 InlineKeyboardButton(text=f"Проверить оплату {search}",
                                      callback_data='69')
             ]])
        bot.message.reply_text(
            f'У вас имеется <b>токен</b>: <b><code>{present_toke}</code></b> для пополнения вашего счета.\n\n'
            f'Если по какой либо причине вам необходим <b>новый токен</b> для пополнения счета выберите '
            f'<b>Получить новый токен {cancel}</b>\n\n'
            f'Учтите, если вы получите <b>новый токен</b>, все неподтвержденые Qiwi переводы '
            f'содержащие ваш нынешний токен <code>{present_toke}</code> зачислены <b>не будут</b>.',
            parse_mode=ParseMode.HTML,
            reply_markup=inl_keyboard)
    else:
        token = create_token()
        inl_keyboard = InlineKeyboardMarkup([[
            InlineKeyboardButton(text=f"Проверить оплату {search}",
                                 callback_data='69')
        ]])
        qiwi_params = get_qiwi_params(conn)
        print(qiwi_params)
        bot.message.reply_text(
            f"<b>Пополнение счета</b>\n\n<b>Дата</b>: "
            f"{datetime.now().replace(second=0, microsecond=0)}\n"
            f"<b>Статус</b>: Не подтверждено {pending}\n\n"
            f"Пополните свой счет на любую сумму по номеру <b>QIWI</b>:\n"
            f"<code>{qiwi_params[1]}</code>\n"
            f"Или совершите перевод на карту <b>VISA</b>:\n"
            f"<code>{qiwi_params[3]}</code>\n"
            f"Действует до: <code>{qiwi_params[4]}</code>\n\n"
            f"<b>В комментарий</b> к платежу укажите:\n"
            f"<code>{token}</code>",
            parse_mode=ParseMode.HTML)
        bot.message.reply_text(
            'После перевода на <b>QIWI</b> кошелек нажмите на <b>кнопку</b>',
            reply_markup=inl_keyboard,
            parse_mode=ParseMode.HTML)
        update_user_token(conn, bot.message.chat.id, token)
예제 #8
0
파일: services.py 프로젝트: algby/redirect
    def create_new_user(self, request):
        validator = Validator(request)
        email = validator.email()
        password = validator.password()
        user_domain = validator.new_user_domain(error_if_missing=False)
        errors = validator.errors

        if errors:
            message = ", ".join(errors)
            raise servicesexceptions.bad_request(message)

        user = None
        action = None
        with self.create_storage() as storage:
            by_email = storage.get_user_by_email(email)
            if by_email and by_email.email == email:
                raise servicesexceptions.conflict('Email is already registered')

            if user_domain:
                by_domain = storage.get_domain_by_name(user_domain)
                if by_domain and by_domain.user_domain == user_domain:
                    raise servicesexceptions.conflict('User domain name is already in use')

            update_token = util.create_token()

            user = User(email, util.hash(password), not self.activate_by_email)

            if user_domain:
                domain = Domain(user_domain, None, update_token)
                domain.user = user
                user.domains.append(domain)
                storage.add(domain)

            if self.activate_by_email:
                action = user.enable_action(ActionType.ACTIVATE)

            storage.add(user)

        if self.activate_by_email:
            self.mail.send_activate(self.main_domain, user.email, action.token)

        return user
예제 #9
0
파일: services.py 프로젝트: algby/redirect
    def domain_acquire(self, request):
        user = self.authenticate(request)

        validator = Validator(request)
        user_domain = validator.new_user_domain()

        with self.create_storage() as storage:
            domain = storage.get_domain_by_name(user_domain)
            if domain and domain.user_id != user.id:
                raise servicesexceptions.conflict('User domain name is already in use')

            update_token = util.create_token()
            if not domain:
                domain = Domain(user_domain, None, update_token)
                domain.user = user
                storage.add(domain)
            else:
                domain.update_token = update_token

            return domain
예제 #10
0
def login_handler():
    login = request.json.get('login')
    groupId = request.json.get('groupId')

    # Check if there is user with the same name
    select = db.prepare("SELECT * FROM users WHERE name=$1")
    user = select(login)
    if user:
        return "Username is already in use", 401

    token = create_token(login)
    insert = db.prepare("INSERT INTO users VALUES (DEFAULT, $1, $2, $3, $4)")
    insert(login, True, groupId, token)
    user = select(login)[0]
    answer = {
        'id': user[0],
        'username': user[1],
        'online': user[2],
        'token': user[4]
    }
    return json.dumps(answer), 200
예제 #11
0
 def get_user_by_email(self, email):
     user = self.session.query(User).filter(User.email == email).first()
     if user and not user.update_token:
         user.update_token = util.create_token()
     return user
예제 #12
0
 def get_user_by_email(self, email):
     user = self.session.query(User).filter(User.email == email).first()
     if user and not user.update_token:
         user.update_token = util.create_token()
     return user
예제 #13
0
 def __init__(self, email, password_hash, active):
     self.email = email
     self.password_hash = password_hash
     self.active = active
     self.unsubscribed = False
     self.update_token = util.create_token()