Beispiel #1
0
 def get_form(self):
     """
     Set available user permissions
     """
     return self.form_class(available_roles=get_permission_list(
         self.request.user),
                            **self.get_form_kwargs())
Beispiel #2
0
 def get_form(self):
     """
     Set available user permissions
     """
     form = self.form_class(available_roles=get_permission_list(self.request.user),
                            **self.get_form_kwargs())
     form.helper = FormHelper()
     form.helper.form_id = slugify(self.request.path)
     form.helper.form_method = 'post'
     form.helper.form_action = self.request.path
     form.helper.add_input(Submit('submit', self.submit_text, css_class='btn-success btn-block'))
     form.helper.form_class = 'wger-form'
     return form
Beispiel #3
0
def gym_permissions_user_edit(request, user_pk):
    """
    Edits the permissions of a gym member
    """
    member = get_object_or_404(User, pk=user_pk)
    user = request.user

    if not user.is_authenticated:
        return HttpResponseForbidden()

    if not user.has_perm('gym.manage_gyms') and not user.has_perm(
            'gym.manage_gym'):
        return HttpResponseForbidden()

    if user.has_perm('gym.manage_gym'
                     ) and user.userprofile.gym != member.userprofile.gym:
        return HttpResponseForbidden()

    # Calculate available user permissions
    form_group_permission = get_permission_list(user)

    if request.method == 'POST':
        form = GymUserPermissionForm(available_roles=form_group_permission,
                                     data=request.POST)

        if form.is_valid():

            # Remove the user from all gym permission groups
            member.groups.remove(Group.objects.get(name='gym_member'))
            member.groups.remove(Group.objects.get(name='gym_trainer'))
            member.groups.remove(Group.objects.get(name='gym_manager'))
            member.groups.remove(Group.objects.get(name='general_gym_manager'))

            # Set appropriate permission groups
            if 'user' in form.cleaned_data['role']:
                member.groups.add(Group.objects.get(name='gym_member'))
            if 'trainer' in form.cleaned_data['role']:
                member.groups.add(Group.objects.get(name='gym_trainer'))
            if 'admin' in form.cleaned_data['role']:
                member.groups.add(Group.objects.get(name='gym_manager'))
            if 'manager' in form.cleaned_data['role']:
                member.groups.add(
                    Group.objects.get(name='general_gym_manager'))

            return HttpResponseRedirect(
                reverse('gym:gym:user-list',
                        kwargs={'pk': member.userprofile.gym.pk}))
    else:
        initial_data = {}
        if member.groups.filter(name='gym_member').exists():
            initial_data['user'] = True

        if member.groups.filter(name='gym_trainer').exists():
            initial_data['trainer'] = True

        if member.groups.filter(name='gym_manager').exists():
            initial_data['admin'] = True

        if member.groups.filter(name='general_gym_manager').exists():
            initial_data['manager'] = True

        form = GymUserPermissionForm(initial={'role': initial_data},
                                     available_roles=form_group_permission)

    context = {}
    context['title'] = member.get_full_name()
    context['form'] = form
    context['extend_template'] = 'base_empty.html' if request.is_ajax(
    ) else 'base.html'
    context['submit_text'] = 'Save'

    return render(request, 'form.html', context)
Beispiel #4
0
 def get_form(self):
     '''
     Set available user permissions
     '''
     return self.form_class(available_roles=get_permission_list(self.request.user),
                            **self.get_form_kwargs())
Beispiel #5
0
def gym_permissions_user_edit(request, user_pk):
    '''
    Edits the permissions of a gym member
    '''
    member = get_object_or_404(User, pk=user_pk)
    user = request.user

    if not user.is_authenticated():
        return HttpResponseForbidden()

    if not user.has_perm('gym.manage_gyms') and not user.has_perm('gym.manage_gym'):
        return HttpResponseForbidden()

    if user.has_perm('gym.manage_gym') and user.userprofile.gym != member.userprofile.gym:
        return HttpResponseForbidden()

    # Calculate available user permissions
    form_group_permission = get_permission_list(user)

    if request.method == 'POST':
        form = GymUserPermisssionForm(request.POST,
                                      available_roles=form_group_permission)

        if form.is_valid():

            # Remove the user from all gym permission groups
            member.groups.remove(Group.objects.get(name='gym_member'))
            member.groups.remove(Group.objects.get(name='gym_trainer'))
            member.groups.remove(Group.objects.get(name='gym_manager'))
            member.groups.remove(Group.objects.get(name='general_gym_manager'))

            # Set appropriate permission groups
            if 'user' in form.cleaned_data['role']:
                member.groups.add(Group.objects.get(name='gym_member'))
            if 'trainer' in form.cleaned_data['role']:
                member.groups.add(Group.objects.get(name='gym_trainer'))
            if 'admin' in form.cleaned_data['role']:
                member.groups.add(Group.objects.get(name='gym_manager'))
            if 'manager' in form.cleaned_data['role']:
                member.groups.add(Group.objects.get(name='general_gym_manager'))

            return HttpResponseRedirect(reverse('gym:gym:user-list',
                                                kwargs={'pk': member.userprofile.gym.pk}))
    else:
        initial_data = {}
        if member.groups.filter(name='gym_member').exists():
            initial_data['user'] = True

        if member.groups.filter(name='gym_trainer').exists():
            initial_data['trainer'] = True

        if member.groups.filter(name='gym_manager').exists():
            initial_data['admin'] = True

        if member.groups.filter(name='general_gym_manager').exists():
            initial_data['manager'] = True

        form = GymUserPermisssionForm(initial={'role': initial_data},
                                      available_roles=form_group_permission)

    context = {}
    context['title'] = member.get_full_name()
    context['form'] = form
    context['form_action'] = reverse('gym:gym:edit-user-permission', kwargs={'user_pk': member.pk})
    context['extend_template'] = 'base_empty.html' if request.is_ajax() else 'base.html'
    context['submit_text'] = 'Save'

    return render(request, 'form.html', context)