1
0
mirror of https://gitlab.crans.org/bde/nk20 synced 2024-11-26 18:37:12 +00:00
This commit is contained in:
Yohann D'ANELLO 2020-03-20 02:14:43 +01:00
parent 0ce6cd88b3
commit 3f2b21f7f4
13 changed files with 17 additions and 39 deletions

View File

@ -3,8 +3,8 @@
from django_filters.rest_framework import DjangoFilterBackend from django_filters.rest_framework import DjangoFilterBackend
from rest_framework.filters import SearchFilter from rest_framework.filters import SearchFilter
from api.viewsets import ReadProtectedModelViewSet from api.viewsets import ReadProtectedModelViewSet
from .serializers import ActivityTypeSerializer, ActivitySerializer, GuestSerializer from .serializers import ActivityTypeSerializer, ActivitySerializer, GuestSerializer
from ..models import ActivityType, Activity, Guest from ..models import ActivityType, Activity, Guest

View File

@ -8,7 +8,6 @@ from django_filters.rest_framework import DjangoFilterBackend
from rest_framework import routers, serializers from rest_framework import routers, serializers
from rest_framework.filters import SearchFilter from rest_framework.filters import SearchFilter
from rest_framework.viewsets import ReadOnlyModelViewSet from rest_framework.viewsets import ReadOnlyModelViewSet
from activity.api.urls import register_activity_urls from activity.api.urls import register_activity_urls
from api.viewsets import ReadProtectedModelViewSet from api.viewsets import ReadProtectedModelViewSet
from member.api.urls import register_members_urls from member.api.urls import register_members_urls

View File

@ -4,7 +4,6 @@
from django.contrib.contenttypes.models import ContentType from django.contrib.contenttypes.models import ContentType
from member.backends import PermissionBackend from member.backends import PermissionBackend
from rest_framework import viewsets from rest_framework import viewsets
from note_kfet.middlewares import get_current_authenticated_user from note_kfet.middlewares import get_current_authenticated_user

View File

@ -3,8 +3,8 @@
from django_filters.rest_framework import DjangoFilterBackend from django_filters.rest_framework import DjangoFilterBackend
from rest_framework.filters import OrderingFilter from rest_framework.filters import OrderingFilter
from api.viewsets import ReadOnlyProtectedModelViewSet from api.viewsets import ReadOnlyProtectedModelViewSet
from .serializers import ChangelogSerializer from .serializers import ChangelogSerializer
from ..models import Changelog from ..models import Changelog

View File

@ -4,12 +4,10 @@
from django.contrib.contenttypes.models import ContentType from django.contrib.contenttypes.models import ContentType
from rest_framework.renderers import JSONRenderer from rest_framework.renderers import JSONRenderer
from rest_framework.serializers import ModelSerializer from rest_framework.serializers import ModelSerializer
import getpass import getpass
from note.models import NoteUser, Alias from note.models import NoteUser, Alias
from note_kfet.middlewares import get_current_authenticated_user, get_current_ip from note_kfet.middlewares import get_current_authenticated_user, get_current_ip
from .models import Changelog from .models import Changelog

View File

@ -2,8 +2,8 @@
# SPDX-License-Identifier: GPL-3.0-or-later # SPDX-License-Identifier: GPL-3.0-or-later
from rest_framework.filters import SearchFilter from rest_framework.filters import SearchFilter
from api.viewsets import ReadProtectedModelViewSet from api.viewsets import ReadProtectedModelViewSet
from .serializers import ProfileSerializer, ClubSerializer, RoleSerializer, MembershipSerializer from .serializers import ProfileSerializer, ClubSerializer, RoleSerializer, MembershipSerializer
from ..models import Profile, Club, Role, Membership from ..models import Profile, Club, Role, Membership

View File

