Example #1
0
def UserLogin(request):
    if request.method == "POST":
        from main.models import User

        # Find if User already exists
        newUser = User()
        oldUser = User.objects.filter(facebook_id=request.POST["id"])
        if len(oldUser) > 0:
            newUser.id = oldUser[0].id
            newUser.token = oldUser[0].token
        else:
            import string, random

            chars = string.ascii_uppercase + string.digits + string.ascii_lowercase
            newUser.token = "".join(random.choice(chars) for x in range(40))

            # Update user data
        if "name" in request.POST:
            newUser.name = request.POST["name"]

        if "first_name" in request.POST:
            newUser.first_name = request.POST["first_name"]

        if "last_name" in request.POST:
            newUser.last_name = request.POST["last_name"]

        if "username" in request.POST:
            newUser.username = request.POST["username"]

        if "email" in request.POST:
            newUser.email = request.POST["email"]

        if "gender" in request.POST:
            newUser.gender = request.POST["gender"]

            # if 'birthday' in request.POST:
            # 	user.birthday = request.POST['birthday']

        newUser.avatar = "http://graph.facebook.com/" + request.POST["id"] + "/picture"
        newUser.facebook_id = request.POST["id"]

        newUser.save()

        context = {"token": newUser.token}
    else:
        context = {"token": "Forbidden"}

    return render_to_response("login.html", context, context_instance=RequestContext(request))
Example #2
0
    def create(self, validated_data):
        # user = super().create(**validated_data)
        user = User(username=validated_data["username"],
                    password=validated_data["password"])
        # 调用django的认证系统加密密码
        user.set_password(validated_data['password'])
        user.last_login = datetime.now()
        user.email = validated_data["email"] if "email" in validated_data.keys(
        ) else "*****@*****.**"
        user.save()
        # 补充生成记录登录状态的token
        jwt_payload_handler = api_settings.JWT_PAYLOAD_HANDLER
        jwt_encode_handler = api_settings.JWT_ENCODE_HANDLER
        payload = jwt_payload_handler(user)
        token = jwt_encode_handler(payload)
        user.token = token

        # 增加用户的身份
        if validated_data["identity"] or validated_data["identity"] != '':
            identity = validated_data["identity"]
            passwd = validated_data['password']
            truename = validated_data['truename']

            UserProfile.objects.get_or_create(identity=identity,
                                              user=user,
                                              passwd=passwd,
                                              truename=truename)
            #user.truename = truename
            #user.identity = identity
        return user
Example #3
0
def UserLogin(request):
	if request.method == 'POST':
		from main.models import User

		# Find if User already exists
		newUser = User()
		oldUser = User.objects.filter(facebook_id=request.POST['id'])
		if len(oldUser) > 0:
			newUser.id = oldUser[0].id
			newUser.token = oldUser[0].token
		else:
			import string, random
			chars = string.ascii_uppercase + string.digits + string.ascii_lowercase
			newUser.token = ''.join(random.choice(chars) for x in range(40))

		# Update user data
		if 'name' in request.POST:
			newUser.name = request.POST['name']

		if 'first_name' in request.POST:
			newUser.first_name = request.POST['first_name']

		if 'last_name' in request.POST:
			newUser.last_name = request.POST['last_name']

		if 'username' in request.POST:
			newUser.username = request.POST['username']

		if 'email' in request.POST:
			newUser.email = request.POST['email']

		if 'gender' in request.POST:
			newUser.gender = request.POST['gender']

		#if 'birthday' in request.POST:
		#	user.birthday = request.POST['birthday']

		newUser.avatar = 'http://graph.facebook.com/' + request.POST['id'] + '/picture'
		newUser.facebook_id = request.POST['id']		

		newUser.save()

		context = { 'token': newUser.token }		
	else:
		context = { 'token': 'Forbidden' }

	return render_to_response('login.html', context, context_instance=RequestContext(request))
Example #4
0
 def post(self, request):
     serialized = UserSerializer(data=request.data)
     if serialized.is_valid():
         user = User()
         user.username = serialized.data['username']
         user.set_password(serialized.data['password'])
         user.token = uuid4()
         user.save()
         profile = user.profile
         profile.subscribe = SubscribeDetail.create_subscribe(profile.id, duration=14)
         serializer = ProfileSerializer(profile)
         return Response({**serializer.data, 'token': user.token}, status=status.HTTP_201_CREATED)
     else:
         return Response(serialized._errors, status=status.HTTP_400_BAD_REQUEST)
Example #5
0
def lco_authenticate(request, username, password):
    token = api_auth(settings.PORTAL_TOKEN_URL, username, password)
    profile, msg = get_profile(token)
    if msg:
        messages.info(request, msg)
    if token and profile:
        username = profile[0]
        try:
            user = User.objects.get(username=username)
        except User.DoesNotExist:
            # Create a new user. There's no need to set a password
            # because Valhalla auth will always be used.
            user = User(username=username)
        user.token = token
        user.email = profile[3]
        user.save()
        # Give the new user a Django Rest Framework token
        Token.objects.get_or_create(user=user)
        # Finally add these tokens as session variables
        request.session['token'] = token
        return user
    return None
Example #6
0
def lco_authenticate(request, username, password):
    token = api_auth(settings.PORTAL_TOKEN_URL, username, password)
    profile, msg = get_profile(token)
    if msg:
        messages.info(request, msg)
    archivetoken = api_auth(settings.ARCHIVE_TOKEN_URL, username, password)
    if token and profile and archivetoken:
        username = profile[0]
        try:
            user = User.objects.get(username=username)
        except User.DoesNotExist:
            # Create a new user. There's no need to set a password
            # because Valhalla auth will always be used.
            user = User(username=username)
        user.token = token
        user.archive_token = archivetoken
        user.default_proposal = profile[2]
        user.save()
        # Finally add these tokens as session variables
        request.session['token'] = token
        request.session['archive_token'] = archivetoken
        return user
    return None