Skip to content

Commit

Permalink
Multiple fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
lorinkoz committed Jun 10, 2020
1 parent 5586f59 commit fdd74e9
Show file tree
Hide file tree
Showing 11 changed files with 29 additions and 73 deletions.
4 changes: 2 additions & 2 deletions drf_triad_permissions/settings.py
Expand Up @@ -5,9 +5,9 @@
DEFAULT_TRIAD_WILDCARDS = {
"*": r"^.+$",
"all": r"^.+$",
"<read>": r"^list|retrieve$",
"[read]": r"^list|retrieve$",
"read": r"^list|retrieve$",
"<write>": r"^create|update|partial-update|destroy$",
"[write]": r"^create|update|partial-update|destroy$",
"write": r"^create|update|partial-update|destroy$",
}

Expand Down
8 changes: 3 additions & 5 deletions drf_triad_permissions/templates/triad_permissions/code.js.tpl
@@ -1,8 +1,6 @@
triadPermissions = (function () {
const wildcards = {
{% for wildcard, regex in TRIAD_WILDCARDS.items %}
"{{ wildcard }}": /{{ regex }}/,
{% endfor %}
const wildcards = {{% for wildcard, regex in TRIAD_WILDCARDS.items %}
"{{ wildcard }}": /{{ regex }}/,{% endfor %}
};
return {
match: function (query, perm, strict) {
Expand All @@ -11,7 +9,7 @@ triadPermissions = (function () {
if (strict === undefined) {
strict = true;
}
if (queryChunks.length != 3 || permChunks.length != 3) {
if (queryChunks.length !== 3 || permChunks.length !== 3) {
return null;
}
for (let i = 0; i < queryChunks.length; i++) {
Expand Down
3 changes: 2 additions & 1 deletion drf_triad_permissions/views.py
@@ -1,6 +1,7 @@
from django.http import HttpResponse
from django.template.loader import render_to_string

from .settings import TRIAD_DIVIDER, TRIAD_WILDCARDS
from .settings import TRIAD_DIVIDER, TRIAD_SOFT_WILDCARD, TRIAD_WILDCARDS


def triad_permissions_js(request):
Expand Down
4 changes: 2 additions & 2 deletions triads_sandbox/manage.py
Expand Up @@ -5,7 +5,7 @@


def main():
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'triads_sandbox.settings')
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "settings")
try:
from django.core.management import execute_from_command_line
except ImportError as exc:
Expand All @@ -17,5 +17,5 @@ def main():
execute_from_command_line(sys.argv)


if __name__ == '__main__':
if __name__ == "__main__":
main()
Expand Up @@ -37,6 +37,7 @@
"django.contrib.sessions",
"django.contrib.messages",
"django.contrib.staticfiles",
"drf_triad_permissions",
]

MIDDLEWARE = [
Expand All @@ -49,7 +50,7 @@
"django.middleware.clickjacking.XFrameOptionsMiddleware",
]

ROOT_URLCONF = "triads_sandbox.urls"
ROOT_URLCONF = "urls"

TEMPLATES = [
{
Expand All @@ -67,8 +68,6 @@
},
]

WSGI_APPLICATION = "triads_sandbox.wsgi.application"


# Database
# https://docs.djangoproject.com/en/3.0/ref/settings/#databases
Expand Down
16 changes: 9 additions & 7 deletions triads_sandbox/tests/test_matching.py
Expand Up @@ -44,20 +44,20 @@ def test_matching_all_or_asterisk(self):
def test_matching_read(self):
# This can be done at any level, but will happen most likely at the third
self.assertTrue(match("resource::object::list", "resource::object::read"))
self.assertTrue(match("resource::object::list", "resource::object::<read>"))
self.assertTrue(match("resource::object::list", "resource::object::[read]"))
self.assertTrue(match("resource::object::retrieve", "resource::object::read"))
self.assertTrue(match("resource::object::retrieve", "resource::object::<read>"))
self.assertTrue(match("resource::object::retrieve", "resource::object::[read]"))

def test_matching_write(self):
# This can be done at any level, but will happen most likely at the third
self.assertTrue(match("resource::object::create", "resource::object::write"))
self.assertTrue(match("resource::object::create", "resource::object::<write>"))
self.assertTrue(match("resource::object::create", "resource::object::[write]"))
self.assertTrue(match("resource::object::update", "resource::object::write"))
self.assertTrue(match("resource::object::update", "resource::object::<write>"))
self.assertTrue(match("resource::object::update", "resource::object::[write]"))
self.assertTrue(match("resource::object::partial-update", "resource::object::write"))
self.assertTrue(match("resource::object::partial-update", "resource::object::<write>"))
self.assertTrue(match("resource::object::partial-update", "resource::object::[write]"))
self.assertTrue(match("resource::object::destroy", "resource::object::write"))
self.assertTrue(match("resource::object::destroy", "resource::object::<write>"))
self.assertTrue(match("resource::object::destroy", "resource::object::[write]"))

def test_matching_custom_wildcard(self):
# Custom wildcard defined in settings
Expand Down Expand Up @@ -123,7 +123,9 @@ class MatchAllTestCase(SimpleTestCase):

def test_match_all(self):
self.assertTrue(
match_all("a::b::c", ["a::b::c", "a::b::*", "a::*::c", "*::b::c", "a::*::*", "*::*::c", "*::b::*", "*::*::*"])
match_all(
"a::b::c", ["a::b::c", "a::b::*", "a::*::c", "*::b::c", "a::*::*", "*::*::c", "*::b::*", "*::*::*"]
)
)

def test_no_match_all(self):
Expand Down
Empty file.
16 changes: 0 additions & 16 deletions triads_sandbox/triads_sandbox/asgi.py

This file was deleted.

21 changes: 0 additions & 21 deletions triads_sandbox/triads_sandbox/urls.py

This file was deleted.

16 changes: 0 additions & 16 deletions triads_sandbox/triads_sandbox/wsgi.py

This file was deleted.

9 changes: 9 additions & 0 deletions triads_sandbox/urls.py
@@ -0,0 +1,9 @@
from django.contrib import admin
from django.urls import path

from drf_triad_permissions.views import triad_permissions_js

urlpatterns = [
path("admin/", admin.site.urls),
path("permissions.js", triad_permissions_js, name="triad_permissions_js"),
]

0 comments on commit fdd74e9

Please sign in to comment.