@ -1,15 +1,15 @@
# Copyright (C) 2018-2020 by BDE ENS Paris-Saclay # Copyright (C) 2018-2020 by BDE ENS Paris-Saclay
# SPDX-License-Identifier: GPL-3.0-or-later # SPDX-License-Identifier: GPL-3.0-or-later
from django.contrib.auth.backends import ModelBackend
from django.contrib.auth.models import User from django.contrib.auth.models import User
from django.contrib.contenttypes.models import ContentType from django.contrib.contenttypes.models import ContentType
from django.db.models import Q, F from django.db.models import Q, F
from note.models import Note, NoteUser, NoteClub, NoteSpecial from note.models import Note, NoteUser, NoteClub, NoteSpecial
from note_kfet.middlewares import get_current_session from note_kfet.middlewares import get_current_session
from permission.models import Permission from permission.models import Permission
from .models import Membership, Club from .models import Membership, Club
from django.contrib.auth.backends import ModelBackend
class PermissionBackend(ModelBackend): class PermissionBackend(ModelBackend):
@ -53,9 +53,6 @@ class PermissionBackend(ModelBackend):
:return: A query that corresponds to the filter to give to a queryset :return: A query that corresponds to the filter to give to a queryset
""" """
from time import time
ti = time()
if user.is_superuser and get_current_session().get("permission_mask", 0) >= 42: if user.is_superuser and get_current_session().get("permission_mask", 0) >= 42:
# Superusers have all rights # Superusers have all rights
return Q() return Q()

View File

@ -8,8 +8,8 @@ from dal import autocomplete
from django import forms from django import forms
from django.contrib.auth.forms import UserCreationForm, AuthenticationForm from django.contrib.auth.forms import UserCreationForm, AuthenticationForm
from django.contrib.auth.models import User from django.contrib.auth.models import User
from permission.models import PermissionMask from permission.models import PermissionMask
from .models import Profile, Club, Membership from .models import Profile, Club, Membership

View File

@ -54,7 +54,6 @@ class Profile(models.Model):
return reverse('user_detail', args=(self.pk,)) return reverse('user_detail', args=(self.pk,))
class Club(models.Model): class Club(models.Model):
""" """
A club is a group of people, whose membership is handle by their A club is a group of people, whose membership is handle by their
@ -164,6 +163,7 @@ class Membership(models.Model):
verbose_name_plural = _('memberships') verbose_name_plural = _('memberships')
indexes = [models.Index(fields=['user'])] indexes = [models.Index(fields=['user'])]
class RolePermissions(models.Model): class RolePermissions(models.Model):
""" """
Permissions associated with a Role Permissions associated with a Role
@ -180,13 +180,3 @@ class RolePermissions(models.Model):
def __str__(self): def __str__(self):
return str(self.role) return str(self.role)
# @receiver(post_save, sender=settings.AUTH_USER_MODEL)
# def save_user_profile(instance, created, **_kwargs):
# """
# Hook to save an user profile when an user is updated
# """
# if created:
# Profile.objects.create(user=instance)
# instance.profile.save()

View File

@ -24,8 +24,8 @@ from note.forms import AliasForm, ImageForm
from note.models import Alias, NoteUser from note.models import Alias, NoteUser
from note.models.transactions import Transaction from note.models.transactions import Transaction
from note.tables import HistoryTable, AliasTable from note.tables import HistoryTable, AliasTable
from .backends import PermissionBackend
from .backends import PermissionBackend
from .filters import UserFilter, UserFilterFormHelper from .filters import UserFilter, UserFilterFormHelper
from .forms import SignUpForm, ProfileForm, ClubForm, MembershipForm, MemberFormSet, FormSetHelper, \ from .forms import SignUpForm, ProfileForm, ClubForm, MembershipForm, MemberFormSet, FormSetHelper, \
CustomAuthenticationForm CustomAuthenticationForm

View File

