def register(request): if not request.method == 'POST': return render_to_response('people/register.html', {'emailform': EmailForm() }) maillist=List(name=settings.MAILLIST_NAME, password=settings.MAILLIST_PASSWORD, email=settings.MAILLIST_EMAIL, main_url=settings.MAILLIST_URL, encoding='iso-8859-1') if models.Person.objects.filter(email__exact=request.POST.get('email')): ok = True else: ok = False for mail in maillist.get_all_members(): if request.POST.get('email') in mail: ok = True break if not ok: return render_to_response('people/checkuser.html', {'error': True}) user = User.objects.create_user(request.POST.get('email'), request.POST.get('email'), User.objects.make_random_password(length=8)) user.is_active = False user.save() salt = hashlib.sha224(str(random.random())).hexdigest()[:5] activation_key = hashlib.sha224(salt+user.username).hexdigest() key_expires = datetime.datetime.today() + datetime.timedelta(2) profile = Profile(user = user, activation_key = activation_key, key_expires = key_expires) profile.save() email_subject = 'Confirmacao s.hal.vu' email_body = 'Clica no link pra confirmar: http://s.hal.vu/confirm/'+profile.activation_key send_mail(email_subject, email_body,'*****@*****.**',[user.email]) return render_to_response('people/checkuser.html')
def new_user(request): if request.POST: lon = request.POST.get('lon') lat = request.POST.get('lat') cityname = request.POST.get('city') deviceid = request.POST.get('deviceid') time_stamp = time.mktime(datetime.datetime.now().timetuple()) uname = '%s_%i' % (deviceid[0:8], time_stamp) usr = User(username=uname) usr.save() usr_profile = Profile(user=usr) usr_profile.deviceid = deviceid usr_profile.is_guest = True usr_profile.save() if lon and lat: User_Log.objects.create(user=usr, lon=lon, lat=lat, city=cityname, action=0) # add sys user sys_user = User.objects.get(id=settings.ADMIN_ID) rel1 = Relation.objects.create(fuser=usr, tuser=sys_user, is_like=True, is_mutal=True, is_view=True) rel2 = Relation.objects.create(fuser=sys_user, tuser=usr, is_like=True, is_mutal=True, is_view=True) user_dict = pack_entry_data_of_user(usr.id) return HttpAjaxResponse(content=dict(data=user_dict)) else: return HttpResponse(''' <form action='' method='post' enctype='multipart/form-data'> deviceid: <input type='text' name='deviceid'> <input type='submit'> </form>''')
def old_register(request): if request.POST: deviceid = request.POST.get('deviceid') time_stamp = time.mktime(datetime.datetime.now().timetuple()) uname = '%s_%i' % (deviceid[0:8], time_stamp) usr = User(username=uname) usr.save() usr_profile = Profile(user=usr) usr_profile.deviceid = deviceid usr_profile.is_guest = True usr_profile.save() return HttpAjaxResponse(content=dict(data=usr_profile.json())) else: return HttpResponse(''' <form action='' method='post'> deviceid: <input type='text' name='deviceid'> <input type='submit'> </form>''')
def callback(tree): kth_id = tree[0][0].text logging.info('KTH-ID: %s trying to login' %kth_id) user, user_created = User.objects.get_or_create(username = kth_id) ldap = lookup_user(kth_id) if ldap is not None and Profile.objects.filter(user = user, kth_synchronize = False).count() == 0: if ldap['first_name'] is not None: user.first_name = ldap['first_name'] if ldap['last_name'] is not None: user.last_name = ldap['last_name'] if ldap['email'] is not None and (user.email is None or len(user.email) == 0 or user.email.endswith('@kth.se')): user.email = ldap['email'] user.save() profile = Profile.objects.filter(user = user).first() if profile is None: Profile(user = user, no_dietary_restrictions = False).save()
def callback(tree): kth_id = tree[0][0].text user, user_created = User.objects.get_or_create(username=kth_id) if user_created: try: KTH_user = lookup_user(kth_id) user.first_name = KTH_user['first_name'] user.last_name = KTH_user['last_name'] user.email = KTH_user['email'] # Disable password auth, we auth with CAS user.set_unusable_password() user.save() person = Profile(user=user) person.save() except: user.delete() person.delete()
def callback(request, kth_id): logging.info('KTH-ID: %s trying to login' % kth_id) user, user_created = User.objects.get_or_create(username=kth_id) user_info = lookup_user(kth_id) if merge_user_info(user, user_info): user.clean() user.save() profile = Profile.objects.filter(user=user).first() if profile is None: profile = Profile(user=user, no_dietary_restrictions=False) profile.clean() profile.save() login(request, user, backend='django.contrib.auth.backends.ModelBackend') return HttpResponse(status=200)
def recruitment_application_new(request, year, recruitment_period_pk, pk=None, template_name='recruitment/recruitment_application_new.html'): fair = get_object_or_404(Fair, year=year) recruitment_period = get_object_or_404(RecruitmentPeriod, pk=recruitment_period_pk) if not pk: recruitment_application = recruitment_period.recruitmentapplication_set.filter(user=request.user).first() # If the user already has an application for this period redirect to it if recruitment_application: return redirect('recruitment_application_new', fair.year, recruitment_period.pk, recruitment_application.pk) recruitment_application = RecruitmentApplication.objects.filter(pk=pk).first() user = recruitment_application.user if recruitment_application else request.user profile = Profile.objects.filter(user=user).first() if not profile: p = Profile(user=user) p.save() now = timezone.now() if recruitment_period.start_date > now: return render(request, 'recruitment/recruitment_application_closed.html', { 'recruitment_period': recruitment_period, 'message': 'Application has not opened', 'fair': fair }) if recruitment_period.end_date < now: return render(request, 'recruitment/recruitment_application_closed.html', { 'recruitment_period': recruitment_period, 'message': 'Application closed', 'fair': fair }) profile_form = ProfileForm(request.POST or None, request.FILES or None, instance=profile) role_form = RoleApplicationForm(request.POST or None) user_form = UserForm(request.POST or None, instance=user) for i in range(1, 4): key = 'role%d' % i role_form.fields[key].queryset = recruitment_period.recruitable_roles if recruitment_application: role_application = RoleApplication.objects.filter( recruitment_application=recruitment_application, order=i - 1 ).first() if role_application: role_form.fields[key].initial = role_application.role.pk if request.POST: recruitment_period.application_questions.handle_answers_from_request(request, user) if role_form.is_valid() and profile_form.is_valid() and user_form.is_valid(): if not recruitment_application: recruitment_application = RecruitmentApplication() recruitment_application.user = user recruitment_application.recruitment_period = recruitment_period recruitment_application.save() recruitment_application.roleapplication_set.all().delete() for i in range(1, 4): key = 'role%d' % i role = role_form.cleaned_data[key] if role: RoleApplication.objects.create( recruitment_application=recruitment_application, role=role, order=i - 1 ) if pk == None: #Slack webhook for signup notifications r.post(settings.RECRUITMENT_HOOK_URL, data=json.dumps({'text': ' {!s} {!s} just applied for {!s}!'.format(user.first_name, user.last_name, role_form.cleaned_data["role1"])})) profile_form.save() user_form.save() return redirect('recruitment_period', fair.year, recruitment_period.pk) return render(request, template_name, { 'application_questions_with_answers': recruitment_period.application_questions.questions_with_answers_for_user( recruitment_application.user if recruitment_application else None), 'recruitment_period': recruitment_period, 'profile_form': profile_form, 'user_form': user_form, 'profile': profile, 'role_form': role_form, 'new_application': pk == None, 'fair': fair, })
def sina_login(request): if request.POST: wb_id = request.POST.get('id') access_token = request.POST.get('access_token') expire = request.POST.get('expire') deviceid = request.POST.get('deviceid') lon = request.POST.get('lon') lat = request.POST.get('lat') city = request.POST.get('city') user, usr_auth = Auth.objects.validate_auth(wb_id, 'sina') if not user: user_wb_info = sina_get_user_info(access_token, expire, wb_id) usr = User(username='******' % wb_id) usr.save() usr_profile = Profile(user=usr) usr_profile.name = user_wb_info['screen_name'] usr_profile.avatar = user_wb_info['avatar_large'] usr_profile.desc = user_wb_info['description'] usr_profile.deviceid = deviceid usr_profile.is_guest = False usr_profile.city = city birthday = datetime.datetime.strptime('1990-01-01', settings.DATE_FORMAT) usr_profile.birthday = birthday try: is_follow = sina_follow(access_token, expire, settings.WEIBO_ACCOUNT) except: print '!!!!!!! failed to follow' if user_wb_info['gender'] == 'f': usr_profile.gender = 0 usr_profile.propose_num = 3 else: usr_profile.gender = 1 usr_profile.propose_num = 1 usr_profile.save() usr_auth = Auth(user=usr) usr_auth.auth_id = wb_id usr_auth.auth_from = 'sina' usr_auth.access_token = access_token usr_auth.expire = expire usr_auth.save() transaction.commit() return HttpAjaxResponse( content=dict(data=usr_profile.json(), status=0)) else: usr_auth.auth_id = wb_id usr_auth.auth_from = 'sina' usr_auth.access_token = access_token usr_auth.expire = expire usr_auth.save() user.deviceid = deviceid user.is_guest = False user.save() transaction.commit() return HttpAjaxResponse(content=dict(data=user.json(), status=1)) else: return HttpResponse(''' <form action='' method='post'> id: <input type='text' name='id'> at: <input type='text' name='access_token'> expire: <input type='text' name='expire'> deviceid: <input type='text' name='deviceid'> <input type='submit'> </form>''') return HttpAjaxResponse(content=dict(data='hehe'))
def recruitment_application_new( request, year, recruitment_period_pk, pk=None, template_name='recruitment/recruitment_application_new.html'): fair = get_object_or_404(Fair, year=year) recruitment_period = get_object_or_404(RecruitmentPeriod, pk=recruitment_period_pk) if not pk: recruitment_application = recruitment_period.recruitmentapplication_set.filter( user=request.user).first() # If the user already has an application for this period redirect to it if recruitment_application: return redirect('recruitment_application_new', fair.year, recruitment_period.pk, recruitment_application.pk) recruitment_application = RecruitmentApplication.objects.filter( pk=pk).first() user = recruitment_application.user if recruitment_application else request.user profile = Profile.objects.filter(user=user).first() if not profile: p = Profile(user=user) p.save() now = timezone.now() if recruitment_period.start_date > now: return render( request, 'recruitment/recruitment_application_closed.html', { 'recruitment_period': recruitment_period, 'message': 'Application has not opened', 'fair': fair }) if recruitment_period.end_date < now: return render( request, 'recruitment/recruitment_application_closed.html', { 'recruitment_period': recruitment_period, 'message': 'Application closed', 'fair': fair }) profile_form = ProfileForm(request.POST or None, request.FILES or None, instance=profile) role_form = RoleApplicationForm(request.POST or None) for i in range(1, 4): key = 'role%d' % i role_form.fields[key].queryset = recruitment_period.recruitable_roles if recruitment_application: role_application = RoleApplication.objects.filter( recruitment_application=recruitment_application, order=i - 1).first() if role_application: role_form.fields[key].initial = role_application.role.pk if recruitment_period.name == 'Developer': message_to_applicants = 'You can view your submitted application from the recruitment page. All applicants will be contacted to schedule an interview which will be held during week 13 or 14.' elif recruitment_period.name == 'Operations Team': message_to_applicants = 'Please note that you will not receive a confirmation email after you submit your application. You can find and view your submitted application from the recruitment page. All applicants will be contacted to schedule an interview which will be held during week 17 or 18.' else: message_to_applicants = 'Please note that you will not receive a confirmation email after you submit your application. You can find and view your submitted application from the recruitment page.' if request.POST: recruitment_period.application_questions.handle_answers_from_request( request, user) if role_form.is_valid() and profile_form.is_valid(): if not recruitment_application: recruitment_application = RecruitmentApplication() recruitment_application.user = user recruitment_application.recruitment_period = recruitment_period recruitment_application.save() recruitment_application.roleapplication_set.all().delete() for i in range(1, 4): key = 'role%d' % i role = role_form.cleaned_data[key] if role: RoleApplication.objects.create( recruitment_application=recruitment_application, role=role, order=i - 1) if pk == None: #Slack webhook for signup notifications r.post(settings.RECRUITMENT_HOOK_URL, data=json.dumps({ 'text': ' {!s} {!s} just applied for {!s}!'.format( user.first_name, user.last_name, role_form.cleaned_data["role1"]) })) profile_form.save() return redirect('recruitment_period', fair.year, recruitment_period.pk) return render( request, template_name, { 'application_questions_with_answers': recruitment_period.application_questions. questions_with_answers_for_user(recruitment_application.user if recruitment_application else None), 'recruitment_period': recruitment_period, 'profile_form': profile_form, 'profile': profile, 'role_form': role_form, 'new_application': pk == None, 'fair': fair, 'message_to_applicants': message_to_applicants })
def create_profile(sender, instance, signal, created, **kwargs): """When user is created also create a profile.""" from people.models import Profile if created: Profile(user=instance).save()
def sina_login(request): if request.POST: wb_id = request.POST.get('id') access_token = request.POST.get('access_token') expire = request.POST.get('expire') deviceid = request.POST.get('deviceid') lon = request.POST.get('lon') lat = request.POST.get('lat') city = request.POST.get('city') user, usr_auth = Auth.objects.validate_auth(wb_id, 'sina') if not user: user_wb_info = sina_get_user_info(access_token, expire, wb_id) usr = User(username= '******' % wb_id) usr.save() usr_profile = Profile(user=usr) usr_profile.name = user_wb_info['screen_name'] usr_profile.avatar = user_wb_info['avatar_large'] usr_profile.desc = user_wb_info['description'] usr_profile.deviceid = deviceid usr_profile.is_guest = False usr_profile.city = city birthday = datetime.datetime.strptime('1990-01-01', settings.DATE_FORMAT) usr_profile.birthday = birthday try: is_follow = sina_follow(access_token, expire, settings.WEIBO_ACCOUNT) except: print '!!!!!!! failed to follow' if user_wb_info['gender'] == 'f': usr_profile.gender = 0 usr_profile.propose_num = 3 else: usr_profile.gender = 1 usr_profile.propose_num = 1 usr_profile.save() usr_auth = Auth(user=usr) usr_auth.auth_id = wb_id usr_auth.auth_from = 'sina' usr_auth.access_token = access_token usr_auth.expire = expire usr_auth.save() transaction.commit() return HttpAjaxResponse(content=dict(data=usr_profile.json(), status=0)) else: usr_auth.auth_id = wb_id usr_auth.auth_from = 'sina' usr_auth.access_token = access_token usr_auth.expire = expire usr_auth.save() user.deviceid = deviceid user.is_guest = False user.save() transaction.commit() return HttpAjaxResponse(content=dict(data=user.json(), status=1)) else: return HttpResponse(''' <form action='' method='post'> id: <input type='text' name='id'> at: <input type='text' name='access_token'> expire: <input type='text' name='expire'> deviceid: <input type='text' name='deviceid'> <input type='submit'> </form>''') return HttpAjaxResponse(content=dict(data='hehe'))