Ejemplo n.º 1
0
def promote(request, group_id, user_id):
    group = Group.objects.get(pk=group_id)
    user = User.objects.get(pk=user_id)
    if request.user == group.owner:
        if user == group.owner:
            alert = Alert(user=request.user,
                          text="You cannot alter the owner's permissions",
                          color=Alert.getYellow())
            alert.saveIP(request)
            return redirect('/groups/' + str(group_id))
        if user in group.pendingUsers.all():
            group.pendingUsers.remove(user)
            group.volunteers.add(user)
            alert = Alert(user=request.user,
                          text=user.username + " is now a volunteer",
                          color=Alert.getYellow())
            alert.saveIP(request)
            return redirect('/groups/' + str(group_id))
        if user in group.volunteers.all():
            group.volunteers.remove(user)
            group.organizers.add(user)
            alert = Alert(user=request.user,
                          text=user.username + " is now an organizer",
                          color=Alert.getYellow())
            alert.saveIP(request)
            return redirect('/groups/' + str(group_id))
        return redirect('/groups/' + str(group_id))
    else:
        return render(request, 'not_authorized.html')
Ejemplo n.º 2
0
def edit_profile(request):
    profile = request.user.profile
    if request.POST:
        form = EditProfileForm(request.POST, profile=profile)
        form2 = EditUserForm(request.POST, instance=request.user)
        if form.is_valid() and form2.is_valid():
            data = form.save(commit=False)
            profile.bio = data['bio']
            profile.slotName = data['slotName']
            profile.eventName = data['eventName']
            profile.save()
            form2.save()

            alert = Alert(user=request.user,
                          text="Profile updated",
                          color=Alert.getYellow())
            alert.saveIP(request)

            return redirect('/accounts/profile/')
    form = EditProfileForm(
        initial={
            'bio': profile.bio,
            'slotName': profile.slotName,
            'eventName': profile.eventName
        })
    form2 = EditUserForm(instance=request.user)

    return render(request, 'accounts/edit_profile.html', {
        "form": form,
        'profile': profile,
        "form2": form2
    })
Ejemplo n.º 3
0
def edit_password(request):
    user = request.user
    form = PasswordChangeForm(user=request.user, data=request.POST)
    if request.POST:
        if form.is_valid():
            form.save()
            update_session_auth_hash(request, user)
            alert = Alert(user=request.user,
                          text="Password updated",
                          color=Alert.getYellow())
            alert.saveIP(request)

            return redirect('/accounts/profile')

    return render(request, 'accounts/edit_password.html', {"form": form})
Ejemplo n.º 4
0
def signin(request, user_slot_id):
    next = request.GET.get('next')

    user_slot = User_Slot.objects.get(id=user_slot_id)

    group = user_slot.parentSlot.get_group()

    if (user_slot.volunteer != None and group.get_is_organzer(request.user)):
        user_slot.signin = get_dt()
        user_slot.save()

        alert = Alert(user=request.user,
                      text="Signed in " + user_slot.volunteer.username,
                      color=Alert.getYellow())
        alert.saveIP(request)
    return redirect(next)
Ejemplo n.º 5
0
def signup(request):
    # Checks if the user is sending their data (POST) or getting the form (GET)
    if (request.method == 'POST'):
        form = SignupForm(request.POST)
        # Makes sure the user filled out the form correctly as dictated by forms.py
        if form.is_valid():
            user = form.save(commit=False)
            # Sets the user to deactive until they confirm email
            user.is_active = False
            # Saves the user to the server
            user.save()
            # Gets the current domain in order to send the email
            current_site = get_current_site(request)
            # Sends the user an email based on the email template and the info passed in here
            message = render_to_string(
                'emails/activate_account.html', {
                    'user': user,
                    'domain': current_site.domain,
                    'uid': urlsafe_base64_encode(force_bytes(user.pk)),
                    'token': account_activation_token.make_token(user),
                })
            mail_subject = 'Activate your Sapphire Account!'
            to_email = form.cleaned_data.get('email')
            email = EmailMultiAlternatives(mail_subject,
                                           message,
                                           to=[to_email])
            email.content_subtype = 'html'
            email.mixed_subtype = 'related'
            fp = open('static/img/logos.ico/ms-icon-70x70.png', 'rb')
            logo = MIMEImage(fp.read())
            logo.add_header('Content-ID', '<logo>')
            email.attach(logo)
            email.send()

            alert = Alert(
                user=user,
                text=
                "Click on the link sent to your email to confirm your account",
                color=Alert.getYellow())
            alert.saveIP(request)
            return redirect('/login')
            #return render(request, 'accounts/please_confirm.html')
    else:
        form = SignupForm()

    return render(request, 'accounts/signup.html', {'form': form})
Ejemplo n.º 6
0
def signout(request, user_slot_id):
    next = request.GET.get('next')
    user_slot = User_Slot.objects.get(id=user_slot_id)

    if (user_slot.parentSlot.parentEvent != None):
        group = user_slot.parentSlot.parentEvent.parentGroup
    else:
        group = user_slot.parentSlot.parentGroup

    if (user_slot.volunteer != None and group.get_is_organzer(request.user)):
        user_slot.signout = get_dt()
        user_slot.save()
        user_slot.updateDeltaTimes()

        alert = Alert(user=request.user,
                      text="Signed out " + user_slot.volunteer.username,
                      color=Alert.getYellow())
        alert.saveIP(request)

    return redirect(next)
Ejemplo n.º 7
0
def signup_foruser(request, group_id, user_slot_id):
    # Checks if the user is sending their data (POST) or getting the form (GET)
    if (request.method == 'POST'):
        form = SignupForm(request.POST)
        # Makes sure the user filled out the form correctly as dictated by forms.py
        if form.is_valid():
            user = form.save(commit=False)
            # Sets the user to deactive until they confirm email
            user.is_active = False
            # Saves the user to the server
            user.save()
            # Gets the current domain in order to send the email
            current_site = get_current_site(request)
            # Sends the user an email based on the email template and the info passed in here
            message = render_to_string(
                'emails/activate_account.html', {
                    'user': user,
                    'domain': current_site.domain,
                    'uid': urlsafe_base64_encode(force_bytes(user.pk)),
                    'token': account_activation_token.make_token(user),
                })
            mail_subject = 'Activate your Sapphire account (named by Armaan Goel).'
            to_email = form.cleaned_data.get('email')
            email = EmailMessage(mail_subject, message, to=[to_email])
            email.send()

            alert = Alert(
                user=user,
                text=
                "Click on the link sent to your email to confirm your account",
                color=Alert.getYellow())
            alert.saveIP(request)
            return redirect('/login')
            #return render(request, 'accounts/please_confirm.html')
    else:
        form = SignupForm()

    return render(request, 'accounts/signup.html', {'form': form})