Skip to content

Commit edb0ef1

Browse files
committed
Remove PurldbUser model #504
* We are going to use user.id for now to avoid migration issues Signed-off-by: Jono Yang <jyang@nexb.com>
1 parent 8ee69b7 commit edb0ef1

File tree

4 files changed

+7
-231
lines changed

4 files changed

+7
-231
lines changed

minecode/api.py

+6-7
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,12 @@
1010
import json
1111

1212
from django import http
13+
from django.contrib.auth import get_user_model
1314
from django.core import signing
1415
from django.db import transaction
1516
from django.utils import timezone
1617
from django.views.decorators.csrf import csrf_exempt
1718
from django.views.decorators.http import require_POST
18-
1919
from packageurl import PackageURL
2020
from rest_framework import serializers, status, viewsets
2121
from rest_framework.decorators import action
@@ -26,7 +26,7 @@
2626
# But importing the mappers and visitors module triggers routes registration
2727
from minecode import visitors # NOQA
2828
from minecode import priority_router
29-
from minecode.models import PriorityResourceURI, ResourceURI, ScannableURI, PurldbUser
29+
from minecode.models import PriorityResourceURI, ResourceURI, ScannableURI
3030
from minecode.permissions import IsScanQueueWorkerAPIUser
3131
from minecode.utils import get_temp_file
3232
from minecode.utils import get_webhook_url
@@ -116,9 +116,7 @@ def get_next_download_url(self, request, *args, **kwargs):
116116
scannable_uri = ScannableURI.objects.get_next_scannable()
117117
if scannable_uri:
118118
user = self.request.user
119-
# TODO: Create scan index API view
120-
# TODO: Create custom User class and use UUID as id field
121-
webhook_url = get_webhook_url("notifications:send_scan_notification", user.id)
119+
webhook_url = get_webhook_url("send_scan_notification", user.id)
122120
response = {
123121
'scannable_uri_uuid': scannable_uri.uuid,
124122
'download_url': scannable_uri.uri,
@@ -359,8 +357,9 @@ def send_scan_notification(request, key):
359357
except json.JSONDecodeError:
360358
raise http.Http404
361359

362-
user_uuid = signing.loads(key)
363-
user = http.get_object_or_404(PurldbUser, uuid=user_uuid)
360+
user_id = signing.loads(key)
361+
User = get_user_model()
362+
user = http.get_object_or_404(User, id=user_id)
364363

365364
results = json_data.get('results')
366365
summary = json_data.get('summary')

minecode/migrations/0038_purldbuser.py

-135
This file was deleted.

minecode/models.py

-87
Original file line numberDiff line numberDiff line change
@@ -1164,90 +1164,3 @@ class ProcessingError(BaseURI):
11641164

11651165
class Meta:
11661166
verbose_name = 'Processing Error'
1167-
1168-
1169-
class PurldbUserManager(BaseUserManager):
1170-
def create_user(self, username, email, password, **extra_fields):
1171-
"""
1172-
Create and saves a User with the given username, email, and password.
1173-
"""
1174-
if not username:
1175-
raise ValueError("The given username must be set")
1176-
1177-
if not email:
1178-
raise ValueError("Users must have an email address")
1179-
1180-
defaults = {
1181-
"is_active": True,
1182-
"is_staff": False,
1183-
"is_superuser": False,
1184-
}
1185-
1186-
groups = extra_fields.pop("groups", [])
1187-
defaults.update(extra_fields)
1188-
email = PurldbUserManager.normalize_email(email)
1189-
now = timezone.now()
1190-
1191-
user = self.model(
1192-
username=username,
1193-
email=email,
1194-
last_login=now,
1195-
date_joined=now,
1196-
**defaults,
1197-
)
1198-
user.set_password(password)
1199-
user.save(using=self._db)
1200-
1201-
for group_name in groups:
1202-
with suppress(Group.DoesNotExist):
1203-
user.groups.add(Group.objects.get(name=group_name))
1204-
1205-
return user
1206-
1207-
def create_superuser(self, username, email, password, **extra_fields):
1208-
"""
1209-
Create and saves a superuser with the given username, email, and
1210-
password.
1211-
"""
1212-
extra_fields.update(
1213-
{
1214-
"is_active": True,
1215-
"is_staff": True,
1216-
"is_superuser": True,
1217-
}
1218-
)
1219-
return self.create_user(username, email, password, **extra_fields)
1220-
1221-
def create_scan_queue_worker_user(self, username, email, password, **extra_fields):
1222-
extra_fields.update(
1223-
{
1224-
"is_active": True,
1225-
"is_staff": True,
1226-
"is_superuser": False,
1227-
"groups": ['scan_queue_workers',],
1228-
}
1229-
)
1230-
return self.create_user(username, email, password, **extra_fields)
1231-
1232-
1233-
class PurldbUser(AbstractUser):
1234-
uuid = models.UUIDField(
1235-
"UUID",
1236-
default=uuid.uuid4,
1237-
editable=False,
1238-
unique=True,
1239-
)
1240-
1241-
objects = PurldbUserManager()
1242-
1243-
class Meta:
1244-
ordering = ["username"]
1245-
1246-
def regenerate_api_key(self):
1247-
"""
1248-
Regenerate the user API key.
1249-
Since the `key` value is the primary key on the Token `model`,
1250-
the old key needs to be deleted first, a new one is then created.
1251-
"""
1252-
self.auth_token.delete()
1253-
Token.objects.create(user=self)

purldb_project/settings.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,7 @@
5454

5555
PURLDB_LOG_LEVEL = env.str("PURLDB_LOG_LEVEL", "INFO")
5656

57-
# DejaCode User Model
58-
AUTH_USER_MODEL = "minecode.PurldbUser"
57+
SITE_URL = env.str("SITE_URL", default="")
5958

6059
# Application definition
6160

0 commit comments

Comments
 (0)