Skip to content

Commit

Permalink
added admin support
Browse files Browse the repository at this point in the history
source: intelowlproject/IntelOwl#1470
updated pre-commit and fixed flake8 syntax error
  • Loading branch information
federicofantini committed Aug 9, 2023
1 parent cfb7c1f commit 2ea24db
Show file tree
Hide file tree
Showing 5 changed files with 90 additions and 38 deletions.
30 changes: 17 additions & 13 deletions .flake8
Original file line number Diff line number Diff line change
@@ -1,15 +1,19 @@
[flake8]
max-line-length = 160
exclude =
Dockerfile
docker-compose*
scripts
build
venv*
certego_django_apps/migrations
max-line-length = 88
ignore =
F821 # undefined name 'Rule'
W503 # line break before binary operator
E402 # module level import not at top of file
W291 # trailing whitespace nightmare
E203 # whitespace before ':'
# line break before binary operator
W503,
# missing whitespace after ',' (caused by black style)
E231,
# invalid escape sequence (caused by regex)
W605,
exclude =
Dockerfile,
docker-compose*,
venv,
docs,
migrations,
virtualenv,
ldap_config.py
api_app/analyzers_manager/migrations/*(venv)
example_project
67 changes: 43 additions & 24 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -1,33 +1,52 @@
repos:
- repo: https://github.com/myint/autoflake
rev: v1.4
hooks:
- id: autoflake
args:
[
"--remove-all-unused-imports",
"--remove-unused-variables",
"--ignore-init-module-imports",
"-i",
]
- repo: https://github.com/psf/black
rev: 22.3.0
rev: 23.7.0
hooks:
- id: black
- repo: https://gitlab.com/pycqa/flake8
rev: 4.0.1
- repo: https://github.com/PyCQA/flake8
rev: 6.1.0
hooks:
- id: flake8
- repo: https://github.com/pycqa/isort
rev: 5.10.1
rev: 5.12.0
hooks:
- id: isort
args: ["--profile", "black", "--filter-files", "--skip", "venv"]
#- repo: https://github.com/pre-commit/mirrors-mypy
# rev: master
# hooks:
# - id: mypy
# additional_dependencies:
# - django-stubs
# - djangorestframework-stubs
# args: [--no-strict-optional, --ignore-missing-imports]
args:
[
"--profile",
"black",
"--filter-files",
"--skip",
"venv",
"--skip",
"configuration/ldap_config.py",
]
- repo: https://github.com/pre-commit/mirrors-eslint
rev: v8.46.0
hooks:
- id: eslint
additional_dependencies:
- eslint@8.16.0
- eslint-config-airbnb@19.0.4
- eslint-config-prettier@8.5.0
- eslint-plugin-import@2.26.0
- eslint-plugin-jsx-a11y@6.5.1
- eslint-plugin-react@7.30.0
- eslint-plugin-react-hooks@4.5.0
args: ["--fix"]
files: frontend/src/
- repo: https://github.com/pre-commit/mirrors-prettier
rev: v3.0.1
hooks:
- id: prettier
files: frontend/src/
- repo: https://github.com/awebdeveloper/pre-commit-stylelint
rev: 0.0.2
hooks:
- id: stylelint
additional_dependencies:
- stylelint@14.8.5
- stylelint-config-prettier@9.0.3
- stylelint-config-standard-scss@4.0.0
args: ["--fix"]
files: frontend/src/styles/.*(css|scss)$
2 changes: 2 additions & 0 deletions certego_saas/apps/organization/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,14 @@ class MembershipAdmin(admin.ModelAdmin):
"user",
"organization",
"is_owner",
"is_admin",
"created_at",
)

list_filter = (
"organization",
"is_owner",
"is_admin",
)


Expand Down
14 changes: 13 additions & 1 deletion certego_saas/apps/organization/membership.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,17 @@ class Meta:
on_delete=models.CASCADE,
)
is_owner = models.BooleanField(default=False)
is_admin = models.BooleanField(default=False)

# funcs
def clean_admin(self):
if self.is_owner and not self.is_admin:
# an owner must be an admin, permissions will be checked on this field
self.is_admin = True

def clean(self):
super().clean()
self.clean_admin()

def __str__(self):
member_str = "owner" if self.is_owner else "member"
Expand All @@ -48,4 +57,7 @@ class ExistingMembershipException(ValidationError):
)

class OwnerCantLeaveException(ValidationError):
default_detail = "Owner cannot leave the organization but can choose to delete the organization."
default_detail = (
"Owner cannot leave the organization"
"but can choose to delete the organization."
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
from django.db import migrations, models


class Migration(migrations.Migration):
dependencies = [
("certego_saas_organization", "0001_initial"),
]

operations = [
migrations.AddField(
model_name="membership",
name="is_admin",
field=models.BooleanField(default=False),
),
]

0 comments on commit 2ea24db

Please sign in to comment.