diff --git a/George Wilkinson FYP Proposal.pdf b/George Wilkinson FYP Proposal.pdf deleted file mode 100644 index cca2b78..0000000 Binary files a/George Wilkinson FYP Proposal.pdf and /dev/null differ diff --git a/app/apps/access/admin.py b/app/apps/access/admin.py index 890af4c..b961ed8 100644 --- a/app/apps/access/admin.py +++ b/app/apps/access/admin.py @@ -25,6 +25,8 @@ class AccessRequestAdmin(GuardedModelAdmin): "request_shell", "request_logs", "request_users", + "requested_duration_hours", + "requested_server_username", "requested_at", "expires_at", "decided_by", @@ -56,6 +58,8 @@ class AccessRequestAdmin(GuardedModelAdmin): "request_shell", "request_logs", "request_users", + "requested_duration_hours", + "requested_server_username", "expires_at", ) }, @@ -73,6 +77,8 @@ class AccessRequestAdmin(GuardedModelAdmin): "request_shell", "request_logs", "request_users", + "requested_duration_hours", + "requested_server_username", "expires_at", ) }, diff --git a/app/apps/access/migrations/0004_access_request_scope_metadata.py b/app/apps/access/migrations/0004_access_request_scope_metadata.py new file mode 100644 index 0000000..8ca38a2 --- /dev/null +++ b/app/apps/access/migrations/0004_access_request_scope_metadata.py @@ -0,0 +1,21 @@ +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("access", "0003_access_request_options"), + ] + + operations = [ + migrations.AddField( + model_name="accessrequest", + name="requested_duration_hours", + field=models.PositiveIntegerField(blank=True, null=True), + ), + migrations.AddField( + model_name="accessrequest", + name="requested_server_username", + field=models.CharField(blank=True, max_length=128), + ), + ] diff --git a/app/apps/access/models.py b/app/apps/access/models.py index 9b13d75..eeed5f4 100644 --- a/app/apps/access/models.py +++ b/app/apps/access/models.py @@ -31,6 +31,8 @@ class AccessRequest(models.Model): request_shell = models.BooleanField(default=False) request_logs = models.BooleanField(default=False) request_users = models.BooleanField(default=False) + requested_duration_hours = models.PositiveIntegerField(null=True, blank=True) + requested_server_username = models.CharField(max_length=128, blank=True) requested_at = models.DateTimeField(default=timezone.now, editable=False) decided_at = models.DateTimeField(null=True, blank=True) expires_at = models.DateTimeField(null=True, blank=True) diff --git a/app/apps/accounts/templates/accounts/profile.html b/app/apps/accounts/templates/accounts/profile.html index 1b07ad1..4de992f 100644 --- a/app/apps/accounts/templates/accounts/profile.html +++ b/app/apps/accounts/templates/accounts/profile.html @@ -458,11 +458,9 @@ {% endblock %} diff --git a/app/apps/servers/templates/servers/dashboard.html b/app/apps/servers/templates/servers/dashboard.html index 3660f03..08d67c4 100644 --- a/app/apps/servers/templates/servers/dashboard.html +++ b/app/apps/servers/templates/servers/dashboard.html @@ -138,14 +138,18 @@ Request pending since {{ item.access.pending.requested_at|date:"M j, Y H:i" }} {% else %} -
+ {% endif %} -Request includes shell, logs, and users scopes.
+Choose scopes, duration, and preferred server username in the request popup.
{% endif %} @@ -164,4 +168,144 @@ {% endif %} + + + + {% endblock %} diff --git a/app/apps/servers/templates/servers/detail.html b/app/apps/servers/templates/servers/detail.html index 137f984..3a2f8c5 100644 --- a/app/apps/servers/templates/servers/detail.html +++ b/app/apps/servers/templates/servers/detail.html @@ -129,11 +129,9 @@ - +