Ejemplo n.º 1
0
def create_user(form, avatar):
    if not form.is_valid():
        return json.dumps({
            'profile': None,
            'message': 'Some of the data is invalid, try again.'
        })
    data = form.cleaned_data
    try:
        user = User.objects.get(email=data['email'])
    except User.DoesNotExist:
        if not avatar:
            avatar = create_gravatar(data['email'])
        #Creando usuario:
        user = User.objects.create_user(data['email'], data['email'],
                                        data['password'])
        user.first_name = data['name']
        user.last_name = data['last_name']
        user.save()
        location = create_location(data['address'], data['postal_code'],
                                   data['city'], data['country'])
        profile = Profile(user=user,
                          location=location,
                          phone=data['phone'],
                          social_avatar=avatar)
        profile.save()
        return json.dumps({
            'profile': serializers.serialize('json', [
                profile,
            ]),
            'message': 'OK.'
        })
    return json.dumps({
        'profile': None,
        'message': 'This email already exists, try again.'
    })
Ejemplo n.º 2
0
def signup(request):
    if request.method == "POST":
        username = request.POST.get('username', None)
        email = request.POST.get('email')
        password = request.POST.get('password', None)
        # firstname = request.POST.get('firstname')
        # lastname = request.POST.get('lastname')
        users = request.POST.get("users")

        try:
            user = User.objects.get(username=username)

        except:
            user = None

        if user is None:
            user = User.objects.create_user(username, email, password)
            user_details = Profile(user=user,
                                   choice=users,
                                   email=email,
                                   username=username)
            user_details.save()

            return redirect('signin')

        else:
            return HttpResponse("Please check info, User may already exists")
    return render(request, "signup.html")
Ejemplo n.º 3
0
    def fake_parent(self, student_name="张三"):
        """
        获得伪造的家长
        :param student_name: 学生姓名
        :return:
        """
        parent_user_name = "{student_name}_fpu".format(student_name=student_name)

        parent_name = "{student_name}的家长".format(student_name=student_name)
        parent_password = "******"
        parent_salt = "fake parent's salt"
        parent_email = "*****@*****.**"
        student_school_name = "{student_name}的学校".format(student_name=student_name)

        try:
            parent_user = User.objects.get(username=parent_user_name)
        except User.DoesNotExist:
            parent_user = User(username=parent_user_name)
            parent_user.password = make_password(parent_password, parent_salt)
            parent_user.email = parent_email
            parent_user.save()
            parent_group = Group.objects.get(name="家长")
            parent_user.groups.add(parent_group)
            parent_group.save()
        try:
            parent_profile = Profile.objects.get(user=parent_user)
        except Profile.DoesNotExist:
            parent_profile = Profile(user=parent_user, phone="fake_phone_number")
            parent_profile.save()
        try:
            parent = Parent.objects.get(user=parent_user)
        except Parent.DoesNotExist:
            parent = Parent(user=parent_user, student_name=student_name, student_school_name=student_school_name)
            parent.save()
        return parent
Ejemplo n.º 4
0
    def post(self, request):
        data = self.request.data
        try:
            introduction = data["introduction"]
            sex = data["sex"]
            if not (sex == 1 or sex == 2):
                return Response({"message": "性別は<1:女性, 2:男性>から選んでください"})
            try:
                if Profile.objects.get(user_id=self.request.user.id):
                    return Response({"message": "既にユーザー情報が登録されています"})
            except Profile.DoesNotExist:
                pass
        except KeyError:
            return Response({"message": "必要なキーは<introduction, sex>です"})
        profile = Profile(introduction=introduction,
                          sex=str(sex),
                          user_id=self.request.user.id)
        profile.save()
        res_pro_dic = {}
        res_pro_dic["message"] = "ユーザー情報を登録しました"
        res_pro_dic["id"] = profile.id
        res_pro_dic["introduction"] = profile.introduction
        res_pro_dic["sex"] = profile.sex
        res_pro_dic["user"] = {
            "id": profile.user_id,
            "username": profile.user.username
        }

        return Response(res_pro_dic)
