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")
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")
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")
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")