Beispiel #1
0
    def save(self, send_email=True):
        user = RegistrationProfile.objects.create_inactive_user(username=self.cleaned_data['username'],
                                                                    password=self.cleaned_data['password1'],
                                                                    email=self.cleaned_data['email'],
                                                                    site=None,
                                                                    send_email=send_email
                                                                    )
        user.username = user.username.strip().lower()
        user.save()         # remove spaces from username and change all to lowercase
        profile = Profile(user=user)
        profile.save()
        organization = Organization.objects.create( #create organization
            name = self.cleaned_data['organization'],
            trade_name = self.cleaned_data['organization'],
            short_name = slugify(self.cleaned_data['shortname']),
        )
        default_place = Place.objects.create(         #create default place
            label = organization.name,                # use same name as label
            active = True,
            place_type = PlaceType.objects.get(description='Matriz'), # mandatory field
            organization = organization,              # link place to this organization
        )
        default_room = Room.objects.create(
            description = 'Sala 1',
            place = default_place,
            room_type=RoomType.objects.all()[0],
        )

        person = Person.objects.create(name=self.cleaned_data['name'], user=user) #, organization=organization)
        person.organization.add(organization)
        profile.org_active = organization                  #set org as active
        profile.temp = self.cleaned_data['password1']      # temporary field (LDAP)
        profile.person = person
        profile.save()
        
        try:
            admin_role = Group.objects.get(name='administrator')
            Role.objects.create(profile=profile, organization=organization, group=admin_role)
            profile.user.groups.add(admin_role)
        except:
            pass
        try:
            professional_role = Group.objects.get(name='professional')
            Role.objects.create(profile=profile, organization=organization, group=professional_role)
            profile.user.groups.add(professional_role)
        except:
            pass

        careprof = CareProfessional()
        careprof.person = person
        pp = ProfessionalProfile()
        pi = ProfessionalIdentification()
        pp.save()
        pi.save()
        careprof.professionalProfile = pp
        careprof.professionalIdentification = pi
        careprof.save()

        return organization
Beispiel #2
0
def create_user(request):
    if not request.method == 'POST':
        raise Http404

    if User.objects.filter(
            username=request.POST.get('username').strip().lower()):
        messages.success(
            request,
            _('Error adding user <b>%s</b>: Username already exists.') %
            request.POST.get('username').strip().lower())
        return HttpResponseRedirect('/user/add/?clss=error')

    person = get_object_or_404(
        Person,
        pk=request.POST.get('id_person'),
        organization=request.user.get_profile().org_active)
    organization = request.user.get_profile().org_active
    username = request.POST.get('username').strip().lower()
    password = request.POST.get('password')
    pwd_conf = request.POST.get('pwd_conf')
    email = request.POST.get('email_send_user')
    permissions = request.POST.getlist('perms')

    if not password == pwd_conf:
        messages.success(request,
                         _('Error: Supplied passwords are differents.'))
        return HttpResponseRedirect('/user/add/?clss=error')

    site_url = "http://%s" % get_current_site(
        request
    ).domain if not request.is_secure else "http://%s" % get_current_site(
        request).domain
    user = RegistrationProfile.objects.create_inactive_user(
        username, email, password, site_url)

    # this is required! without it, password will not set ok
    user.set_password(password)
    user.save(force_update=True)

    profile = Profile(user=user)
    profile.org_active = organization
    profile.temp = password  # temporary field (LDAP)
    profile.person = person
    profile.save()
    # profile.organization.add(organization)

    define_user_permission(permissions, profile, organization, 'administrator')
    define_user_permission(permissions, profile, organization, 'professional')
    define_user_permission(permissions, profile, organization, 'secretary')
    define_user_permission(permissions, profile, organization, 'client')
    define_user_permission(permissions, profile, organization, 'student')

    messages.success(
        request,
        _('User created successfully. An email will be sent to the user with instructions on how to finish the registration process.'
          ))

    return HttpResponseRedirect('/user/%s/' % profile.person.id)
Beispiel #3
0
def create_user(request):
    if not request.method == 'POST':
        raise Http404

    if User.objects.filter(username=request.POST.get('username').strip().lower()):
        messages.success(request, _('Error adding user <b>%s</b>: Username already exists.') % request.POST.get('username').strip().lower())
        return HttpResponseRedirect('/user/add/?clss=error')
        
    person = get_object_or_404(Person, pk=request.POST.get('id_person'), organization=request.user.get_profile().org_active)
    organization = request.user.get_profile().org_active
    username = request.POST.get('username').strip().lower()
    password = request.POST.get('password')
    pwd_conf = request.POST.get('pwd_conf')
    email = request.POST.get('email_send_user')
    permissions = request.POST.getlist('perms')

    if not password == pwd_conf:
        messages.success(request, _('Error: Supplied passwords are differents.'))
        return HttpResponseRedirect('/user/add/?clss=error')
    
    site_url = "http://%s" % get_current_site(request).domain if not request.is_secure else "http://%s" % get_current_site(request).domain
    user = RegistrationProfile.objects.create_inactive_user(username, email, password, site_url)

    user.set_password(password) # this is required! without it, password will not set ok
    user.save(force_update=True)

    profile = Profile(user=user)
    profile.org_active = organization
    profile.temp = password    # temporary field (LDAP)
    profile.person = person
    profile.save()
    #profile.organization.add(organization)

    if permissions.count('administrator'):
        Role.objects.create(profile=profile, organization=organization, group=Group.objects.get(name='administrator'))
        profile.user.groups.add(Group.objects.get(name='administrator'))
        
    if permissions.count('professional'):
        Role.objects.create(profile=profile, organization=organization, group=Group.objects.get(name='professional'))
        profile.user.groups.add(Group.objects.get(name='professional'))
                    
    if permissions.count('secretary'):
        Role.objects.create(profile=profile, organization=organization, group=Group.objects.get(name='secretary'))
        profile.user.groups.add(Group.objects.get(name='secretary'))
                    
    if permissions.count('client'):
        Role.objects.create(profile=profile, organization=organization, group=Group.objects.get(name='client'))
        profile.user.groups.add(Group.objects.get(name='client'))

    if permissions.count('student'):
        Role.objects.create(profile=profile, organization=organization, group=Group.objects.get(name='student'))
        profile.user.groups.add(Group.objects.get(name='student'))
     
    messages.success(request, _('User created successfully. An email will be sent to the user with instructions on how to finish the registration process.'))

    return HttpResponseRedirect('/user/%s/' % profile.person.id)