Ejemplo n.º 5
0
    def handle(self, *args, **options):
        fake = Factory.create()
        fakeen = Factory.create('en_US')

        number = int(options['number'])

        for i in range(0, number):
            profile = fake.simple_profile()

            u = User.objects.create_user(profile['username'], profile['mail'],
                                         make_password('qwerty'))
            u.first_name = fakeen.first_name()
            u.last_name = fakeen.last_name()
            u.is_active = True
            u.is_superuser = False
            u.save()

            up = Profile()
            up.user = u

            image_url = 'http://api.adorable.io/avatars/100/%s.png' % u.username
            response = requests.get(image_url)

            up.avatar.save('%s.png' % u.username,
                           ContentFile(response.content),
                           save=True)

            up.save()
Ejemplo n.º 6
0
    def save(self):
        data = self.cleaned_data
        password = data.get('password1')
        u = User()

        u.username = data.get('username')
        u.password = make_password(password)
        u.email = data.get('email')
        u.first_name = data.get('first_name')
        u.last_name = data.get('last_name')
        u.is_active = True
        u.is_superuser = False
        u.save()

        up = Profile()
        up.user = u

        if data.get('avatar') is None:
            # image_url = 'http://api.adorable.io/avatars/100/%s.png' % u.username
            # response = requests.get(image_url)
            #
            # up.avatar.save('%s.png' % u.username, ContentFile(response.content), save=True)
            up.avatar.save('%s.png' % u.username, 'default.jpg', save=True)

        else:
            avatar = data.get('avatar')
            up.avatar.save('%s_%s' % (u.username, avatar.name),
                           avatar,
                           save=True)

        up.save()

        return authenticate(username=u.username, password=password)
Ejemplo n.º 7
0
    def create_profile(self, profile_data):

        if "user" not in profile_data:
            return False

        profile = Profile(
            job_title=profile_data["job_title"]
            if "job_title" in profile_data else "",
            company=profile_data["company"]
            if "company" in profile_data else "",
            address=profile_data["address"]
            if "address" in profile_data else "",
            github_url=profile_data["github_url"]
            if "github_url" in profile_data else "",
            facebook_url=profile_data["facebook_url"]
            if "facebook_url" in profile_data else "",
            twitter_url=profile_data["twitter_url"]
            if "twitter_url" in profile_data else "",
            access_token=profile_data["access_token"]
            if "access_token" in profile_data else "",
            refresh_token=profile_data["refresh_token"]
            if "refresh_token" in profile_data else "",
            access_token_updated_at=profile_data["access_token_updated_at"]
            if "access_token_updated_at" in profile_data else None,
            refresh_token_updated_at=profile_data["refresh_token_updated_at"]
            if "refresh_token_updated_at" in profile_data else None,
            user=User.objects.get(pk=profile_data["user"]))

        profile.save()
        return False if profile.pk is None else profile
Ejemplo n.º 8
0
def _find_or_create_profile(vk_post: dict, post_date: datetime,
                            db_profiles: List[Profile]) -> Profile:
    profile_id = vk_post['from_id']
    db_profile = find(db_profiles, lambda it: it.id == profile_id)
    if db_profile:
        return db_profile

    db_profile = Profile(id=profile_id,
                         join_date=post_date,
                         first_name='Unknown',
                         sex=Profile.Sex.UNKNOWN)
    time.sleep(GETTING_USER_INTERVAL)

    if profile_id >= 0:
        vk_user = vk_api_service.get_user(profile_id)
        if vk_user:
            db_profile.first_name = vk_user['first_name']
            db_profile.last_name = vk_user['last_name']
            db_profile.sex = vk_user['sex']
            db_profile.photo_50 = vk_user['photo_50']
            db_profile.photo_100 = vk_user['photo_100']
    else:
        vk_group = vk_api_service.get_group(profile_id * -1)
        if vk_group:
            db_profile.first_name = vk_group['name']
            db_profile.photo_50 = vk_group['photo_50']
            db_profile.photo_100 = vk_group['photo_100']
            db_profile.photo_200 = vk_group['photo_200']

    db_profile.save()
    db_profiles.append(db_profile)

    return db_profile
Ejemplo n.º 9
0
 def save(self, commit=True):
     newUser = User(username=self.cleaned_data.get('username'),
                    email=self.cleaned_data.get('email'))
     newProfile = Profile(user=newUser)
     if commit:
         newUser.save()
         newProfile.save()
     return newUser, newProfile
