def create(name, organization): if get(name=name, organization=organization): raise Exception("nexus '%s' already exists in '%s'" % (name, organization.domain)) nexus = Nexus(name=name, organization=organization, slug=slugify.slugify(name, to_lower=True)) nexus.full_clean() nexus.save() registry.signal('nexus_create', nexus=nexus) return nexus
def register(self, request, **cleaned_data): # TODO extract to hook pid_data = {} if request.organization.uid_field == 'pid': pid_data['value'] = cleaned_data.pop('pid_number') pid_data['document'] = cleaned_data.pop('pid_upload') new_user = super(RegistrationView, self).register(request, **cleaned_data) new_user.first_name = cleaned_data['first_name'] new_user.last_name = cleaned_data['last_name'] new_user.save() registry.signal('user_create', user=new_user, **cleaned_data) if len(pid_data) > 0: self.handle_pid(new_user, request.organization, **pid_data) return new_user
def create(domain, name, **kwargs): if get(domain=domain): raise Exception('domain %s is already in use' % domain) site = Site(domain=domain, name=name) site.full_clean() site.save() url = kwargs.pop('url') # hack u = kwargs.pop('user') # hack token = kwargs.pop('token') # hack organization = Organization(site=site, **kwargs) organization.full_clean() organization.save() kwargs['url'] = url kwargs['token'] = token kwargs['user'] = u registry.signal('organization_create', organization=organization, **kwargs) return organization
def create(username, email, send_invitation=True, **qwargs): kwargs = locals() if get(username=username): raise Exception("user '%s' already exists" % username) org = organization.get_by_username(username) query = { 'username__endswith': '@%s' % org.suffix } if org.uid_field == 'pid': query['pid__value'] = qwargs[org.uid_field] if get(**query): raise Exception("unique identifier field '%s' with value '%s' already exists" % (org.uid_field, kwargs[org.uid_field])) raw_password = ''.join(random.choice(string.ascii_uppercase + string.ascii_lowercase + string.digits) for x in range(10)) send_invitation = kwargs.pop('send_invitation') _ = kwargs.pop('qwargs') user = User(**kwargs) user.set_password(raw_password) user.full_clean() user.save() if 'pid' in qwargs: value = qwargs.pop('pid') pid = PID(user=user, organization=org, value=value) pid.full_clean() pid.save() registry.signal('user_create', user=user, **qwargs) registry.signal('user_approval', user=user, send_invitation=send_invitation, raw_password=raw_password)
def join(self, user): self.users.add(user) registry.signal('user_join', user=user, nexus=self)
def delete(**kwargs): organization = get(**kwargs) if organization == None: raise Exception('unknown organization') registry.signal('organization_delete', organization=organization, **kwargs) organization.site.delete()
def delete(**kwargs): user = get(**kwargs) if user == None: raise Exception('unknown user') registry.signal('user_delete', user=user) user.delete()
def approve(self, request, user_pk): registry.signal('user_approval', user=user.get(pk=user_pk), send_invitation=True)
def on_organization_creation(**kwargs): registry.signal('organization_init', **kwargs) create(settings.MAIN_NEXUS, kwargs['organization'])
def delete(**kwargs): nexus = get(**kwargs) if nexus == None: raise Exception('unknown nexus') registry.signal('nexus_delete', nexus=nexus) nexus.delete()