X-Git-Url: https://git.mdrn.pl/cas.git/blobdiff_plain/6fd60e2fd1d41332a19f4e37e2874c51b21f13df..91ba7a1f11249ddf5a22fc675935d7eb71227d98:/src/services/models.py?ds=sidebyside diff --git a/src/services/models.py b/src/services/models.py index c7a5d97..3261257 100644 --- a/src/services/models.py +++ b/src/services/models.py @@ -2,6 +2,7 @@ import secrets from django.conf import settings from django.contrib.auth.models import User from django.db import models +from django.urls import reverse from django.utils.translation import ugettext_lazy as _ @@ -10,6 +11,11 @@ class Service(models.Model): url = models.URLField(_('URL'), blank=True) key = models.CharField(_('key'), max_length=255, blank=True) uses_ssh = models.BooleanField(_('uses SSH'), default=False) + + for_all = models.BooleanField(_('for all'), default=False) + description = models.TextField(_('description'), blank=True) + icon = models.FileField(_('icon'), blank=True, upload_to='service/icon') + groups = models.ManyToManyField('auth.Group', verbose_name=_('groups'), blank=True) users = models.ManyToManyField(settings.AUTH_USER_MODEL, verbose_name=_('users'), blank=True) @@ -21,6 +27,9 @@ class Service(models.Model): def __str__(self): return self.name + def get_absolute_url(self): + return reverse('service_detail', args=[self.pk]) + def save(self, *args, **kwargs): if not self.key: self.key = secrets.token_urlsafe() @@ -34,7 +43,9 @@ class Service(models.Model): @classmethod def for_user(cls, user): - return cls.objects.filter(models.Q(users=user) | models.Q(groups__user=user)) + return cls.objects.filter( + models.Q(for_all=True) | models.Q(users=user) | models.Q(groups__user=user) + ) class Hook(models.Model):