Esempio n. 1
0
 def sponsor(self, new_user, is_contributor=True):
     self.check_contributor()
     email = new_user.email
     try:
         # checks *email*
         if settings.RESTRICT_EMAIL_TO_DOMAINS:
             # i don't know if a domain can contains a '@'
             domain = email.rsplit("@", 1)[1]
             if domain not in Site.objects.values_list("domain", flat=True):
                 raise PermissionError("Email's domain not valid") 
     except AttributeError:
         # restriction disabled if the setting is not set
         pass
     password = generate_password()
     new_user.set_password(password)
     new_user.save()
     new_user.get_profile().is_contributor = is_contributor
     new_user.get_profile().save()
     link = models.DelegationLink(delegator=self._user, delegatee=new_user,
             role=models.ROLE_SPONSOR)
     link.save()
     ctx = {
             "new_user" : new_user,
             "sponsor" : self._user,
             "password" : password,
            }
     update_index.delay("auth", "user", new_user.pk)
     self._send_mail(send_mail, "New account on openPLM", [new_user],
             ctx, "mails/new_account") 
     models.UserHistory.objects.create(action="Create", user=self._user,
             plmobject=self._user, details="New user: %s" % new_user.username)
     models.UserHistory.objects.create(action="Create", user=self._user,
             plmobject=new_user, details="Account created")
Esempio n. 2
0
 def resend_sponsor_mail(self, new_user):
     try:
         link = models.DelegationLink.current_objects.get(
             delegator=self._user,
             delegatee=new_user,
             role=models.ROLE_SPONSOR)
     except models.DelegationLink.DoesNotExist:
         raise PermissionError("You did not sponsored %s" %
                               new_user.username)
     # checks that new_user did not logged on openPLM to not
     # reset its password
     if new_user.last_login >= link.ctime:
         raise ValueError("Can not resend a sponsor mail:"
                          "%s has already logged on openPLM" % new_user)
     # generate a new password
     password = generate_password()
     new_user.set_password(password)
     new_user.save()
     # send a mail
     ctx = {
         "new_user": new_user,
         "sponsor": self._user,
         "password": password,
     }
     self._send_mail(send_mail, self.get_sponsor_subject(new_user),
                     [new_user], ctx, "mails/new_account")
Esempio n. 3
0
 def sponsor(self, new_user, is_contributor=True, restricted=False):
     self.check_contributor()
     if is_contributor and restricted:
         raise ValueError(
             "An restricted account can not be a contributor account")
     email = new_user.email
     try:
         # checks *email*
         if settings.RESTRICT_EMAIL_TO_DOMAINS:
             # i don't know if a domain can contains a '@'
             domain = email.rsplit("@", 1)[1]
             if domain not in Site.objects.values_list("domain", flat=True):
                 raise PermissionError("Email's domain not valid")
     except AttributeError:
         # restriction disabled if the setting is not set
         pass
     password = generate_password()
     new_user.set_password(password)
     new_user.save()
     new_user.profile.is_contributor = is_contributor
     new_user.profile.restricted = restricted
     new_user.profile.save()
     link = models.DelegationLink(delegator=self._user,
                                  delegatee=new_user,
                                  role=models.ROLE_SPONSOR)
     link.save()
     ctx = {
         "new_user": new_user,
         "sponsor": self._user,
         "password": password,
     }
     update_index.delay("auth", "user", new_user.pk)
     self._send_mail(send_mail, self.get_sponsor_subject(new_user),
                     [new_user], ctx, "mails/new_account")
     models.UserHistory.objects.create(action="Create",
                                       user=self._user,
                                       plmobject=self._user,
                                       details="New user: %s" %
                                       new_user.username)
     models.UserHistory.objects.create(action="Create",
                                       user=self._user,
                                       plmobject=new_user,
                                       details="Account created")
Esempio n. 4
0
 def resend_sponsor_mail(self, new_user):
     try:
         link = models.DelegationLink.current_objects.get(delegator=self._user,
             delegatee=new_user, role=models.ROLE_SPONSOR)
     except models.DelegationLink.DoesNotExist:
         raise PermissionError("You did not sponsored %s"
                 % new_user.username)
     # checks that new_user did not logged on openPLM to not
     # reset its password
     if new_user.last_login >= link.ctime:
         raise ValueError("Can not resend a sponsor mail:"
                 "%s has already logged on openPLM" % new_user)
     # generate a new password
     password = generate_password()
     new_user.set_password(password)
     new_user.save()
     # send a mail
     ctx = {
             "new_user" : new_user,
             "sponsor" : self._user,
             "password" : password,
            }
     self._send_mail(send_mail, self.get_sponsor_subject(new_user), [new_user],
             ctx, "mails/new_account")