Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions accounts/migrations/0005_user_organization.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Generated by Django 4.1.5 on 2023-10-05 09:20

from django.db import migrations, models
import django.db.models.deletion


class Migration(migrations.Migration):

dependencies = [
('datahub', '0055_remove_datasets_user_map_and_more'),
('accounts', '0004_alter_user_approval_status'),
]

operations = [
migrations.AddField(
model_name='user',
name='organization',
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='datahub.organization'),
),
]
6 changes: 6 additions & 0 deletions accounts/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@

# from utils.validators import validate_file_size
from core.base_models import TimeStampMixin
from datahub.models import Organization
from utils.validators import validate_file_size


Expand Down Expand Up @@ -77,6 +78,11 @@ class User(AbstractBaseUser, TimeStampMixin):
"""

id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
organization = models.ForeignKey(
Organization,
on_delete=models.CASCADE,
null=True
)
password = None
last_login = None
is_superuser = None
Expand Down
14 changes: 7 additions & 7 deletions accounts/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -335,7 +335,7 @@ def create(self, request, *args, **kwargs):
email = serializer.validated_data["email"]
otp_entered = serializer.validated_data["otp"]
# user = User.objects.filter(user__email=email).select_related()
user_map = UserOrganizationMap.objects.select_related("user").filter(user__email=email).first()
# user_map = UserOrganizationMap.objects.select_related("user").filter(user__email=email).first()
user = User.objects.filter(email=email)
user = user.first()

Expand Down Expand Up @@ -363,22 +363,22 @@ def create(self, request, *args, **kwargs):
if (correct_otp == int(otp_entered) and cache.get(email)["email"] == email) or email == "imran+1@digitalgreen.org":
cache.delete(email)
refresh = RefreshToken.for_user(user)
refresh["org_id"] = str(user_map.organization_id) if user_map else None
refresh["map_id"] = str(user_map.id) if user_map else None
refresh["org_id"] = str(user.organization_id) if user.organization_id else None
# refresh["map_id"] = str(user_map.id) if user_map else None
refresh["role"] = str(user.role_id)
refresh["onboarded_by"] = str(user.on_boarded_by_id)

refresh.access_token["org_id"] = str(user_map.organization_id) if user_map else None
refresh.access_token["map_id"] = str(user_map.id) if user_map else None
refresh.access_token["org_id"] = str(user.organization_id) if user.organization_id else None
# refresh.access_token["map_id"] = str(user_map.id) if user_map else None
refresh.access_token["role"] = str(user.role_id)
refresh.access_token["onboarded_by"] = str(user.on_boarded_by_id)


return Response(
{
"user": user.id,
"user_map": user_map.id if user_map else None,
"org_id": user_map.organization_id if user_map else None,
# "user_map": user_map.id if user_map else None,
"org_id": str(user.organization_id) if user.organization_id else None,
"email": user.email,
"status": user.status,
"on_boarded": user.on_boarded,
Expand Down
21 changes: 21 additions & 0 deletions datahub/migrations/0055_remove_datasets_user_map_and_more.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Generated by Django 4.1.5 on 2023-10-05 09:20

from django.db import migrations


class Migration(migrations.Migration):

dependencies = [
('datahub', '0054_usagepolicy_configs'),
]

operations = [
migrations.RemoveField(
model_name='datasets',
name='user_map',
),
migrations.RemoveField(
model_name='userorganizationmap',
name='user',
),
]
8 changes: 5 additions & 3 deletions datahub/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@
from django.db import models
from django.utils import timezone

from accounts.models import User
# from accounts.models import User
# from accounts.models import User
from core.base_models import TimeStampMixin
from core.constants import Constants
from utils.validators import (
Expand Down Expand Up @@ -76,7 +77,7 @@ class UserOrganizationMap(TimeStampMixin):
"""UserOrganizationMap model for mapping User and Organization model"""

id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
user = models.ForeignKey(User, on_delete=models.CASCADE)
# user = models.ForeignKey(User, on_delete=models.CASCADE)
organization = models.ForeignKey(Organization, on_delete=models.CASCADE)


Expand Down Expand Up @@ -119,7 +120,8 @@ class Datasets(TimeStampMixin):
"""Datasets model of all the users"""

id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
user_map = models.ForeignKey(UserOrganizationMap, on_delete=models.PROTECT)
# user_map = models.ForeignKey(UserOrganizationMap, on_delete=models.PROTECT)
# user = models.ForeignKey(User, on_delete=models.PROTECT) added user and commenting because this is causing another circular import
name = models.CharField(max_length=255, unique=True)
description = models.CharField(max_length=500)
category = models.JSONField()
Expand Down
26 changes: 23 additions & 3 deletions datahub/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -221,6 +221,26 @@ class Meta:
profile_picture = serializers.FileField()
status = serializers.BooleanField()
on_boarded = serializers.BooleanField()
organization = serializers.UUIDField()

class TeamMemberListAllSerializer(serializers.Serializer):
"""
Create Team Member Serializer.
"""
organization = OrganizationSerializer()

class Meta:
model = User

id = serializers.UUIDField()
email = serializers.EmailField()
first_name = serializers.CharField()
last_name = serializers.CharField()
role = serializers.PrimaryKeyRelatedField(queryset=UserRole.objects.all(), read_only=False)
profile_picture = serializers.FileField()
status = serializers.BooleanField()
on_boarded = serializers.BooleanField()



class TeamMemberCreateSerializer(serializers.ModelSerializer):
Expand All @@ -230,7 +250,7 @@ class TeamMemberCreateSerializer(serializers.ModelSerializer):

class Meta:
model = User
fields = ("email", "first_name", "last_name", "role", "on_boarded_by", "on_boarded")
fields = ("email", "first_name", "last_name", "role", "on_boarded_by", "on_boarded","organization")


class TeamMemberDetailsSerializer(serializers.ModelSerializer):
Expand All @@ -240,7 +260,7 @@ class TeamMemberDetailsSerializer(serializers.ModelSerializer):

class Meta:
model = User
fields = ("id", "email", "first_name", "last_name", "role", "on_boarded_by", "on_boarded")
fields = ("id", "email", "first_name", "last_name", "role", "on_boarded_by", "on_boarded","organization")


class TeamMemberUpdateSerializer(serializers.ModelSerializer):
Expand All @@ -250,7 +270,7 @@ class TeamMemberUpdateSerializer(serializers.ModelSerializer):

class Meta:
model = User
fields = ("id", "email", "first_name", "last_name", "role", "on_boarded_by", "on_boarded")
fields = ("id", "email", "first_name", "last_name", "role", "on_boarded_by", "on_boarded","organization")


class DatasetSerializer(serializers.ModelSerializer):
Expand Down
Loading