Ejemplo n.º 1
0
Archivo: views.py Proyecto: ccosse/gimu
    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
Ejemplo n.º 2
0
    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
Ejemplo n.º 3
0
 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)
Ejemplo n.º 4
0
Archivo: forms.py Proyecto: ccosse/gimu
 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."))
Ejemplo n.º 5
0
 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."))
Ejemplo n.º 6
0
 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."))
Ejemplo n.º 7
0
 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
Ejemplo n.º 8
0
 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
Ejemplo n.º 9
0
 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
Ejemplo n.º 10
0
 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 
Ejemplo n.º 11
0
 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
Ejemplo n.º 12
0
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")
Ejemplo n.º 13
0
 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
Ejemplo n.º 14
0
 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)
Ejemplo n.º 15
0
 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)
Ejemplo n.º 16
0
    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
Ejemplo n.º 17
0
 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)
Ejemplo n.º 18
0
        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)
Ejemplo n.º 19
0
 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)
Ejemplo n.º 20
0
        """
        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)