Skip to content

Commit 8af4789

Browse files
committed
fix(controller): add check remote user status
1 parent 95e5570 commit 8af4789

16 files changed

Lines changed: 74 additions & 48 deletions

rootfs/api/backend.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
from api import serializers
99
from api.oauth import OAuthManager
1010

11+
User = get_user_model()
12+
1113

1214
class DryccOauthBackend(object):
1315

@@ -29,7 +31,7 @@ def authenticate(self, request, username=None, password=None, **kwargs):
2931
def get_user(self, user_id):
3032
user = None
3133
try:
32-
user = get_user_model().objects.get(pk=user_id)
34+
user = User.objects.get(pk=user_id)
3335
except ObjectDoesNotExist:
3436
pass
3537
return user

rootfs/api/manager.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ class User(ManagerAPI):
5353
def get_status(self, username):
5454
"""
5555
{
56-
"is_active": false,
56+
"is_active": False,
5757
"message": "The user is in arrears"
5858
}
5959
"""

rootfs/api/models/__init__.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,15 @@
1919
from django.db.models.signals import post_delete, post_save
2020
from django.utils.timezone import now
2121
from django.dispatch import receiver
22+
from django.contrib.auth import get_user_model
2223
from rest_framework.exceptions import ValidationError
2324
from rest_framework.authtoken.models import Token
2425
from requests_toolbelt import user_agent
2526
from scheduler.exceptions import KubeException
2627
from .. import __version__ as drycc_version
2728
from ..exceptions import DryccException, AlreadyExists, ServiceUnavailable, UnprocessableEntity # noqa
2829

30+
User = get_user_model()
2931
logger = logging.getLogger(__name__)
3032
session = None
3133

@@ -255,7 +257,7 @@ def _hook_release_created(**kwargs):
255257

256258

257259
# automatically generate a new token on creation
258-
@receiver(post_save, sender=settings.AUTH_USER_MODEL)
260+
@receiver(post_save, sender=User)
259261
def create_auth_token_handle(sender, instance=None, created=False, **kwargs):
260262
if created:
261263
Token.objects.create(user=instance)

rootfs/api/models/app.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717

1818
from django.conf import settings
1919
from django.db import models
20+
from django.contrib.auth import get_user_model
2021
from rest_framework.exceptions import ValidationError, NotFound
2122

2223
from api.models import get_session
@@ -30,6 +31,7 @@
3031
from api.utils import generate_app_name, apply_tasks, unit_to_bytes, unit_to_millicpu
3132
from scheduler import KubeHTTPException, KubeException
3233

34+
User = get_user_model()
3335
logger = logging.getLogger(__name__)
3436

3537

@@ -64,7 +66,7 @@ class App(UuidAuditedModel):
6466
Application used to service requests on behalf of end-users
6567
"""
6668

67-
owner = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.PROTECT)
69+
owner = models.ForeignKey(User, on_delete=models.PROTECT)
6870
id = models.SlugField(max_length=63, unique=True, null=True,
6971
validators=[validate_app_id,
7072
validate_reserved_names])

rootfs/api/models/appsettings.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,23 @@
11
import logging
2-
from django.conf import settings
32
from django.db import models
43
from django.db import transaction
4+
55
from django.contrib.postgres.fields import ArrayField
66
from rest_framework.exceptions import NotFound
7-
7+
from django.contrib.auth import get_user_model
88
from api.utils import dict_diff
99
from api.models import UuidAuditedModel
1010
from api.exceptions import DryccException, AlreadyExists, UnprocessableEntity
1111

12+
User = get_user_model()
13+
1214

1315
class AppSettings(UuidAuditedModel):
1416
"""
1517
Instance of Application settings used by scheduler
1618
"""
1719

18-
owner = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.PROTECT)
20+
owner = models.ForeignKey(User, on_delete=models.PROTECT)
1921
app = models.ForeignKey('App', on_delete=models.CASCADE)
2022
routable = models.BooleanField(null=True)
2123
# the default values is None to differentiate from user sending an empty allowlist

rootfs/api/models/build.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
1+
import logging
12
from django.conf import settings
23
from django.db import models
3-
4+
from django.contrib.auth import get_user_model
45
from api.models import UuidAuditedModel
56
from api.exceptions import DryccException, Conflict
67

7-
import logging
8+
User = get_user_model()
89
logger = logging.getLogger(__name__)
910

1011

@@ -13,7 +14,7 @@ class Build(UuidAuditedModel):
1314
Instance of a software build used by runtime nodes
1415
"""
1516

