mirror of
https://github.com/ae-utbm/sith.git
synced 2025-07-09 19:40:19 +00:00
Better usage of cache for groups and clubs related operations (#634)
* Better usage of cache for group retrieval * Cache clearing on object deletion or update * replace signals by save and delete override * add is_anonymous check in is_owned_by Add in many is_owned_by(self, user) methods that user is not anonymous. Since many of those functions do db queries, this should reduce a little bit the load of the db. * Stricter usage of User.is_in_group Constrain the parameters that can be passed to the function to make sure only a str or an int can be used. Also force to explicitly specify if the group id or the group name is used. * write test and correct bugs * remove forgotten populate commands * Correct test
This commit is contained in:
15
com/views.py
15
com/views.py
@ -146,7 +146,7 @@ class ComTabsMixin(TabedViewMixin):
|
||||
|
||||
class IsComAdminMixin(View):
|
||||
def dispatch(self, request, *args, **kwargs):
|
||||
if not (request.user.is_in_group(settings.SITH_GROUP_COM_ADMIN_ID)):
|
||||
if not request.user.is_com_admin:
|
||||
raise PermissionDenied
|
||||
return super(IsComAdminMixin, self).dispatch(request, *args, **kwargs)
|
||||
|
||||
@ -283,9 +283,7 @@ class NewsEditView(CanEditMixin, UpdateView):
|
||||
|
||||
def form_valid(self, form):
|
||||
self.object = form.save()
|
||||
if form.cleaned_data["automoderation"] and self.request.user.is_in_group(
|
||||
settings.SITH_GROUP_COM_ADMIN_ID
|
||||
):
|
||||
if form.cleaned_data["automoderation"] and self.request.user.is_com_admin:
|
||||
self.object.moderator = self.request.user
|
||||
self.object.is_moderated = True
|
||||
self.object.save()
|
||||
@ -333,9 +331,7 @@ class NewsCreateView(CanCreateMixin, CreateView):
|
||||
|
||||
def form_valid(self, form):
|
||||
self.object = form.save()
|
||||
if form.cleaned_data["automoderation"] and self.request.user.is_in_group(
|
||||
settings.SITH_GROUP_COM_ADMIN_ID
|
||||
):
|
||||
if form.cleaned_data["automoderation"] and self.request.user.is_com_admin:
|
||||
self.object.moderator = self.request.user
|
||||
self.object.is_moderated = True
|
||||
self.object.save()
|
||||
@ -617,10 +613,7 @@ class MailingListAdminView(ComTabsMixin, ListView):
|
||||
current_tab = "mailings"
|
||||
|
||||
def dispatch(self, request, *args, **kwargs):
|
||||
if not (
|
||||
request.user.is_in_group(settings.SITH_GROUP_COM_ADMIN_ID)
|
||||
or request.user.is_root
|
||||
):
|
||||
if not (request.user.is_com_admin or request.user.is_root):
|
||||
raise PermissionDenied
|
||||
return super(MailingListAdminView, self).dispatch(request, *args, **kwargs)
|
||||
|
||||
|
Reference in New Issue
Block a user