This repository has been archived by the owner on Mar 17, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 13
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Feature/SK-393 | Limit apps per project (#102)
- Loading branch information
1 parent
29a79a5
commit 1674a95
Showing
10 changed files
with
427 additions
and
72 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
from django.conf import settings | ||
|
||
|
||
def get_apps_limit_per_user(slug): | ||
"""get_apps_limit_per_user | ||
Args: | ||
slug (App.slug): slug for the app type | ||
Returns: | ||
Integer or None: returns the limit or None if not set | ||
""" | ||
try: | ||
apps_per_user_limit = ( | ||
settings.APPS_PER_USER_LIMIT | ||
if settings.APPS_PER_USER_LIMIT is not None | ||
else {} | ||
) | ||
except Exception: | ||
apps_per_user_limit = {} | ||
|
||
return apps_per_user_limit[slug] if slug in apps_per_user_limit else None |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,71 @@ | ||
from django.contrib.auth import get_user_model | ||
from django.test import TestCase | ||
|
||
from projects.models import Project | ||
|
||
from ..models import AppInstance, Apps | ||
|
||
User = get_user_model() | ||
|
||
|
||
class AppInstaceTestCase(TestCase): | ||
def setUp(self): | ||
self.user = User.objects.create_user("foo1", "foo@test.com", "bar") | ||
|
||
def get_data(self, access): | ||
project = Project.objects.create_project( | ||
name="test-perm", owner=self.user, description="", repository="" | ||
) | ||
app = Apps.objects.create(name="FEDn Combiner", slug="combiner") | ||
|
||
app_instance = AppInstance.objects.create( | ||
access=access, | ||
owner=self.user, | ||
name="test_app_instance_private", | ||
app=app, | ||
project=project, | ||
) | ||
|
||
return [project, app, app_instance] | ||
|
||
def test_permission_created_if_private(self): | ||
project, app, app_instance = self.get_data("private") | ||
|
||
result = self.user.has_perm("can_access_app", app_instance) | ||
|
||
self.assertTrue(result) | ||
|
||
def test_permission_do_note_created_if_project(self): | ||
project, app, app_instance = self.get_data("project") | ||
|
||
result = self.user.has_perm("can_access_app", app_instance) | ||
|
||
self.assertFalse(result) | ||
|
||
def test_permission_create_if_changed_to_private(self): | ||
project, app, app_instance = self.get_data("project") | ||
|
||
result = self.user.has_perm("can_access_app", app_instance) | ||
|
||
self.assertFalse(result) | ||
|
||
app_instance.access = "private" | ||
app_instance.save() | ||
|
||
result = self.user.has_perm("can_access_app", app_instance) | ||
|
||
self.assertTrue(result) | ||
|
||
def test_permission_remove_if_changed_from_project(self): | ||
project, app, app_instance = self.get_data("private") | ||
|
||
result = self.user.has_perm("can_access_app", app_instance) | ||
|
||
self.assertTrue(result) | ||
|
||
app_instance.access = "project" | ||
app_instance.save() | ||
|
||
result = self.user.has_perm("can_access_app", app_instance) | ||
|
||
self.assertFalse(result) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.