Ejemplo n.º 10
0
    def post(self, request):

        access_token_url = 'https://graph.facebook.com/v2.3/oauth/access_token'
        graph_api_url = 'https://graph.facebook.com/v2.3/me'

        params = {
            'client_id': request.data['clientId'],
            'redirect_uri': request.data['redirectUri'],
            'client_secret': settings.FACEBOOK_SECRET,
            'code': request.data['code'],
        }

        r = requests.post(access_token_url, params)
        access_token = json.loads(r.text)

        # GET => https://graph.facebook.com/v2.3/me 
        # to get user profile (email, first_name, last_name, gender, id)
        r = requests.get(graph_api_url, params=access_token)
        profile = json.loads(r.text)

        # Check if email exists
        user = User.objects.filter(email=profile['email']).first()
        if not user:
            # User doesn't exists, Create user model
            name = profile['first_name'].replace(' ', '').lower()
            user = User.objects.create_user(profile['email'],
                                            password=None,
                                            first_name=profile['first_name'],
                                            last_name=profile['last_name'],
                                            provider="Facebook")

            user_profile = Profile(owner=user,
                                facebook_id=profile['id'],
                                facebook_token=access_token['access_token'])
            user_profile.save()
        else:
            # User Exists
            user_connected = Profile.objects.filter(facebook_id=profile['id']).first()
            if not user_connected:
                # create profile with facebook_token
                user_profile = Profile(owner=user,
                                       facebook_id=profile['id'],
                                       facebook_token=access_token['access_token'])
                user_profile.save()

            user.first_name = profile['first_name']
            user.last_name  = profile['last_name']
            user.save()

        # Create token for user
        token, created = Token.objects.get_or_create(user=user)

        data = {
            'token': token.key,
        }

        return Response(data)
Ejemplo n.º 11
0
    def process_item(self, item, spider):

        prof = Profile(fullname=item.get('fullname'), nickname=item.get('nickname'), img=item.get('img'),
                       git_url=item.get('git_url'), repos=item.get('repos'), stars=item.get('stars'),
                       followers=item.get('followers'), location=item.get('location'), language=item.get('language'),
                       projects=item.get('projects'))

        a = Profile.objects.filter(nickname=prof.nickname, fullname=prof.fullname, language=prof.language)
        if len(a) == 0:
            prof.save()
        return item
Ejemplo n.º 12
0
def profiling(request):
    try:
        profile = Profile.objects.get(user__email=request.user.email)
        # return HttpResponse(profile.user.last_login)
        return HttpResponseRedirect(reverse('home'))
    except:
        profile = Profile()
        profile.user = request.user
        profile.save()
        # return HttpResponse(profile.user.email)
        return HttpResponseRedirect(reverse('home'))
Ejemplo n.º 13
0
def get_user_and_add_facebook_id():
    owner = User.objects.get(id=1)
    # This if/else is here because of what seems to be a quirk by Django:
    # Profile exists, when running this TestCase class separately,
    # but Profile does not exist when running all the tests together (python manage.py test)
    if len(Profile.objects.all()) == 0:
        owner_profile = Profile(id=1, user=owner)
    else:
        owner_profile = Profile.objects.get(user=owner)
    owner_profile.facebook_id = 'foo'
    owner_profile.save()
    return owner
Ejemplo n.º 14
0
    def save(self, commit=True):
        user = User.objects.create_user(
            username=self.cleaned_data.get('username'),
            email=self.cleaned_data.get('email'),
            password=self.cleaned_data.get('password'))
        profile = Profile(user=user)

        if commit:
            user.save()
            profile.save()

        return user, profile
Ejemplo n.º 15
0
    def generate_users(self, cnt):
        for i in range(cnt):
            name = f.first_name()
            user = User(username=name, email=f.email(), first_name=name)
            user.set_password('xxx')

            try:
                user.save()
            except IntegrityError:
                continue

            profile = Profile()
            profile.user = user
            num_ava = f.random_int(min=21, max=25)
            profile.avatar = f'../static/test_image/test{num_ava}.jpg'
            profile.save()
Ejemplo n.º 16
0
def signup(request):
	if request.method == 'POST':
		form = UserCreationForm(data=request.POST)
		if form.is_valid():
			form.save(commit=True)
			username = form.cleaned_data.get('username')
			password = form.cleaned_data.get('password1')
			user = authenticate(username=username, password=password)
			new_profile = Profile(user_id=user.id)
			new_profile.save()
			login(request, user)
			return redirect('/spin')
		else:
			messages.error(request, 'Invalid username or password.')
	form = UserCreationForm()
	return render(request, '../templates/signup.html', {'form':form})
