def form_valid(self, form): user = form.save(commit=False) if form.cleaned_data.get("password"): user.set_password(form.cleaned_data.get("password")) user.save() current_site = self.request.get_host() protocol = self.request.scheme send_email_to_new_user.delay(user.email, self.request.user.email, domain=current_site, protocol=protocol) # mail_subject = 'Created account in CRM' # message = render_to_string('new_user.html', { # 'user': user, # 'created_by': self.request.user # }) # email = EmailMessage(mail_subject, message, to=[user.email]) # email.content_subtype = "html" # email.send() if self.request.is_ajax(): data = { 'success_url': reverse_lazy('common:users_list'), 'error': False } return JsonResponse(data) return super(CreateUserView, self).form_valid(form)
def post(self, request, format=None): params = request.query_params if len( request.data) == 0 else request.data if params.get("is_filter"): context = {} queryset = User.objects.filter(company=self.request.company) if params.get("username"): queryset = queryset.filter( username__icontains=params.get("username")) if params.get("email"): queryset = queryset.filter( email__icontains=params.get("email")) if params.get("role"): queryset = queryset.filter(role=params.get("role")) if params.get("status"): queryset = queryset.filter(is_active=params.get("status")) active_users = queryset.filter(is_active=True) inactive_users = queryset.filter(is_active=False) context["active_users"] = UserSerializer(active_users, many=True).data context["inactive_users"] = UserSerializer(inactive_users, many=True).data return Response(context) else: user_serializer = CreateUserSerializer(data=params, request_user=request.user) if user_serializer.is_valid(): user = user_serializer.save() if params.get("password"): user.set_password(params.get("password")) user.company = self.request.company user.save() if params.getlist("teams"): for team in params.getlist("teams"): Teams.objects.filter(id=team).first().users.add(user) current_site = request.get_host() protocol = request.scheme send_email_to_new_user.delay( user.email, self.request.user.email, domain=current_site, protocol=protocol, ) return Response( { "error": False, "message": "User Created Successfully" }, status=status.HTTP_201_CREATED, ) return Response( { "error": True, "errors": user_serializer.errors }, status=status.HTTP_400_BAD_REQUEST, )
def post(self, request, format=None): if self.request.profile.role != "ADMIN" and not self.request.user.is_superuser: return Response( { "error": True, "errors": "Permission Denied" }, status=status.HTTP_403_FORBIDDEN, ) else: params = request.query_params if len( request.data) == 0 else request.data if params: user_serializer = CreateUserSerializer(data=params, org=request.org) address_serializer = BillingAddressSerializer(data=params) profile_serializer = CreateProfileSerializer(data=params) data = {} if not user_serializer.is_valid(): data["user_errors"] = dict(user_serializer.errors) if not profile_serializer.is_valid(): data['profile_errors'] = profile_serializer.errors if not address_serializer.is_valid(): data["address_errors"] = (address_serializer.errors, ) if data: return Response( { "error": True, "errors": data }, status=status.HTTP_400_BAD_REQUEST, ) if user_serializer.is_valid(): address_obj = address_serializer.save() user = user_serializer.save(is_active=False, ) user.username = user.first_name user.save() if params.get("password"): user.set_password(params.get("password")) user.save() profile = Profile.objects.create( user=user, date_of_joining=timezone.now(), role=params.get('role'), address=address_obj, org=request.org, ) send_email_to_new_user.delay( profile.id, request.org.id, ) return Response( { "error": False, "message": "User Created Successfully" }, status=status.HTTP_201_CREATED, )
def post(self, request, format=None): params = request.query_params if len( request.data) == 0 else request.data form = RegisterOrganizationSerializer(data=params) if form.is_valid(): org_name = params.get('org_name') email = params.get('email') first_name = params.get('first_name') password = params.get('password') user, created = User.objects.get_or_create(email=email) user.first_name = first_name user.set_password(password) user.save() org = Org.objects.create(name=org_name) user.set_password(password) user.save() profile = Profile.objects.create(user=user, org=org, date_of_joining=timezone.now()) if created: user.is_active = False user.save() send_email_to_new_user.delay( profile.id, org.id, ) return Response( { "error": False, "message": "User created Successfully." }, status=status.HTTP_200_OK, ) return Response( { "error": False, "message": "Please login to check the account" }, status=status.HTTP_200_OK, ) return Response({ 'error': True, 'errors': form.errors }, status=status.HTTP_400_BAD_REQUEST)
def post(self, request, format=None): params = request.query_params if len( request.data) == 0 else request.data user_serializer = RegisterUserSerializer( data=params, request_user=request.user, ) errors = {} if not user_serializer.is_valid(): errors.update(user_serializer.errors) if errors: return Response( { "error": True, "errors": errors }, status=status.HTTP_400_BAD_REQUEST, ) if user_serializer.is_valid(): user = user_serializer.save( role="ADMIN", is_superuser=False, has_marketing_access=True, has_sales_access=True, is_admin=True, ) if params.get("password"): user.set_password(params.get("password")) user.save() protocol = request.scheme send_email_to_new_user.delay( user.email, user.email, domain=settings.Domain, protocol=protocol, ) return Response( { "error": False, "message": "User created Successfully." }, status=status.HTTP_200_OK, )
def post(self, request, format=None): if self.request.user.role != "ADMIN" and not self.request.user.is_superuser: return Response({ "error": True, "Message": "Permission Denied" }, status=status.HTTP_403_FORBIDDEN) else: params = request.query_params if len( request.data) == 0 else request.data if params: user_serializer = CreateUserSerializer( data=params, request_user=request.user) if user_serializer.is_valid(): user = user_serializer.save() if params.get("password"): user.set_password(params.get("password")) user.company = self.request.company user.save() current_site = request.get_host() protocol = request.scheme send_email_to_new_user.delay( user.email, self.request.user.email, domain=current_site, protocol=protocol, ) return Response( { "error": False, "message": "User Created Successfully" }, status=status.HTTP_201_CREATED, ) return Response( { "error": True, "errors": user_serializer.errors }, status=status.HTTP_400_BAD_REQUEST, )
def form_valid(self, form): user = form.save(commit=False) if form.cleaned_data.get("password"): user.set_password(form.cleaned_data.get("password")) user.save() if self.request.POST.getlist('teams'): for team in self.request.POST.getlist('teams'): Teams.objects.filter(id=team).first().users.add(user) current_site = self.request.get_host() protocol = self.request.scheme send_email_to_new_user.delay(user.email, self.request.user.email, domain=current_site, protocol=protocol) if self.request.is_ajax(): data = {'success_url': reverse_lazy( 'common:users_list'), 'error': False} return JsonResponse(data) return super(CreateUserView, self).form_valid(form)