16-
owner = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.PROTECT)
17+
owner = models.ForeignKey(User, on_delete=models.PROTECT)
1718
app = models.ForeignKey('App', on_delete=models.CASCADE)
1819
image = models.TextField()
1920
stack = models.CharField(max_length=32)

rootfs/api/models/certificate.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import logging
12
from OpenSSL import crypto
23
from pyasn1.codec.der import decoder as der_decoder
34
from pyasn1.type import univ, constraint
@@ -8,17 +9,15 @@
89

910
from django.shortcuts import get_object_or_404
1011
from django.db import models
11-
from django.conf import settings
1212
from django.core.exceptions import SuspiciousOperation
1313
from django.contrib.postgres.fields import ArrayField
14+
from django.contrib.auth import get_user_model
1415
from rest_framework.exceptions import ValidationError
15-
1616
from api.models import AuditedModel, validate_label, AlreadyExists, ServiceUnavailable
1717
from api.models.domain import Domain
18-
1918
from scheduler import KubeException
2019

21-
import logging
20+
User = get_user_model()
2221
logger = logging.getLogger(__name__)
2322

2423

@@ -82,7 +81,7 @@ class Certificate(AuditedModel):
8281
"""
8382
Public and private key pair used to secure application traffic at the router.
8483
"""
85-
owner = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.PROTECT)
84+
owner = models.ForeignKey(User, on_delete=models.PROTECT)
8685
name = models.CharField(max_length=253, unique=True, validators=[validate_label])
8786
# there is no upper limit on the size of an x.509 certificate
8887
certificate = models.TextField(validators=[validate_certificate])

rootfs/api/models/config.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,12 @@
22
import logging
33
from django.conf import settings
44
from django.db import models
5+
from django.contrib.auth import get_user_model
56
from api.models.release import Release
67
from api.models import UuidAuditedModel
78
from api.exceptions import DryccException, UnprocessableEntity
89

9-
10+
User = get_user_model()
1011
logger = logging.getLogger(__name__)
1112

1213

@@ -16,7 +17,7 @@ class Config(UuidAuditedModel):
1617
during runtime execution of the Application.
1718
"""
1819

19-
owner = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.PROTECT)
20+
owner = models.ForeignKey(User, on_delete=models.PROTECT)
2021
app = models.ForeignKey('App', on_delete=models.CASCADE)
2122
values = models.JSONField(default=dict, blank=True)
2223
memory = models.JSONField(default=dict, blank=True)

rootfs/api/models/domain.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
from django.db import models
2-
from django.conf import settings
32
from django.db import transaction
4-
3+
from django.contrib.auth import get_user_model
54
from api.models import AuditedModel
65

6+
User = get_user_model()
7+
78

89
class Domain(AuditedModel):
9-
owner = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.PROTECT)
10+
owner = models.ForeignKey(User, on_delete=models.PROTECT)
1011
app = models.ForeignKey('App', on_delete=models.CASCADE)
1112
domain = models.TextField(
1213
blank=False, null=False, unique=True,

rootfs/api/models/key.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
import base64
2-
3-
from django.conf import settings
42
from django.db import models
53
from rest_framework.exceptions import ValidationError
6-
4+
from django.contrib.auth import get_user_model
75
from api.models import UuidAuditedModel
86
from api.utils import fingerprint
97

8+
User = get_user_model()
9+
1010

1111
def validate_base64(value):
1212
"""Check that value contains only valid base64 characters."""
@@ -19,7 +19,7 @@ def validate_base64(value):
1919
class Key(UuidAuditedModel):
2020
"""An SSH public key."""
2121

22-
owner = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
22+
owner = models.ForeignKey(User, on_delete=models.CASCADE)
2323
id = models.CharField(max_length=128, unique=True)
2424
public = models.TextField(
2525
unique=True, validators=[validate_base64],

0 commit comments

Comments
 (0)