From 17d98a557f7fedb6753dc11474c25f28ab66f3e3 Mon Sep 17 00:00:00 2001 From: Benjamin Bertrand <benjamin.bertrand@esss.se> Date: Wed, 3 Jan 2018 14:55:48 +0100 Subject: [PATCH] Add admin_only field to Tag table Some tags (like gateway) should only be selectable by admin users. --- app/models.py | 2 +- app/network/forms.py | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/app/models.py b/app/models.py index 4a2690e..89ed072 100644 --- a/app/models.py +++ b/app/models.py @@ -527,7 +527,7 @@ interfacetags_table = db.Table( class Tag(QRCodeMixin, db.Model): - pass + admin_only = db.Column(db.Boolean, nullable=False, default=False) class Host(CreatedMixin, db.Model): diff --git a/app/network/forms.py b/app/network/forms.py index 145a8a9..2a228b0 100644 --- a/app/network/forms.py +++ b/app/network/forms.py @@ -121,11 +121,14 @@ class InterfaceForm(CSEntryForm): self.host_id.choices = utils.get_model_choices(models.Host) if current_user.is_admin: network_query = models.Network.query + tags_query = models.Tag.query else: network_query = models.Network.query.filter(models.Network.admin_only.is_(False)) + tags_query = models.Tag.query.filter(models.Tag.admin_only.is_(False)) self.network_id.choices = utils.get_model_choices(models.Network, allow_none=False, attr='vlan_name', query=network_query) - self.tags.choices = utils.get_model_choices(models.Tag, allow_none=True, attr='name') + self.tags.choices = utils.get_model_choices(models.Tag, allow_none=True, + attr='name', query=tags_query) class HostInterfaceForm(HostForm, InterfaceForm): -- GitLab