def getProfile(self,request): try: userProfile = UserProfile.objects.get(user = request.user.id) except Exception as e: userProfile = UserProfile(request.user.id) userProfile.save() return Response(UserProfileSerializer(userProfile).data)
def create(self, request): """ Create User Create new user """ serializer = UserCreateBody(data=request.data) if serializer.is_valid(raise_exception=True): username = serializer.validated_data.get("username") role = serializer.validated_data.get("role") organization = serializer.validated_data.get("organization") password = serializer.validated_data.get("password") email = serializer.validated_data.get("email") user_count = UserProfile.objects.filter( Q(username=username) | Q(email=email)).count() if user_count > 0: raise ResourceExists( detail="User name or email already exists") user = UserProfile( username=username, role=role, email=email, organization=organization, ) user.set_password(password) user.save() response = UserIDSerializer(data={"id": user.id}) if response.is_valid(raise_exception=True): return Response(response.validated_data, status=status.HTTP_201_CREATED)
def handle(self, *args, **options): sc = WebClient(os.getenv("SLACK_API_TOKEN")) response = sc.api_call("users.list") for slack_user in response["members"]: if "profile" in slack_user \ and "email" in slack_user["profile"]: try: user_profile = UserProfile.objects.get( slack_username=slack_user["id"]) user = user_profile.user except UserProfile.DoesNotExist: user_profile = UserProfile() user_profile.notifications = True user = User() user.username = slack_user["id"] user.email = slack_user["profile"]["email"] user.first_name = slack_user["profile"]["real_name"] user.set_password("Q12w3esw1ddn") user.is_active = not slack_user["deleted"] user.is_superuser = slack_user[ "is_admin"] if "is_admin" in slack_user else False user.save() user_profile.slack_username = slack_user["id"] user_profile.user = user user_profile.save() print("Details for user %s updated." % slack_user["profile"]["real_name"])
def create(self, request): """ Create User Create new user """ serializer = UserCreateBody(data=request.data) if serializer.is_valid(raise_exception=True): username = serializer.validated_data.get("username") role = serializer.validated_data.get("role") organization = serializer.validated_data.get("organization") password = serializer.validated_data.get("password") email = serializer.validated_data.get("email") user_count = UserProfile.objects.filter( Q(username=username) | Q(email=email) ).count() if user_count > 0: raise ResourceExists( detail="User name or email already exists" ) user = UserProfile( username=username, role=role, email=email, organization=organization, ) user.set_password(password) user.save() response = UserIDSerializer(data={"id": user.id}) if response.is_valid(raise_exception=True): return Response( response.validated_data, status=status.HTTP_201_CREATED )
def handle(self, *args, **options): username = options.get("username") password = options.get("password") role = options.get("role") email = options.get("email") is_superuser = options.get("is_superuser", False) force = options.get("force", False) try: user = UserProfile.objects.get(email=email) except ObjectDoesNotExist: user = UserProfile( username=username, role=role, email=email, is_superuser=is_superuser, ) user.set_password(password) user.save() else: if force: user.username = username user.role = role user.is_superuser = is_superuser user.set_password(password) user.save() self.stdout.write( self.style.SUCCESS("Create user successfully %s" % user.id) )
def populate(request: HttpRequest) -> JsonResponse: sc = WebClient(os.getenv("SLACK_API_TOKEN")) response = sc.api_call("users.list") data = [] for slack_user in response["members"]: if "profile" in slack_user \ and "email" in slack_user["profile"] \ and slack_user["profile"]["email"].endswith("pixelfusion.co.nz"): try: user_profile = UserProfile.objects.get( slack_username=slack_user["id"]) user = user_profile.user except UserProfile.DoesNotExist: user_profile = UserProfile() user = User() user.set_password(''.join( random.choices(string.ascii_uppercase + string.digits, k=8))) user.username = slack_user["id"] user.email = slack_user["profile"]["email"] user.first_name = slack_user["profile"]["real_name"] user.is_active = not slack_user["deleted"] user.is_superuser = slack_user[ "is_admin"] if "is_admin" in slack_user else False user.save() user_profile.slack_username = slack_user["id"] user_profile.user = user user_profile.save() data.append("User %s synced." % slack_user["profile"]["real_name"]) return JsonResponse(data, safe=False)
def create(self, request): serializer = RegisterBody(data=request.data) if serializer.is_valid(raise_exception=True): username = serializer.validated_data.get("username") orgname = serializer.validated_data.get("orgName") password = serializer.validated_data.get("password") passwordAgain = serializer.validated_data.get("passwordAgain") try: Organization.objects.get(name=orgname) except ObjectDoesNotExist: pass else: return Response("orgnization exists!", status=status.HTTP_409_CONFLICT) if password != passwordAgain: return Response("password error", status=status.HTTP_409_CONFLICT) organization = Organization(name=orgname) organization.save() user = UserProfile( username=username, role="Admin", organization=organization, ) user.set_password(password) user.save() response = RegisterIDSerializer(data=organization.__dict__) if response.is_valid(raise_exception=True): return Response(response.validated_data, status=status.HTTP_200_OK)
def signup_user_view(request): # Si el usuario esta ya logueado, lo redireccionamos a home if request.user.is_authenticated(): return redirect(reverse('home')) if request.method == 'POST': # Si el method es post, obtenemos los datos del formulario form = SignupUserForm(request.POST, request.FILES) # Comprobamos si el formulario es valido if form.is_valid(): # En caso de ser valido, obtenemos los datos del formulario. # form.cleaned_data obtiene los datos limpios y los pone en un # diccionario con pares clave/valor, donde clave es el nombre del campo # del formulario y el valor es el valor si existe. cleaned_data = form.cleaned_data username = cleaned_data.get('username') password = cleaned_data.get('password') email = cleaned_data.get('email') phone = cleaned_data.get('phone') photo = cleaned_data.get('photo') # E instanciamos un objeto User, con el username y password user_model = User.objects.create_user(username=username, password=password) # Añadimos el email user_model.email = email # Y guardamos el objeto, esto guardara los datos en la db. user_model.save() # Ahora, creamos un objeto UserProfile, aunque no haya incluido # una imagen, ya quedara la referencia creada en la db. user_profile = UserProfile() # Al campo user le asignamos el objeto user_model user_profile.user = user_model # y le asignamos la photo (el campo, permite datos null) user_profile.photo = photo user_profile.phone = phone # Por ultimo, guardamos tambien el objeto UserProfile user_profile.save() user = authenticate(username=username, password=password) if user is not None: if user.is_active: login(request, user) else: pass #if he comes from new_sighting if 'session_id' in request.session: sighting_id = request.session['session_id'] s = Sighting.objects.get(id=sighting_id) s.user = user s.save() # Ahora, redireccionamos a la pagina home.html # Pero lo hacemos con un redirect. return redirect(reverse('home')) else: # Si el mthod es GET, instanciamos un objeto RegistroUserForm vacio form = SignupUserForm() # Creamos el contexto context = {'form': form} # Y mostramos los datos return render(request, 'signup.html', context)
def signup_user_view(request): # Si el usuario esta ya logueado, lo redireccionamos a home if request.user.is_authenticated(): return redirect(reverse('home')) if request.method == 'POST': # Si el method es post, obtenemos los datos del formulario form = SignupUserForm(request.POST, request.FILES) # Comprobamos si el formulario es valido if form.is_valid(): # En caso de ser valido, obtenemos los datos del formulario. # form.cleaned_data obtiene los datos limpios y los pone en un # diccionario con pares clave/valor, donde clave es el nombre del campo # del formulario y el valor es el valor si existe. cleaned_data = form.cleaned_data username = cleaned_data.get('username') password = cleaned_data.get('password') email = cleaned_data.get('email') photo = cleaned_data.get('photo') # E instanciamos un objeto User, con el username y password user_model = User.objects.create_user(username=username, password=password) # Añadimos el email user_model.email = email # Y guardamos el objeto, esto guardara los datos en la db. user_model.save() # Ahora, creamos un objeto UserProfile, aunque no haya incluido # una imagen, ya quedara la referencia creada en la db. user_profile = UserProfile() # Al campo user le asignamos el objeto user_model user_profile.user = user_model # y le asignamos la photo (el campo, permite datos null) user_profile.photo = photo # Por ultimo, guardamos tambien el objeto UserProfile user_profile.save() user = authenticate(username=username, password=password) if user is not None: if user.is_active: login(request, user) else: pass #if he comes from new_sighting if 'session_id' in request.session: sighting_id = request.session['session_id'] s = Sighting.objects.get(id=sighting_id) s.user = user s.save() # Ahora, redireccionamos a la pagina home.html # Pero lo hacemos con un redirect. return redirect(reverse('home')) else: # Si el mthod es GET, instanciamos un objeto RegistroUserForm vacio form = SignupUserForm() # Creamos el contexto context = {'form': form} # Y mostramos los datos return render(request, 'signup.html', context)