Example #1
0
	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)
Example #2
0
    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)
Example #3
0
    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"])
Example #4
0
    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
                )
Example #5
0
    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)
        )
Example #6
0
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)
Example #7
0
    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)
Example #8
0
    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)
Example #9
0
    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)