@ -4,8 +4,6 @@
from rest_framework import serializers from rest_framework import serializers
from rest_polymorphic.serializers import PolymorphicSerializer from rest_polymorphic.serializers import PolymorphicSerializer
from member.backends import PermissionBackend
from note_kfet.middlewares import get_current_authenticated_user
from ..models.notes import Note, NoteClub, NoteSpecial, NoteUser, Alias from ..models.notes import Note, NoteClub, NoteSpecial, NoteUser, Alias
from ..models.transactions import TransactionTemplate, Transaction, MembershipTransaction, TemplateCategory, \ from ..models.transactions import TransactionTemplate, Transaction, MembershipTransaction, TemplateCategory, \
RecurrentTransaction, SpecialTransaction RecurrentTransaction, SpecialTransaction
@ -83,9 +81,6 @@ class AliasSerializer(serializers.ModelSerializer):
fields = '__all__' fields = '__all__'
read_only_fields = ('note', ) read_only_fields = ('note', )
def get_note(self, alias):
return alias.note.id
class NotePolymorphicSerializer(PolymorphicSerializer): class NotePolymorphicSerializer(PolymorphicSerializer):
model_serializer_mapping = { model_serializer_mapping = {

View File

@ -4,8 +4,8 @@
from django.db.models import Q from django.db.models import Q
from django_filters.rest_framework import DjangoFilterBackend from django_filters.rest_framework import DjangoFilterBackend
from rest_framework.filters import OrderingFilter, SearchFilter from rest_framework.filters import OrderingFilter, SearchFilter
from api.viewsets import ReadProtectedModelViewSet, ReadOnlyProtectedModelViewSet from api.viewsets import ReadProtectedModelViewSet, ReadOnlyProtectedModelViewSet
from .serializers import NotePolymorphicSerializer, AliasSerializer, TemplateCategorySerializer, \ from .serializers import NotePolymorphicSerializer, AliasSerializer, TemplateCategorySerializer, \
TransactionTemplateSerializer, TransactionPolymorphicSerializer TransactionTemplateSerializer, TransactionPolymorphicSerializer
from ..models.notes import Note, Alias from ..models.notes import Note, Alias

View File

@ -8,8 +8,8 @@ from django.db.models import Q
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
from django.views.generic import CreateView, ListView, UpdateView from django.views.generic import CreateView, ListView, UpdateView
from django_tables2 import SingleTableView from django_tables2 import SingleTableView
from member.backends import PermissionBackend from member.backends import PermissionBackend
from .forms import TransactionTemplateForm from .forms import TransactionTemplateForm
from .models import Transaction, TransactionTemplate, Alias, RecurrentTransaction, NoteSpecial from .models import Transaction, TransactionTemplate, Alias, RecurrentTransaction, NoteSpecial
from .models.transactions import SpecialTransaction from .models.transactions import SpecialTransaction
@ -27,9 +27,9 @@ class TransactionCreate(LoginRequiredMixin, SingleTableView):
table_pagination = {"per_page": 50} table_pagination = {"per_page": 50}
def get_queryset(self): def get_queryset(self):
return Transaction.objects.filter(PermissionBackend return Transaction.objects.filter(PermissionBackend.filter_queryset(
.filter_queryset(self.request.user, Transaction, "view")) \ self.request.user, Transaction, "view")
.order_by("-id").all()[:50] ).order_by("-id").all()[:50]
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
""" """
@ -137,9 +137,9 @@ class ConsoView(LoginRequiredMixin, SingleTableView):
""" """
context = super().get_context_data(**kwargs) context = super().get_context_data(**kwargs)
from django.db.models import Count from django.db.models import Count
buttons = TransactionTemplate.objects.filter(PermissionBackend() buttons = TransactionTemplate.objects.filter(
.filter_queryset(self.request.user, TransactionTemplate, "view")) \ PermissionBackend().filter_queryset(self.request.user, TransactionTemplate, "view")
.filter(display=True).annotate(clicks=Count('recurrenttransaction')).order_by('category__name', 'name') ).filter(display=True).annotate(clicks=Count('recurrenttransaction')).order_by('category__name', 'name')
context['transaction_templates'] = buttons context['transaction_templates'] = buttons
context['most_used'] = buttons.order_by('-clicks', 'name')[:10] context['most_used'] = buttons.order_by('-clicks', 'name')[:10]
context['title'] = _("Consumptions") context['title'] = _("Consumptions")