Ejemplo n.º 17
0
def signup(request):
    if request.method == 'POST':
        form = SignUpForm(request.POST)
        if form.is_valid():
            form.save()
            username = form.cleaned_data.get('username')
            raw_password = form.cleaned_data.get('password1')
            user = authenticate(username=username, password=raw_password)
            profiler = Profile(nome=request.POST['first_name'],
                               user=request.POST['username'],
                               picture='app/static/img/default.jpg',
                               morada=request.POST['morada'],
                               zipcode=request.POST['zipcode'],
                               pais=request.POST['pais'])
            profiler.save()
            return redirect('login')
    else:
        form = SignUpForm()
    return render(request, 'signUp.html', {'form': form})
Ejemplo n.º 18
0
def create_user(form, avatar):
	if not form.is_valid():
		return json.dumps({'profile': None, 'message':'Some of the data is invalid, try again.'})
	data = form.cleaned_data
	try:
		user = User.objects.get(email=data['email'])
	except User.DoesNotExist:
		if not avatar:
			avatar = create_gravatar(data['email'])
		#Creando usuario:
		user = User.objects.create_user(data['email'], data['email'], data['password'])
		user.first_name = data['name']
		user.last_name = data['last_name']
		user.save()
		location = create_location(data['address'], data['postal_code'], data['city'], data['country'])
		profile = Profile(user=user, location=location, phone=data['phone'], social_avatar=avatar)
		profile.save()
		return json.dumps({'profile': serializers.serialize('json', [ profile, ]), 'message': 'OK.'})
	return json.dumps({'profile': None, 'message': 'This email already exists, try again.'})
Ejemplo n.º 19
0
def submit(request):
    if request.method == "GET":
        return redirect('/')

    # validate form
    form = DACInfo(request.POST)

    if form.is_valid():

        new_user = register(request, form)

        ra = form.cleaned_data["ra"]
        new_profile = Profile(user=new_user, ra=ra)
        new_profile.save()

    context = {
        'texts': Text().get_text().join(),
        'form': form,
    }
    return render(request, 'app/participe.html', context)
Ejemplo n.º 20
0
    def create(self, validated_data):

        del validated_data['password2']
        del validated_data['email_code']
        # del validated_data['allow']

        user = super().create(validated_data)

        # 密码加密
        user.set_password(validated_data['password'])
        user.save()
        userprofile = Profile(users_id=user.id)
        userprofile.save()
        userkyc = UserKyc(users_id=user.id)
        userkyc.save()
        # 生成jwtoken值
        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
        return user
Ejemplo n.º 21
0
	def get(self, request):
		
		if request.user.is_authenticated() :
	
			data = request.query_params
			
			
			#return Response(data)
			
			#user_id = request.user.id
			balance_id=data.get('balance_id')
			month = data.get('month')
			year = data.get('year')
			
			if balance_id=='undefined':
				balance_id=None
			elif int(balance_id) <= 0:
				balance_id=None
				
			##btype = type(balance_id)
			profiles = Profile.objects.filter(user=request.user)
			profile=None
			if profiles is not None and profiles.count() > 0:
				profile = profiles[0]
			else:
				profile=Profile(user=request.user,address='address')
				profile.save()
				
				
			##return Response({'user_id':user_id, 'btype':btype})
			
			balances = Balance.objects.all()
			balances=balances.filter(user=profile)
			earliestBalance=None
			latestBalance=None
			if(len(balances)>0):
				earliestBalance=balances[0]
				latestBalance=balances.order_by('-created')[0]
				
			
				if balance_id is not None :
					self.debug('balance_id:'+balance_id)
					balances=balances.filter(id=balance_id)
				
				### filter by year, monht
				if len(balances) > 0:
					balances=balances.filter(month=month,year=year)
				
					
				
				
					if len(balances) > 0:
						balances=balances.order_by('created')
						
						return self._resBlance(balances[0],earliestBalance,latestBalance)
						
						"""
						serializer = self.serializer_class(balances[0])
						
						res=serializer.data
						if(earliestBalance is not None):
							res['earliestdate']="1-%s-%s" % (earliestBalance.month,earliestBalance.year,)
							
						if(latestBalance is not None):
							res['latestdate']="1-%s-%s" % (latestBalance.month,latestBalance.year,)	
							
						return Response(res)
						"""
						
					else:
						return self._resBlance(latestBalance,earliestBalance,latestBalance)
						
				else:
					return self._resBlance(latestBalance,earliestBalance,latestBalance)
				
			else:
				return self._resBlance()
			
			
			
		
		return unautorized_response()
