def form_valid(self, form): counter_id = form.cleaned_data.get("counter_id", "") counter_val = form.cleaned_data.get("counter_val", "") user_id = self.request.user.pk db_handler = DbSyncHandler() contracts = db_handler._get_sql_user_contracts_by_id( user_id, counter_id)[0] origin_user = contracts["contract"].user if origin_user == user_id: counter_vals = contracts["value"] if counter_vals: if counter_vals.value_vodocanal: last_val = counter_vals.value_vodocanal else: last_val = None counter_id_db = contracts["contract"].contract_id time = datetime.datetime.now() if allow_update(): result = db_handler.save_counter_value(user_id, counter_id_db, counter_val, time, last_val) else: result = False if result: write_log( user=self.request.user.pk, place="Подання Показника", msg_type="Успішно", message="Подано показник. Лічильник - {}, показник - {}". format(counter_id_db, counter_val)) return super().form_valid(form)
def _create_user(self, user, email): user_obj = User(pk=user[0], first_name=user[1][0:29], username=str(user[0]), email=email) user_pass = self._generate_pass() # print(user_pass) user_obj.set_password(user_pass) user_obj.save() user_datail_obj = UsersDetailModel(user=user_obj, town="", street=user[2], house=user[3], appartment=user[4], phone="") user_datail_obj.save() try: print("TRY TO SEND EMAIL") self._send_email_reg(user_obj, user_pass) except BaseException as e: print("ERROR DURING SEND EMAIL") print(e) write_log( user=user_obj.pk, place="Реєстрація", msg_type="Успішно", message="Реєстрація користувача (пароль - {})".format(user_pass)) return user_obj
def get(self, request, *args, **kwargs): if request.GET.get("logout", False): user_pk = request.user.pk logout(request) write_log(user=user_pk, place="Вихід", msg_type="Успішно", message="Користувач {} вилогувався із системи".format( request.user.pk)) return super().get(request, *args, **kwargs)
def form_valid(self, form): user_obj = self.request.user new_pass = form.cleaned_data.get("new_pass", "") user_obj.set_password(new_pass) user_obj.save() write_log(user=user_obj.pk, place="Зміна Паролю", msg_type="Успішно", message="Успішно змінено пароль. Новий пароль - {}".format( new_pass)) return super().form_valid(form)
def form_valid(self, form): user_id = form.cleaned_data.get("user_id", "") password = form.cleaned_data.get("password", "") user = authenticate(username=user_id, password=password) login(self.request, user) write_log(user=user.pk, place="Вхід в систему", msg_type="Успішно", message="Користувач {} увійшов в систему".format(user.pk)) # db_handler = DbSyncHandler() # db_handler.sync_user_info(user) return super().form_valid(form)
def clean(self): '''Method validates form fields''' form_data = self.cleaned_data user_id = form_data.get("user_id", "") password = form_data.get("password", "") print(user_id, password) user = authenticate(username=user_id, password=password) print(user) if not user: write_log(user=user_id, place="Вхід", msg_type="Невдало", message="Невдала спроба Входу (введений пароль {})".format(password)) self._errors["user_id"] =\ ['Номер контракту, або пароль введено неправильно'] return form_data
def clean(self): '''Method validates form fields''' form_data = self.cleaned_data counter_pk = form_data.get("counter_id") user_id = self.user_id db_handler = DbSyncHandler() contracts_list = db_handler._get_sql_user_contracts_by_id(user_id, counter_pk) if contracts_list: contracts = contracts_list[0] origin_user = contracts["contract"].user if origin_user==user_id: counter_vals = contracts["value"] if counter_vals: if counter_vals.value_vodocanal: last_val = counter_vals.value_vodocanal else: last_val = None counter_val = form_data.get("counter_val") if last_val: vals_diff = counter_val - last_val if last_val > counter_val: self._errors["counter_val"] =\ ['Показник не може бути нижчим за існуючий Для внесення корективів тел.: +38 097 281 47 28'] write_log(user=user_id, place="Подання Показника", msg_type="Невдало", message="Невдала спроба подати показник {} (останній зареєстрований показник {})".format(counter_val, last_val)) if vals_diff >= 100: self._errors["counter_val"] =\ ['Введений показник занадто великий у порівнянні із попереднім'] write_log(user=user_id, place="Подання Показника", msg_type="Невдало", message="Невдала спроба подати показник {} (останній зареєстрований показник {})".format(counter_val, last_val)) else: self._errors["counter_val"] = \ ['Некоректний номер лічильника. Спробуйте влогуватись і знову залогуватись!'] else: self._errors["counter_val"] = \ ['Некоректний номер лічильника. Спробуйте влогуватись і знову залогуватись!'] return form_data
def _check_user_existence(self, form_data): user_obj = User.objects.filter(pk=form_data.get("user_id", "")) print(user_obj) if user_obj: self._errors["user_id"] =\ ['Користувач із вказаним номером контракту уже зараєстрований'] write_log( user=user_obj.first().pk, place="Реєстрація", msg_type="Невдало", message= "Невдала спроба реєстрації (користувач із вказаним id уже існує)" ) else: user_obj = User.objects.filter(email=form_data.get("email", "@")) if user_obj: self._errors["email"] =\ ['Користувач із вказаною електронною скринькою уже зараєстрований'] write_log( user=user_obj.first().pk, place="Реєстрація", msg_type="Невдало", message= "Невдала спроба реєстрації (користувач із вказаним email уже існує)" ) else: db_handler = DbSyncHandler() user_id = form_data.get("user_id", "") email = form_data.get("email", "@") to_pay = form_data.get("last_bill", "") user_obj, status = db_handler.fetch_user_info( user_id, email, to_pay) if status == "user_id": self._errors["user_id"] =\ ['Користувач із вказаним номером контракту відсутній в базі данних'] write_log( user=user_id, place="Реєстрація", msg_type="Невдало", message= "Невдала спроба реєстрації (користувач із вказаним id не доступний)" ) if status == "to_pay": self._errors["last_bill"] =\ ['Не вірна сума останнього рахунку'] write_log( user=user_id, place="Реєстрація", msg_type="Невдало", message= "Невдала спроба реєстрації (вказано невірну суму до оплати {})" .format(to_pay))
def form_valid(self, form): user_id = form.cleaned_data.get("user_id", "") user_obj = User.objects.get(pk=user_id) user_email = user_obj.email new_pass = self._generate_pass() print("NEW PASS = "******"Відновлення Паролю", msg_type="Успішно", message="Відновлено пароль. Пароль {} відправлено на {}".format( new_pass, user_email)) messages.success( self.request, ("Ваш пароль було змінено. Новий пароль відправлено на " + user_email)) return super().form_valid(form)
def _check_user_existence(self, form_data): user_obj = User.objects.filter(pk=form_data.get("user_id", "")) print(user_obj) if not user_obj: self._errors["user_id"] =\ ['Користувач із вказаним номером контракту не зареєстрований в базі'] write_log( user=form_data.get("user_id", ""), place="Відновлення Паролю", msg_type="Невдало", message= "Невдала спроба відновлення паролю (користувач не зареєстрований)" ) else: user_obj = user_obj[0] db_handler = DbSyncHandler() db_handler.sync_user_info(user_obj) payments = DbSyncHandler()._get_sql_payments(user_obj)[::-1] # payments = list(Payments.objects.filter(user=user_obj).order_by("date_added")) user_bill = abs(form_data.get("last_bill", "")) if payments: last_bill = abs(payments[-1].to_pay) prev_bill = last_bill if len(payments) > 1: prev_bill = abs(payments[-2].to_pay) # print(form_data.get("last_bill", ""), last_bill) # print(type(form_data.get("last_bill", "")), type(last_bill)) # print(form_data.get("last_bill", "")==last_bill) if last_bill != user_bill and prev_bill != user_bill: self._errors["last_bill"] =\ ['Не вірна сума останнього рахунку'] write_log( user=user_obj.pk, place="Відновлення Паролю", msg_type="Невдало", message= "Невдала спроба відновлення паролю (введена сума - {}|{},{}|)" .format(user_bill, last_bill, prev_bill))