Example #1
0
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
Example #2
0
 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
Example #3
0
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
Example #4
0
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)
Example #5
0
 def join(self, user):
     self.users.add(user)
     registry.signal('user_join', user=user, nexus=self)
Example #6
0
def delete(**kwargs):
    organization = get(**kwargs)
    if organization == None:
        raise Exception('unknown organization')
    registry.signal('organization_delete', organization=organization, **kwargs)
    organization.site.delete()
Example #7
0
def delete(**kwargs):
    user = get(**kwargs)
    if user == None:
        raise Exception('unknown user')
    registry.signal('user_delete', user=user)
    user.delete()
Example #8
0
 def approve(self, request, user_pk):
     registry.signal('user_approval', user=user.get(pk=user_pk), send_invitation=True)
Example #9
0
def on_organization_creation(**kwargs):
    registry.signal('organization_init', **kwargs)
    create(settings.MAIN_NEXUS, kwargs['organization'])
Example #10
0
def delete(**kwargs):
    nexus = get(**kwargs)
    if nexus == None:
        raise Exception('unknown nexus')
    registry.signal('nexus_delete', nexus=nexus)
    nexus.delete()