-
-
Notifications
You must be signed in to change notification settings - Fork 9
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Create internal module, module permission and updated WeniOIDCAuthent…
…icationBackend to add permission if the user is a module
- Loading branch information
1 parent
0c31123
commit b49b233
Showing
6 changed files
with
100 additions
and
43 deletions.
There are no files selected for viewing
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,9 @@ | ||
from rest_framework import permissions | ||
|
||
|
||
class ModuleHasPermission(permissions.BasePermission): | ||
def has_permission(self, request, view): # pragma: no cover | ||
return request.user.has_perm("authentication.can_communicate_internally") | ||
|
||
def has_object_permission(self, request, view, obj): | ||
return self.has_permission(request, view) |
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 |
---|---|---|
@@ -1,9 +1,58 @@ | ||
from bothub.utils import check_module_permission | ||
from rest_framework.authtoken.models import Token | ||
|
||
from bothub.authentication.models import User | ||
from bothub.common import languages | ||
from bothub.common.models import Repository | ||
|
||
|
||
def create_user_and_token(nickname="fake"): | ||
def create_user_and_token(nickname="fake", module=False): | ||
user = User.objects.create_user("{}@user.com".format(nickname), nickname) | ||
if module is True: | ||
check_module_permission({"can_communicate_internally": module}, user) | ||
user = User.objects.get(email=user.email) | ||
token, create = Token.objects.get_or_create(user=user) | ||
return (user, token) | ||
|
||
|
||
def get_valid_mockups(categories): | ||
return [ | ||
{ | ||
"name": "Repository 1", | ||
"slug": "repository-1", | ||
"description": "", | ||
"language": languages.LANGUAGE_EN, | ||
"categories": [category.pk for category in categories], | ||
}, | ||
{ | ||
"name": "Repository 2", | ||
"description": "", | ||
"language": languages.LANGUAGE_PT, | ||
"categories": [category.pk for category in categories], | ||
}, | ||
] | ||
|
||
|
||
def get_invalid_mockups(categories): | ||
return [ | ||
{ | ||
"name": "", | ||
"slug": "repository-1", | ||
"language": languages.LANGUAGE_EN, | ||
"categories": [category.pk for category in categories], | ||
}, | ||
{ | ||
"name": "Repository 3", | ||
"language": "out", | ||
"categories": [category.pk for category in categories], | ||
"is_private": False, | ||
}, | ||
] | ||
|
||
|
||
def create_repository_from_mockup(owner, categories, **mockup): | ||
r = Repository.objects.create(owner_id=owner.id, **mockup) | ||
r.current_version() | ||
for category in categories: | ||
r.categories.add(category) | ||
return r |
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