mirror of
https://gitlab.com/allianceauth/allianceauth.git
synced 2025-07-14 15:00:16 +02:00
Add permision check to timerboard dashboard view
This commit is contained in:
parent
a1d712694c
commit
7a9808aad3
@ -20,6 +20,9 @@ from allianceauth.timerboard.models import Timer
|
|||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
TIMER_VIEW_PERMISSION = 'auth.timer_view'
|
||||||
|
TIMER_MANAGE_PERMISSION = 'auth.timer_management'
|
||||||
|
|
||||||
|
|
||||||
class BaseTimerView(LoginRequiredMixin, PermissionRequiredMixin, View):
|
class BaseTimerView(LoginRequiredMixin, PermissionRequiredMixin, View):
|
||||||
pass
|
pass
|
||||||
@ -27,7 +30,7 @@ class BaseTimerView(LoginRequiredMixin, PermissionRequiredMixin, View):
|
|||||||
|
|
||||||
class TimerView(BaseTimerView):
|
class TimerView(BaseTimerView):
|
||||||
template_name = 'timerboard/view.html'
|
template_name = 'timerboard/view.html'
|
||||||
permission_required = 'auth.timer_view'
|
permission_required = TIMER_VIEW_PERMISSION
|
||||||
|
|
||||||
def get(self, request):
|
def get(self, request):
|
||||||
logger.debug(f"timer_view called by user {request.user}")
|
logger.debug(f"timer_view called by user {request.user}")
|
||||||
@ -48,7 +51,7 @@ class TimerView(BaseTimerView):
|
|||||||
|
|
||||||
|
|
||||||
class TimerManagementView(BaseTimerView):
|
class TimerManagementView(BaseTimerView):
|
||||||
permission_required = 'auth.timer_management'
|
permission_required = TIMER_MANAGE_PERMISSION
|
||||||
index_redirect = 'timerboard:view'
|
index_redirect = 'timerboard:view'
|
||||||
success_url = reverse_lazy(index_redirect)
|
success_url = reverse_lazy(index_redirect)
|
||||||
model = Timer
|
model = Timer
|
||||||
@ -74,8 +77,13 @@ class AddTimerView(TimerManagementView, AddUpdateMixin, CreateView):
|
|||||||
def form_valid(self, form):
|
def form_valid(self, form):
|
||||||
result = super().form_valid(form)
|
result = super().form_valid(form)
|
||||||
timer = self.object
|
timer = self.object
|
||||||
logger.info(f"Created new timer in {timer.system} at {timer.eve_time} by user {self.request.user}")
|
logger.info(
|
||||||
messages.success(self.request, _('Added new timer in %(system)s at %(time)s.') % {"system": timer.system, "time": timer.eve_time})
|
f"Created new timer in {timer.system} at {timer.eve_time} by user {self.request.user}"
|
||||||
|
)
|
||||||
|
messages.success(
|
||||||
|
self.request,
|
||||||
|
_('Added new timer in %(system)s at %(time)s.') % {"system": timer.system, "time": timer.eve_time}
|
||||||
|
)
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
|
||||||
@ -93,18 +101,29 @@ class RemoveTimerView(TimerManagementView, DeleteView):
|
|||||||
|
|
||||||
|
|
||||||
def dashboard_timers(request):
|
def dashboard_timers(request):
|
||||||
|
if request.user.has_perm(TIMER_VIEW_PERMISSION):
|
||||||
try:
|
try:
|
||||||
corp = request.user.profile.main_character.corporation
|
corp = request.user.profile.main_character.corporation
|
||||||
except (EveCorporationInfo.DoesNotExist, AttributeError):
|
except (EveCorporationInfo.DoesNotExist, AttributeError):
|
||||||
return ""
|
return ""
|
||||||
|
|
||||||
timers = Timer.objects.select_related('eve_character').filter((Q(eve_corp__isnull=True) | Q(eve_corp=corp)) ,eve_time__gte=timezone.now())[:5]
|
timers = Timer.objects.select_related(
|
||||||
|
'eve_character'
|
||||||
|
).filter(
|
||||||
|
(Q(eve_corp__isnull=True) | Q(eve_corp=corp)),
|
||||||
|
eve_time__gte=timezone.now()
|
||||||
|
)[:5]
|
||||||
|
|
||||||
if timers.count():
|
if timers.count():
|
||||||
context = {
|
context = {
|
||||||
'timers': timers,
|
'timers': timers,
|
||||||
}
|
}
|
||||||
|
|
||||||
return render_to_string(template_name='timerboard/dashboard.timers.html', context=context, request=request)
|
return render_to_string(
|
||||||
|
template_name='timerboard/dashboard.timers.html',
|
||||||
|
context=context, request=request
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
return ""
|
||||||
else:
|
else:
|
||||||
return ""
|
return ""
|
||||||
|
Loading…
x
Reference in New Issue
Block a user