Ejemplo n.º 22
0
 def setUp(self):
     self.assertTrue(settings.FAKE_SMS_SERVER)
     # 创建老师
     teacher_user = User.objects.create(username=self.teacher_name)
     teacher_user.password = make_password(self.teacher_password,
                                           self.teacher_salt)
     teacher_user.email = self.teacher_email
     teacher_user.save()
     profile = Profile(user=teacher_user, phone=self.teacher_phone)
     profile.save()
     teacher = Teacher(user=teacher_user)
     teacher.save()
     teacher_group = Group.objects.get(name="老师")
     teacher_user.groups.add(teacher_group)
     teacher_user.save()
     profile.save()
     teacher.save()
     teacher_account = Account(user=teacher_user)
     teacher_account.save()
     # 为老师创建能力
     grade = Grade.objects.get(name="高三")
     subject = Subject.objects.get(name="英语")
     ability = Ability.objects.get(grade=grade, subject=subject)
     teacher.abilities.add(ability)
     # 设置面试记录
     teacher.status = Teacher.INTERVIEW_OK
     teacher.status_confirm = True
     # 设置性别
     profile.gender = "f"
     profile.save()
     # 设置区域
     other_region = Region.objects.get(name="其他")
     teacher.region = other_region
     # 设置老师级别
     teacher_level = Level.objects.all()[0]
     teacher.level = teacher_level
     # 为老师创建对应价格
     price = Price(region=other_region,
                   ability=ability,
                   level=teacher_level,
                   price=1,
                   salary=2,
                   commission_percentage=3)
     price.save()
     # 设置老师名称
     teacher.name = self.teacher_name
     teacher.save()
     # 创建家长
     parent_user = User.objects.create(username=self.parent_name)
     parent_user.password = make_password(self.parent_password,
                                          self.parent_salt)
     parent_user.email = self.parent_email
     parent_user.save()
     parent_profile = Profile(user=parent_user, phone=self.parent_phone)
     parent_profile.save()
     parent_group = Group.objects.get(name="家长")
     parent_user.groups.add(parent_group)
     parent_user.save()
     parent_profile.save()
     parent = Parent(user=parent_user)
     parent.save()
     # 创建订单
     school = School(name="逗比中学",
                     address="逗比路",
                     region=Region.objects.get(name="其他"),
                     center=True,
                     longitude=0,
                     latitude=0,
                     opened=False)
     school.save()
     school.init_prices()
     # 为老师添加学校
     teacher.schools.add(school)
     order = Order(parent=parent,
                   teacher=teacher,
                   school=school,
                   grade=Grade.objects.get(name="一年级"),
                   subject=Subject.objects.get(name="数学"),
                   coupon=None,
                   price=200,
                   hours=50,
                   total=100,
                   paid_at=make_aware(datetime.datetime.now()),
                   status=Order.PAID)
     order.save()
     # 创建订单里的课程
     one_time_slot = TimeSlot(
         order=order,
         start=make_aware(datetime.datetime(2016, 1, 1, 8, 0, 0)),
         end=make_aware(datetime.datetime(2016, 1, 1, 10, 0, 0)))
     one_time_slot.save()
     one_time_slot = TimeSlot(
         order=order,
         start=make_aware(datetime.datetime(2015, 12, 30, 15, 0, 0)),
         end=make_aware(datetime.datetime(2015, 12, 30, 17, 0, 0)))
     one_time_slot.save()
     one_time_slot = TimeSlot(
         order=order,
         start=make_aware(datetime.datetime(2015, 12, 20, 11, 0, 0)),
         end=make_aware(datetime.datetime(2015, 12, 20, 12, 0, 0)))
     one_time_slot.save()
     # 检查订单的数目是否正确
     order = Order.objects.get(teacher=teacher)
     self.assertEqual(3, len(order.timeslot_set.filter(deleted=False)))