def create_user(self, form, commit=True, **kwargs): user = get_user_model()(**kwargs) code = form.cleaned_data['code'] if SignupCodeExtended.objects.filter(signupcode__code = code).exists(): username = SignupCodeExtended.objects.get(signupcode__code = code).username else: username = form.cleaned_data["username"].strip() user.username = username user.email = form.cleaned_data["email"].strip() password = form.cleaned_data.get("password") """ logging.debug("create_user") logging.debug(`form`) logging.debug(form.cleaned_data.get("organization")) logging.debug(form.cleaned_data.get("position")) """ if password: user.set_password(password) else: user.set_unusable_password() if commit: user.save() return user
def create_user(self, form, commit=True, **kwargs): user = get_user_model()(**kwargs) code = form.cleaned_data['code'] if SignupCodeExtended.objects.filter(signupcode__code=code).exists(): username = SignupCodeExtended.objects.get( signupcode__code=code).username else: username = form.cleaned_data["username"].strip() user.username = username user.email = form.cleaned_data["email"].strip() user.organization = form.cleaned_data["organization"].strip() user.title = form.cleaned_data["title"].strip() user.first_name = form.cleaned_data["first_name"].strip() user.last_name = form.cleaned_data["last_name"].strip() user.position = form.cleaned_data["position"].strip() password = form.cleaned_data.get("password") if password: user.set_password(password) else: user.set_unusable_password() if commit: user.save() return user
def get_user(self): User = get_user_model() try: if type(User._meta.pk) == models.IntegerField or type(User._meta.pk) == models.AutoField: uid = base36_to_int(self.kwargs["uidb36"]) else: uid = uuid.UUID(self.kwargs["uidb36"]) except ValueError: raise Http404() return get_object_or_404(User, pk=uid)
def clean_username(self): if not alnum_re.search(self.cleaned_data["username"].replace('.', '')): raise forms.ValidationError(_("Usernames can only contain letters, numbers, dots and underscores.")) User = get_user_model() lookup_kwargs = get_user_lookup_kwargs({ "{username}__iexact": self.cleaned_data["username"] }) qs = User.objects.filter(**lookup_kwargs) if not qs.exists(): return self.cleaned_data["username"] raise forms.ValidationError(_("This username is already taken. Please choose another."))
def clean_username(self): if not alnum_re.search(self.cleaned_data["username"]): raise forms.ValidationError(_("Usernames can only contain letters, numbers and the following special characters ./+/-/_")) User = get_user_model() lookup_kwargs = get_user_lookup_kwargs({ "{username}__iexact": self.cleaned_data["username"] }) qs = User.objects.filter(**lookup_kwargs) if not qs.exists(): return self.cleaned_data["username"] raise forms.ValidationError(_("This username is already taken. Please choose another."))
def authenticate(self, **credentials): User = get_user_model() lookup_kwargs = get_user_lookup_kwargs( {"{username}__iexact": credentials["username"]}) try: user = User.objects.get(**lookup_kwargs) except (User.DoesNotExist, KeyError): return None else: try: if user.check_password(credentials["password"]): return user except KeyError: return None
def create_user(self, form, commit=True, **kwargs): user = get_user_model()(**kwargs) username = form.cleaned_data.get("username") if username is None: username = self.generate_username(form) user.username = username user.email = form.cleaned_data["email"].strip() password = form.cleaned_data.get("password") if password: user.set_password(password) else: user.set_unusable_password() if commit: user.save() return user
def authenticate(self, **credentials): User = get_user_model() lookup_kwargs = get_user_lookup_kwargs({ "{username}__iexact": credentials["username"] }) try: user = User.objects.get(**lookup_kwargs) except (User.DoesNotExist, KeyError): return None else: try: if user.check_password(credentials["password"]): return user except KeyError: return None
def clean_invitee(self): User = get_user_model() try: invitee = User.objects.get(email=self.cleaned_data["invitee"]) if self.team.is_on_team(invitee): raise forms.ValidationError("User already on team.") except User.DoesNotExist: try: invitee = User.objects.get(username=self.cleaned_data["invitee"]) if self.team.is_on_team(invitee): raise forms.ValidationError("User already on team.") except User.DoesNotExist: invitee = self.cleaned_data["invitee"] if self.team.memberships.filter(invite__signup_code__email=invitee).exists(): raise forms.ValidationError("Invite already sent.") return invitee
def autocomplete_users(request): User = get_user_model() team = request.team role = team.role_for(request.user) if role not in [Membership.ROLE_MANAGER, Membership.ROLE_OWNER]: raise Http404() users = User.objects.exclude(pk__in=[ x.user.pk for x in team.memberships.exclude(user__isnull=True) ]) q = request.GET.get("query") results = [] if q: results.extend([ hookset.get_autocomplete_result(x) for x in hookset.search_queryset(q, users) ]) return HttpResponse(json.dumps(results), content_type="application/json")
def authenticate(self, **credentials): User = get_user_model() if email_re.search(credentials["username"]): qs = EmailAddress.objects.filter(Q(primary=True) | Q(verified=True)) try: email_address = qs.get(email__iexact=credentials["username"]) except (EmailAddress.DoesNotExist, KeyError): return None else: user = email_address.user else: lookup_kwargs = get_user_lookup_kwargs({ "{username}__iexact": credentials["username"] }) try: user = User.objects.get(**lookup_kwargs) except (User.DoesNotExist, KeyError): return None try: if user.check_password(credentials["password"]): return user except KeyError: return None
def send_email(self, email): User = get_user_model() protocol = getattr(settings, "DEFAULT_HTTP_PROTOCOL", "http") current_site = get_current_site(self.request) email_qs = EmailAddress.objects.filter(email__iexact=email) for user in User.objects.filter(pk__in=email_qs.values("user")): uid = int_to_base36(user.id) token = self.make_token(user) password_reset_url = "{0}://{1}{2}".format( protocol, current_site.domain, reverse("account_password_reset_token", kwargs=dict(uidb36=uid, token=token))) ctx = { "user": user, "current_site": current_site, "password_reset_url": password_reset_url, } hookset.send_password_reset_email([user.email], ctx)
def send_email(self, email): User = get_user_model() protocol = getattr(settings, "DEFAULT_HTTP_PROTOCOL", "http") current_site = get_current_site(self.request) email_qs = EmailAddress.objects.filter(email__iexact=email) for user in User.objects.filter(pk__in=email_qs.values("user")): uid = int_to_base36(user.id) token = self.make_token(user) password_reset_url = "{0}://{1}{2}".format( protocol, current_site.domain, reverse("account_password_reset_token", kwargs=dict(uidb36=uid, token=token)) ) ctx = { "user": user, "current_site": current_site, "password_reset_url": password_reset_url, } hookset.send_password_reset_email([user.email], ctx)
def create_user(self, form, commit=True, **kwargs): user = get_user_model()(**kwargs) code = form.cleaned_data['code'] if SignupCodeExtended.objects.filter(signupcode__code = code).exists(): username = SignupCodeExtended.objects.get(signupcode__code = code).username else: username = form.cleaned_data["username"].strip() user.username = username user.email = form.cleaned_data["email"].strip() user.organization = form.cleaned_data["organization"].strip() user.title = form.cleaned_data["title"].strip() user.first_name = form.cleaned_data["first_name"].strip() user.last_name = form.cleaned_data["last_name"].strip() user.position = form.cleaned_data["position"].strip() password = form.cleaned_data.get("password") if password: user.set_password(password) else: user.set_unusable_password() if commit: user.save() return user
def get_user(self): try: uid_int = base36_to_int(self.kwargs["uidb36"]) except ValueError: raise Http404() return get_object_or_404(get_user_model(), id=uid_int)
Given a datetime object as value convert it to the timezone of the account. """ timezone = settings.TIME_ZONE if not self.timezone else self.timezone if value.tzinfo is None: value = pytz.timezone(settings.TIME_ZONE).localize(value) return value.astimezone(pytz.timezone(timezone)) # # The call to get_user_model in global scope could lead to a circular import # when the app cache is not fully initialized in some cases. It is rare, but # it has happened. If you are debugging this problem and determine this line # of code as being problematic, contact the developers right away. # @receiver(post_save, sender=get_user_model()) def user_post_save(sender, **kwargs): """ After User.save is called we check to see if it was a created user. If so, we check if the User object wants account creation. If all passes we create an Account object. We only run on user creation to avoid having to check for existence on each call to User.save. """ user, created = kwargs["instance"], kwargs["created"] disabled = getattr(user, "_disable_account_creation", not settings.ACCOUNT_CREATE_ON_SAVE) if created and not disabled: Account.create(user=user)
""" Given a datetime object as value convert it to the timezone of the account. """ timezone = settings.TIME_ZONE if not self.timezone else self.timezone if value.tzinfo is None: value = pytz.timezone(settings.TIME_ZONE).localize(value) return value.astimezone(pytz.timezone(timezone)) # # The call to get_user_model in global scope could lead to a circular import # when the app cache is not fully initialized in some cases. It is rare, but # it has happened. If you are debugging this problem and determine this line # of code as being problematic, contact the developers right away. # @receiver(post_save, sender=get_user_model()) def user_post_save(sender, **kwargs): """ After User.save is called we check to see if it was a created user. If so, we check if the User object wants account creation. If all passes we create an Account object. We only run on user creation to avoid having to check for existence on each call to User.save. """ user, created = kwargs["instance"], kwargs["created"] disabled = getattr(user, "_disable_account_creation", not settings.ACCOUNT_CREATE_ON_SAVE) if created and not disabled: Account.create(user=user)