mirror of
https://github.com/samuelclay/NewsBlur.git
synced 2025-09-18 21:50:56 +00:00
Merge branch 'master' into dejal
This commit is contained in:
commit
fde1f671d8
6 changed files with 64 additions and 30 deletions
|
@ -1,8 +1,9 @@
|
||||||
import stripe
|
import stripe
|
||||||
|
import requests
|
||||||
import datetime
|
import datetime
|
||||||
from django.contrib.auth.decorators import login_required
|
from django.contrib.auth.decorators import login_required
|
||||||
from django.views.decorators.http import require_POST
|
from django.views.decorators.http import require_POST
|
||||||
from django.views.decorators.csrf import csrf_protect
|
from django.views.decorators.csrf import csrf_protect, csrf_exempt
|
||||||
from django.contrib.auth import logout as logout_user
|
from django.contrib.auth import logout as logout_user
|
||||||
from django.contrib.auth import login as login_user
|
from django.contrib.auth import login as login_user
|
||||||
from django.db.models.aggregates import Sum
|
from django.db.models.aggregates import Sum
|
||||||
|
@ -101,13 +102,26 @@ def login(request):
|
||||||
'next': request.REQUEST.get('next', "")
|
'next': request.REQUEST.get('next', "")
|
||||||
}, context_instance=RequestContext(request))
|
}, context_instance=RequestContext(request))
|
||||||
|
|
||||||
@csrf_protect
|
@csrf_exempt
|
||||||
def signup(request):
|
def signup(request):
|
||||||
form = SignupForm()
|
form = SignupForm(prefix="signup")
|
||||||
|
recaptcha = request.POST.get('g-recaptcha-response', None)
|
||||||
|
recaptcha_error = None
|
||||||
|
|
||||||
|
if not recaptcha:
|
||||||
|
recaptcha_error = "Please hit the \"I'm not a robot\" button."
|
||||||
|
else:
|
||||||
|
response = requests.post('https://www.google.com/recaptcha/api/siteverify', {
|
||||||
|
'secret': settings.RECAPTCHA_SECRET_KEY,
|
||||||
|
'response': recaptcha,
|
||||||
|
})
|
||||||
|
result = response.json()
|
||||||
|
if not result['success']:
|
||||||
|
recaptcha_error = "Really, please hit the \"I'm not a robot\" button."
|
||||||
|
|
||||||
if request.method == "POST":
|
if request.method == "POST":
|
||||||
form = SignupForm(data=request.POST)
|
form = SignupForm(data=request.POST, prefix="signup")
|
||||||
if form.is_valid():
|
if form.is_valid() and not recaptcha_error:
|
||||||
new_user = form.save()
|
new_user = form.save()
|
||||||
login_user(request, new_user)
|
login_user(request, new_user)
|
||||||
logging.user(new_user, "~FG~SB~BBNEW SIGNUP: ~FW%s" % new_user.email)
|
logging.user(new_user, "~FG~SB~BBNEW SIGNUP: ~FW%s" % new_user.email)
|
||||||
|
@ -116,6 +130,7 @@ def signup(request):
|
||||||
|
|
||||||
return render_to_response('accounts/signup.html', {
|
return render_to_response('accounts/signup.html', {
|
||||||
'form': form,
|
'form': form,
|
||||||
|
'recaptcha_error': recaptcha_error,
|
||||||
'next': request.REQUEST.get('next', "")
|
'next': request.REQUEST.get('next', "")
|
||||||
}, context_instance=RequestContext(request))
|
}, context_instance=RequestContext(request))
|
||||||
|
|
||||||
|
|
|
@ -88,7 +88,8 @@ class SignupForm(forms.Form):
|
||||||
label=_(u'Email'),
|
label=_(u'Email'),
|
||||||
required=True,
|
required=True,
|
||||||
error_messages={'required': 'Please enter an email.'})
|
error_messages={'required': 'Please enter an email.'})
|
||||||
password = forms.CharField(widget=forms.PasswordInput(attrs={'class': 'NB-input'}),
|
password = forms.CharField(widget=forms.PasswordInput(attrs={'class': 'NB-input'},
|
||||||
|
render_value=True,),
|
||||||
label=_(u'Password'),
|
label=_(u'Password'),
|
||||||
required=False)
|
required=False)
|
||||||
# error_messages={'required': 'Please enter a password.'})
|
# error_messages={'required': 'Please enter a password.'})
|
||||||
|
@ -123,11 +124,13 @@ class SignupForm(forms.Form):
|
||||||
username = self.cleaned_data.get('username', '')
|
username = self.cleaned_data.get('username', '')
|
||||||
password = self.cleaned_data.get('password', '')
|
password = self.cleaned_data.get('password', '')
|
||||||
email = self.cleaned_data.get('email', None)
|
email = self.cleaned_data.get('email', None)
|
||||||
|
|
||||||
exists = User.objects.filter(username__iexact=username).count()
|
exists = User.objects.filter(username__iexact=username).count()
|
||||||
if exists:
|
if exists:
|
||||||
user_auth = authenticate(username=username, password=password)
|
user_auth = authenticate(username=username, password=password)
|
||||||
if not user_auth:
|
if not user_auth:
|
||||||
raise forms.ValidationError(_(u'Someone is already using that username.'))
|
raise forms.ValidationError(_(u'Someone is already using that username.'))
|
||||||
|
|
||||||
return self.cleaned_data
|
return self.cleaned_data
|
||||||
|
|
||||||
def save(self, profile_callback=None):
|
def save(self, profile_callback=None):
|
||||||
|
|
|
@ -138,8 +138,10 @@ def welcome(request, **kwargs):
|
||||||
login_form = LoginForm(request.POST, prefix='login')
|
login_form = LoginForm(request.POST, prefix='login')
|
||||||
signup_form = SignupForm(prefix='signup')
|
signup_form = SignupForm(prefix='signup')
|
||||||
else:
|
else:
|
||||||
login_form = LoginForm(prefix='login')
|
|
||||||
signup_form = SignupForm(request.POST, prefix='signup')
|
signup_form = SignupForm(request.POST, prefix='signup')
|
||||||
|
return {
|
||||||
|
"form": signup_form
|
||||||
|
}, "accounts/signup.xhtml"
|
||||||
else:
|
else:
|
||||||
login_form = LoginForm(prefix='login')
|
login_form = LoginForm(prefix='login')
|
||||||
signup_form = SignupForm(prefix='signup')
|
signup_form = SignupForm(prefix='signup')
|
||||||
|
@ -178,17 +180,22 @@ def login(request):
|
||||||
return index(request)
|
return index(request)
|
||||||
|
|
||||||
@never_cache
|
@never_cache
|
||||||
|
@render_to('accounts/signup.html')
|
||||||
def signup(request):
|
def signup(request):
|
||||||
if request.method == "POST":
|
if request.method == "POST":
|
||||||
form = SignupForm(prefix='signup', data=request.POST)
|
signup_form = SignupForm(request.POST, prefix='signup')
|
||||||
if form.is_valid():
|
return {
|
||||||
new_user = form.save()
|
"form": signup_form
|
||||||
login_user(request, new_user)
|
}
|
||||||
logging.user(new_user, "~FG~SB~BBNEW SIGNUP: ~FW%s" % new_user.email)
|
# form = SignupForm(prefix='signup', data=request.POST)
|
||||||
if not new_user.is_active:
|
# if form.is_valid():
|
||||||
url = "https://%s%s" % (Site.objects.get_current().domain,
|
# new_user = form.save()
|
||||||
reverse('stripe-form'))
|
# login_user(request, new_user)
|
||||||
return HttpResponseRedirect(url)
|
# logging.user(new_user, "~FG~SB~BBNEW SIGNUP: ~FW%s" % new_user.email)
|
||||||
|
# if not new_user.is_active:
|
||||||
|
# url = "https://%s%s" % (Site.objects.get_current().domain,
|
||||||
|
# reverse('stripe-form'))
|
||||||
|
# return HttpResponseRedirect(url)
|
||||||
|
|
||||||
return index(request)
|
return index(request)
|
||||||
|
|
||||||
|
|
|
@ -3481,7 +3481,7 @@
|
||||||
CODE_SIGN_ENTITLEMENTS = "Share Extension/Share Extension.entitlements";
|
CODE_SIGN_ENTITLEMENTS = "Share Extension/Share Extension.entitlements";
|
||||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||||
CURRENT_PROJECT_VERSION = 105;
|
CURRENT_PROJECT_VERSION = 107;
|
||||||
DEBUG_INFORMATION_FORMAT = dwarf;
|
DEBUG_INFORMATION_FORMAT = dwarf;
|
||||||
DEVELOPMENT_TEAM = HR7P97SD72;
|
DEVELOPMENT_TEAM = HR7P97SD72;
|
||||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||||
|
@ -3501,7 +3501,7 @@
|
||||||
INFOPLIST_FILE = "Share Extension/Info.plist";
|
INFOPLIST_FILE = "Share Extension/Info.plist";
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
|
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
|
||||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
|
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
|
||||||
MARKETING_VERSION = 9.1;
|
MARKETING_VERSION = 9.1.1;
|
||||||
MTL_ENABLE_DEBUG_INFO = YES;
|
MTL_ENABLE_DEBUG_INFO = YES;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = "com.newsblur.NewsBlur.Share-Extension";
|
PRODUCT_BUNDLE_IDENTIFIER = "com.newsblur.NewsBlur.Share-Extension";
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
|
@ -3531,7 +3531,7 @@
|
||||||
CODE_SIGN_ENTITLEMENTS = "Share Extension/Share Extension.entitlements";
|
CODE_SIGN_ENTITLEMENTS = "Share Extension/Share Extension.entitlements";
|
||||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||||
CURRENT_PROJECT_VERSION = 105;
|
CURRENT_PROJECT_VERSION = 107;
|
||||||
DEVELOPMENT_TEAM = HR7P97SD72;
|
DEVELOPMENT_TEAM = HR7P97SD72;
|
||||||
ENABLE_NS_ASSERTIONS = NO;
|
ENABLE_NS_ASSERTIONS = NO;
|
||||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||||
|
@ -3545,7 +3545,7 @@
|
||||||
INFOPLIST_FILE = "Share Extension/Info.plist";
|
INFOPLIST_FILE = "Share Extension/Info.plist";
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
|
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
|
||||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
|
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
|
||||||
MARKETING_VERSION = 9.1;
|
MARKETING_VERSION = 9.1.1;
|
||||||
MTL_ENABLE_DEBUG_INFO = NO;
|
MTL_ENABLE_DEBUG_INFO = NO;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = "com.newsblur.NewsBlur.Share-Extension";
|
PRODUCT_BUNDLE_IDENTIFIER = "com.newsblur.NewsBlur.Share-Extension";
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
|
@ -3566,7 +3566,7 @@
|
||||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||||
COPY_PHASE_STRIP = NO;
|
COPY_PHASE_STRIP = NO;
|
||||||
CURRENT_PROJECT_VERSION = 105;
|
CURRENT_PROJECT_VERSION = 107;
|
||||||
DEVELOPMENT_TEAM = HR7P97SD72;
|
DEVELOPMENT_TEAM = HR7P97SD72;
|
||||||
FRAMEWORK_SEARCH_PATHS = (
|
FRAMEWORK_SEARCH_PATHS = (
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
|
@ -3587,7 +3587,7 @@
|
||||||
"\"$(SRCROOT)\"",
|
"\"$(SRCROOT)\"",
|
||||||
"\"$(SRCROOT)/Other Sources\"",
|
"\"$(SRCROOT)/Other Sources\"",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 9.1;
|
MARKETING_VERSION = 9.1.1;
|
||||||
OTHER_CPLUSPLUSFLAGS = "$(OTHER_CFLAGS)";
|
OTHER_CPLUSPLUSFLAGS = "$(OTHER_CFLAGS)";
|
||||||
OTHER_LDFLAGS = (
|
OTHER_LDFLAGS = (
|
||||||
"-lsqlite3.0",
|
"-lsqlite3.0",
|
||||||
|
@ -3616,7 +3616,7 @@
|
||||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||||
COPY_PHASE_STRIP = YES;
|
COPY_PHASE_STRIP = YES;
|
||||||
CURRENT_PROJECT_VERSION = 105;
|
CURRENT_PROJECT_VERSION = 107;
|
||||||
DEVELOPMENT_TEAM = HR7P97SD72;
|
DEVELOPMENT_TEAM = HR7P97SD72;
|
||||||
FRAMEWORK_SEARCH_PATHS = (
|
FRAMEWORK_SEARCH_PATHS = (
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
|
@ -3636,7 +3636,7 @@
|
||||||
"\"$(SRCROOT)\"",
|
"\"$(SRCROOT)\"",
|
||||||
"\"$(SRCROOT)/Other Sources\"",
|
"\"$(SRCROOT)/Other Sources\"",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 9.1;
|
MARKETING_VERSION = 9.1.1;
|
||||||
OTHER_LDFLAGS = (
|
OTHER_LDFLAGS = (
|
||||||
"-lsqlite3.0",
|
"-lsqlite3.0",
|
||||||
"-ObjC",
|
"-ObjC",
|
||||||
|
@ -3757,7 +3757,7 @@
|
||||||
CLANG_WARN_SUSPICIOUS_MOVES = YES;
|
CLANG_WARN_SUSPICIOUS_MOVES = YES;
|
||||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||||
CURRENT_PROJECT_VERSION = 105;
|
CURRENT_PROJECT_VERSION = 107;
|
||||||
DEBUG_INFORMATION_FORMAT = dwarf;
|
DEBUG_INFORMATION_FORMAT = dwarf;
|
||||||
DEVELOPMENT_TEAM = HR7P97SD72;
|
DEVELOPMENT_TEAM = HR7P97SD72;
|
||||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||||
|
@ -3772,7 +3772,7 @@
|
||||||
INFOPLIST_FILE = "Story Notification Service Extension/Info.plist";
|
INFOPLIST_FILE = "Story Notification Service Extension/Info.plist";
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 10.1;
|
IPHONEOS_DEPLOYMENT_TARGET = 10.1;
|
||||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
|
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
|
||||||
MARKETING_VERSION = 9.1;
|
MARKETING_VERSION = 9.1.1;
|
||||||
MTL_ENABLE_DEBUG_INFO = YES;
|
MTL_ENABLE_DEBUG_INFO = YES;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = "com.newsblur.NewsBlur.Story-Notification-Service-Extension";
|
PRODUCT_BUNDLE_IDENTIFIER = "com.newsblur.NewsBlur.Story-Notification-Service-Extension";
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
|
@ -3795,7 +3795,7 @@
|
||||||
CLANG_WARN_SUSPICIOUS_MOVES = YES;
|
CLANG_WARN_SUSPICIOUS_MOVES = YES;
|
||||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||||
CURRENT_PROJECT_VERSION = 105;
|
CURRENT_PROJECT_VERSION = 107;
|
||||||
DEVELOPMENT_TEAM = HR7P97SD72;
|
DEVELOPMENT_TEAM = HR7P97SD72;
|
||||||
ENABLE_NS_ASSERTIONS = NO;
|
ENABLE_NS_ASSERTIONS = NO;
|
||||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||||
|
@ -3804,7 +3804,7 @@
|
||||||
INFOPLIST_FILE = "Story Notification Service Extension/Info.plist";
|
INFOPLIST_FILE = "Story Notification Service Extension/Info.plist";
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 10.1;
|
IPHONEOS_DEPLOYMENT_TARGET = 10.1;
|
||||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
|
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
|
||||||
MARKETING_VERSION = 9.1;
|
MARKETING_VERSION = 9.1.1;
|
||||||
MTL_ENABLE_DEBUG_INFO = NO;
|
MTL_ENABLE_DEBUG_INFO = NO;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = "com.newsblur.NewsBlur.Story-Notification-Service-Extension";
|
PRODUCT_BUNDLE_IDENTIFIER = "com.newsblur.NewsBlur.Story-Notification-Service-Extension";
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
|
|
|
@ -53,7 +53,6 @@
|
||||||
.NB-static-form {
|
.NB-static-form {
|
||||||
margin: 0 auto;
|
margin: 0 auto;
|
||||||
width: 360px;
|
width: 360px;
|
||||||
overflow: hidden;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.NB-static-form input,
|
.NB-static-form input,
|
||||||
|
@ -194,4 +193,8 @@
|
||||||
}
|
}
|
||||||
.NB-static-form input[name=plan] {
|
.NB-static-form input[name=plan] {
|
||||||
display: none;
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.NB-static-form .g-recaptcha {
|
||||||
|
padding-left: 120px;
|
||||||
}
|
}
|
|
@ -24,6 +24,8 @@
|
||||||
Create an Account
|
Create an Account
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<script src='https://www.google.com/recaptcha/api.js'></script>
|
||||||
|
|
||||||
<div class="NB-static-form-wrapper" style="overflow:hidden">
|
<div class="NB-static-form-wrapper" style="overflow:hidden">
|
||||||
<form method="post" class="NB-static-form" action="{% url "signup" %}">
|
<form method="post" class="NB-static-form" action="{% url "signup" %}">
|
||||||
{% if form.errors %}
|
{% if form.errors %}
|
||||||
|
@ -36,7 +38,9 @@
|
||||||
{% endif %}{% endif %}
|
{% endif %}{% endif %}
|
||||||
{% else %}{% if next %}
|
{% else %}{% if next %}
|
||||||
<p class="NB-error error">Please create an account to continue.</p>
|
<p class="NB-error error">Please create an account to continue.</p>
|
||||||
{% endif %}{% endif %}
|
{% else %}{% if recaptcha_error %}
|
||||||
|
<p class="NB-error error">{{ recaptcha_error }}</p>
|
||||||
|
{% endif %}{% endif %}{% endif %}
|
||||||
|
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
<div class="NB-static-form-label">{{ form.username.label_tag }}</div>
|
<div class="NB-static-form-label">{{ form.username.label_tag }}</div>
|
||||||
|
@ -46,6 +50,8 @@
|
||||||
<div class="NB-static-form-label">{{ form.email.label_tag }}</div>
|
<div class="NB-static-form-label">{{ form.email.label_tag }}</div>
|
||||||
<div class="NB-static-form-input">{{ form.email }}</div>
|
<div class="NB-static-form-input">{{ form.email }}</div>
|
||||||
|
|
||||||
|
<div class="g-recaptcha" data-sitekey="6LchVzcUAAAAAJH4uoEEhvoqgseZnEZC7LToC92E"></div>
|
||||||
|
|
||||||
<input type="submit" value="Sign Up" class="NB-modal-submit-button NB-modal-submit-green NB-static-form-submit" />
|
<input type="submit" value="Sign Up" class="NB-modal-submit-button NB-modal-submit-green NB-static-form-submit" />
|
||||||
<input type="hidden" name="next" value="{{ next }}" />
|
<input type="hidden" name="next" value="{{ next }}" />
|
||||||
<p class="NB-static-form-alttext"><a href="{% url "login" %}?next={{ next|urlencode }}">Login to your account</a></a>
|
<p class="NB-static-form-alttext"><a href="{% url "login" %}?next={{ next|urlencode }}">Login to your account</a></a>
|
||||||
|
|
Loading…
Add table
Reference in a new issue