From fe3d2b6136143023325a917e816b2fb842d96998 Mon Sep 17 00:00:00 2001 From: Alisson Date: Mon, 28 Aug 2023 10:32:37 -0300 Subject: [PATCH 1/2] remove calls to update_user_permission --- connect/common/signals.py | 20 -------------------- 1 file changed, 20 deletions(-) diff --git a/connect/common/signals.py b/connect/common/signals.py index 07e0fa5b..608e0398 100644 --- a/connect/common/signals.py +++ b/connect/common/signals.py @@ -339,27 +339,7 @@ def request_chats_permission(sender, instance, created, **kwargs): if user.exists(): user = user.first() project_auth = instance.project.project_authorizations.filter(user=user) - chats_instance = ChatsRESTClient() if project_auth.exists(): - project_auth = project_auth.first() - chats_role = ChatsRole.ADMIN.value if project_auth.is_moderator else ChatsRole.AGENT.value - if not project_auth.chats_authorization: - if not settings.TESTING: - chats_instance.update_user_permission( - project_uuid=str(instance.project.uuid), - user_email=user.email, - permission=chats_role - ) - else: - # project_auth.chats_authorization.role = chats_role - # project_auth.chats_authorization.save(update_fields=["role"]) - if not settings.TESTING: - chats_instance.update_user_permission( - permission=chats_role, - user_email=user.email, - project_uuid=str(instance.project.uuid) - ) - # project_auth.save(update_fields=["chats_authorization"]) instance.delete() From 1f7f04c1e31850ad6631459e1079de013834bbcd Mon Sep 17 00:00:00 2001 From: Alisson Date: Mon, 28 Aug 2023 10:51:41 -0300 Subject: [PATCH 2/2] remove RequestChatsPermission --- connect/api/v1/project/serializers.py | 32 +------------- connect/api/v1/project/views.py | 10 ----- connect/api/v2/projects/serializers.py | 6 --- .../migrations/0081_auto_20230828_1348.py | 21 +++++++++ connect/common/models.py | 11 ----- connect/common/signals.py | 44 +------------------ 6 files changed, 23 insertions(+), 101 deletions(-) create mode 100644 connect/common/migrations/0081_auto_20230828_1348.py diff --git a/connect/api/v1/project/serializers.py b/connect/api/v1/project/serializers.py index d8c2577e..3ebd3354 100644 --- a/connect/api/v1/project/serializers.py +++ b/connect/api/v1/project/serializers.py @@ -19,7 +19,6 @@ from connect.celery import app as celery_app from connect.common import tasks from connect.common.models import ( - ChatsRole, ProjectAuthorization, RocketAuthorization, Service, @@ -32,7 +31,6 @@ OpenedProject, ProjectRole, TemplateProject, - RequestChatsPermission, ChatsAuthorization, ) @@ -218,22 +216,15 @@ def get_pending_authorizations(self, obj): } for i in obj.requestpermissionproject_set.all(): rocket_authorization = RequestRocketPermission.objects.filter(email=i.email) - chats_authorization = RequestChatsPermission.objects.filter(email=i.email) - chats_role = None if(len(rocket_authorization) > 0): + # TODO: Remove rocket rocket_authorization = rocket_authorization.first() - chats_role = rocket_authorization.role - - if len(chats_authorization) > 0: - chats_authorization = chats_authorization.first() - chats_role = chats_authorization.role response["users"].append( dict( email=i.email, project_role=i.role, created_by=i.created_by.email, - chats_role=chats_role ) ) return response @@ -381,27 +372,6 @@ def validate(self, attrs): return attrs -class RequestChatsPermissionSerializer(serializers.ModelSerializer): - class Meta: - model = RequestChatsPermission - fields = ["email", "project", "role", "created_by"] - - email = serializers.EmailField(max_length=254, required=True) - project = serializers.PrimaryKeyRelatedField( - queryset=Project.objects, - style={"show": False}, - required=True, - ) - created_by = serializers.HiddenField( - default=serializers.CurrentUserDefault(), style={"show": False} - ) - - def validate(self, attrs): - if attrs.get("role") == ChatsRole.NOT_SETTED.value: - raise PermissionDenied(_("You cannot set user role 0")) - return attrs - - class ReleaseChannelSerializer(serializers.Serializer): channel_uuid = serializers.CharField(required=True) user = serializers.CharField(required=True) diff --git a/connect/api/v1/project/views.py b/connect/api/v1/project/views.py index 92351d24..642fede9 100644 --- a/connect/api/v1/project/views.py +++ b/connect/api/v1/project/views.py @@ -44,7 +44,6 @@ ChatsAuthorization, OrganizationAuthorization, Project, - RequestChatsPermission, RequestPermissionProject, RequestRocketPermission, ProjectAuthorization, @@ -461,9 +460,7 @@ def create(request, *args, **kwargs): project_auth = project.project_authorizations.filter(user__email=email) request_rocket_authorization = RequestRocketPermission.objects.filter(email=email, project=project) - request_chats_authorization = RequestChatsPermission.objects.filter(email=email, project=project) rocket_authorization = None - chats_authorization = None user_name = '' first_name = '' @@ -480,7 +477,6 @@ def create(request, *args, **kwargs): elif project_auth.exists(): project_auth = project_auth.first() rocket_authorization = project_auth.rocket_authorization - chats_authorization = project_auth.chats_authorization user_name = project_auth.user.username first_name = project_auth.user.first_name last_name = project_auth.user.last_name @@ -506,12 +502,6 @@ def create(request, *args, **kwargs): else: if chats_role and len([item for item in ChatsAuthorization.ROLE_CHOICES if item[0] == chats_role]) == 0: return Response({"status": 422, "message": f"{chats_role} is not a valid chats role!"}) - if request_chats_authorization.exists(): - request_chats_authorization = request_chats_authorization.first() - request_chats_authorization.role = chats_role - request_chats_authorization.save() - elif chats_authorization or chats_role: - RequestChatsPermission.objects.create(email=email, role=chats_role, project=project, created_by=created_by) return Response({ "status": 200, diff --git a/connect/api/v2/projects/serializers.py b/connect/api/v2/projects/serializers.py index d52457dc..3e98c175 100644 --- a/connect/api/v2/projects/serializers.py +++ b/connect/api/v2/projects/serializers.py @@ -24,7 +24,6 @@ OpenedProject, ProjectRole, TemplateProject, - RequestChatsPermission, ) from connect.internals.event_driven.producer.rabbitmq_publisher import RabbitmqPublisher from connect.template_projects.models import TemplateType @@ -324,16 +323,11 @@ def get_pending_authorizations(self, obj): # pragma: no cover } for i in obj.requestpermissionproject_set.all(): rocket_authorization = RequestRocketPermission.objects.filter(email=i.email) - chats_authorization = RequestChatsPermission.objects.filter(email=i.email) chats_role = None if(len(rocket_authorization) > 0): rocket_authorization = rocket_authorization.first() chats_role = rocket_authorization.role - if len(chats_authorization) > 0: - chats_authorization = chats_authorization.first() - chats_role = chats_authorization.role - response["users"].append( dict( email=i.email, diff --git a/connect/common/migrations/0081_auto_20230828_1348.py b/connect/common/migrations/0081_auto_20230828_1348.py new file mode 100644 index 00000000..169d318e --- /dev/null +++ b/connect/common/migrations/0081_auto_20230828_1348.py @@ -0,0 +1,21 @@ +# Generated by Django 3.2.20 on 2023-08-28 13:48 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('common', '0080_auto_20230824_1906'), + ] + + operations = [ + migrations.AlterField( + model_name='recentactivity', + name='action', + field=models.CharField(choices=[('UPDATE', 'Entity updated'), ('TRAIN', 'Entity Trained'), ('ADD', 'Add'), ('INTEGRATE', 'Entity integrated'), ('CREATE', 'Entity Created')], max_length=15), + ), + migrations.DeleteModel( + name='RequestChatsPermission', + ), + ] diff --git a/connect/common/models.py b/connect/common/models.py index 039ab706..76265cef 100644 --- a/connect/common/models.py +++ b/connect/common/models.py @@ -1195,17 +1195,6 @@ class RequestRocketPermission(models.Model): created_by = models.ForeignKey(User, models.CASCADE) -class RequestChatsPermission(models.Model): - email = models.EmailField(_("email")) - role = models.PositiveIntegerField( - _("role"), - choices=ChatsAuthorization.ROLE_CHOICES, - default=ChatsRole.NOT_SETTED.value, - ) - project = models.ForeignKey(Project, models.CASCADE) - created_by = models.ForeignKey(User, models.CASCADE) - - class Service(models.Model): class Meta: verbose_name = _("service") diff --git a/connect/common/signals.py b/connect/common/signals.py index 608e0398..2d054908 100644 --- a/connect/common/signals.py +++ b/connect/common/signals.py @@ -7,7 +7,6 @@ from connect.authentication.models import User from connect.common.models import ( - ChatsRole, Project, Service, Organization, @@ -21,7 +20,6 @@ ProjectRoleLevel, RocketAuthorization, RequestRocketPermission, - RequestChatsPermission, OpenedProject, RecentActivity ) @@ -86,13 +84,7 @@ def create_service_status(sender, instance, created, **kwargs): project_auth = instance.get_user_authorization(authorization.user) project_auth.role = authorization.role project_auth.save() - if not settings.TESTING and project_auth.is_moderator: - RequestChatsPermission.objects.create( - email=project_auth.user.email, - role=ChatsRole.ADMIN.value, - project=project_auth.project, - created_by=project_auth.user - ) + elif update_fields and "flow_organization" in update_fields: for permission in instance.project_authorizations.all(): update_user_permission_project( @@ -246,14 +238,6 @@ def request_permission_project(sender, instance, created, **kwargs): auth_user = auth_user.first() auth_user.role = instance.role auth_user.save(update_fields=["role"]) - - if not settings.TESTING and auth_user.is_moderator: - RequestChatsPermission.objects.create( - email=instance.email, - role=ChatsRole.ADMIN.value, - project=instance.project, - created_by=instance.created_by - ) instance.delete() instance.project.send_email_invite_project(email=instance.email) @@ -261,21 +245,6 @@ def request_permission_project(sender, instance, created, **kwargs): @receiver(post_save, sender=ProjectAuthorization) def project_authorization(sender, instance, created, **kwargs): if created: - if instance.is_moderator: - RequestChatsPermission.objects.create( - email=instance.user.email, - role=ChatsRole.ADMIN.value, - project=instance.project, - created_by=instance.user - ) - else: - RequestChatsPermission.objects.create( - email=instance.user.email, - role=ChatsRole.AGENT.value, - project=instance.project, - created_by=instance.user - ) - RecentActivity.objects.create( action="ADD", entity="USER", @@ -332,17 +301,6 @@ def request_rocket_permission(sender, instance, created, **kwargs): instance.delete() -@receiver(post_save, sender=RequestChatsPermission) -def request_chats_permission(sender, instance, created, **kwargs): - if created: - user = User.objects.filter(email=instance.email) - if user.exists(): - user = user.first() - project_auth = instance.project.project_authorizations.filter(user=user) - if project_auth.exists(): - instance.delete() - - @receiver(post_save, sender=Project) def send_email_create_project(sender, instance, created, **kwargs): if created: