Sorry, only Pros can change account settings.
parent
ba049649c8
commit
e3ff982eed
|
@ -15,7 +15,7 @@
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<section class="profile group" ng-app="Account" ng-controller="MainController">
|
<section class="profile group" ng-app="Account" ng-controller="MainController">
|
||||||
<aside>
|
<aside>
|
||||||
<ul class="nav nav-list">
|
<ul class="nav nav-list ng-cloak" ng-cloak>
|
||||||
<li class="nav-header">Account</li>
|
<li class="nav-header">Account</li>
|
||||||
<li ng-class="{active: route.current.scope.section == 'Profile'}">
|
<li ng-class="{active: route.current.scope.section == 'Profile'}">
|
||||||
<a href="/account/">Profile</a>
|
<a href="/account/">Profile</a>
|
||||||
|
@ -23,14 +23,14 @@
|
||||||
<li>
|
<li>
|
||||||
<a href="/password/change/">Change password</a>
|
<a href="/password/change/">Change password</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-header">Pro</li>
|
<li ng-show="user.is_pro" class="nav-header">Pro</li>
|
||||||
<li ng-class="{active: route.current.scope.section == 'Blogging'}">
|
<li ng-show="user.is_pro" ng-class="{active: route.current.scope.section == 'Blogging'}">
|
||||||
<a href="/account/blogging/">Blogging</a>
|
<a href="/account/blogging/">Blogging</a>
|
||||||
</li>
|
</li>
|
||||||
<li ng-class="{active: route.current.scope.section == 'Editor'}">
|
<li ng-show="user.is_pro" ng-class="{active: route.current.scope.section == 'Editor'}">
|
||||||
<a href="/account/editor/">Editor</a>
|
<a href="/account/editor/">Editor</a>
|
||||||
</li>
|
</li>
|
||||||
<li ng-class="{active: route.current.scope.section == 'Billing'}">
|
<li ng-show="user.is_pro" ng-class="{active: route.current.scope.section == 'Billing'}">
|
||||||
<a href="/account/billing/">Billing</a>
|
<a href="/account/billing/">Billing</a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
|
@ -5,5 +5,5 @@ from accounts import views
|
||||||
|
|
||||||
urlpatterns = patterns('',
|
urlpatterns = patterns('',
|
||||||
url(r'^stats/$', views.stats, name='account-stats'),
|
url(r'^stats/$', views.stats, name='account-stats'),
|
||||||
url(r'^', direct_to_template, {'template': 'account.html'}, name='account-detail'),
|
url(r'^', views.account, name='account-detail'),
|
||||||
)
|
)
|
||||||
|
|
|
@ -3,6 +3,11 @@ from django.http import HttpResponseRedirect
|
||||||
from annoying.decorators import render_to
|
from annoying.decorators import render_to
|
||||||
from snipts.models import Snipt
|
from snipts.models import Snipt
|
||||||
|
|
||||||
|
@login_required
|
||||||
|
@render_to('account.html')
|
||||||
|
def account(request):
|
||||||
|
return {}
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
@render_to('stats.html')
|
@render_to('stats.html')
|
||||||
def stats(request):
|
def stats(request):
|
||||||
|
|
|
@ -29,6 +29,6 @@ class BlogMiddleware:
|
||||||
pro_users = User.objects.filter(userprofile__is_pro=True)
|
pro_users = User.objects.filter(userprofile__is_pro=True)
|
||||||
|
|
||||||
for pro_user in pro_users:
|
for pro_user in pro_users:
|
||||||
if pro_user.profile.blog_domain:
|
if pro_user.profile.blog_domain != '':
|
||||||
if host in pro_user.profile.blog_domain.split(' '):
|
if host in pro_user.profile.blog_domain.split(' '):
|
||||||
request.blog_user = pro_user
|
request.blog_user = pro_user
|
||||||
|
|
|
@ -37,6 +37,9 @@ class UserProfileValidation(Validation):
|
||||||
def is_valid(self, bundle, request=None):
|
def is_valid(self, bundle, request=None):
|
||||||
errors = {}
|
errors = {}
|
||||||
|
|
||||||
|
if not request.user.profile.is_pro:
|
||||||
|
return 'You must be a Pro to change these settings.'
|
||||||
|
|
||||||
for field in bundle.data:
|
for field in bundle.data:
|
||||||
if not re.match('^[ A-Za-z0-9\/\@\._-]*$', bundle.data[field]):
|
if not re.match('^[ A-Za-z0-9\/\@\._-]*$', bundle.data[field]):
|
||||||
errors[field] = 'Only spaces, letters, numbers, underscores, dashes, periods, forward slashes, and "at sign" are valid.'
|
errors[field] = 'Only spaces, letters, numbers, underscores, dashes, periods, forward slashes, and "at sign" are valid.'
|
||||||
|
|
Loading…
Reference in New Issue