Revision 6ff7a7ca
b/snf-astakos-app/astakos/im/api/__init__.py | ||
---|---|---|
161 | 161 |
pass |
162 | 162 |
else: |
163 | 163 |
l = [] |
164 |
l.append({ 'url': absolute(reverse('astakos.im.views.index')), |
|
165 |
'name': user.email}) |
|
166 |
l.append({ 'url': absolute(reverse('astakos.im.views.edit_profile')), |
|
167 |
'name': "My account" }) |
|
164 |
l.append(dict(url=absolute(reverse('index')), name=user.email)) |
|
165 |
l.append(dict(url=absolute(reverse('edit_profile')), name="My account")) |
|
168 | 166 |
if with_extra_links: |
169 | 167 |
if user.has_usable_password() and user.provider == 'local': |
170 |
l.append({ 'url': absolute(reverse('password_change')), |
|
171 |
'name': "Change password" }) |
|
168 |
l.append(dict(url=absolute(reverse('password_change')), name="Change password")) |
|
172 | 169 |
if EMAILCHANGE_ENABLED: |
173 |
l.append({'url':absolute(reverse('email_change')), |
|
174 |
'name': "Change email"}) |
|
170 |
l.append(dict(url=absolute(reverse('email_change')), name="Change email")) |
|
175 | 171 |
if INVITATIONS_ENABLED: |
176 |
l.append({ 'url': absolute(reverse('astakos.im.views.invite')), |
|
177 |
'name': "Invitations" }) |
|
178 |
l.append({ 'url': absolute(reverse('astakos.im.views.feedback')), |
|
179 |
'name': "Feedback" }) |
|
180 |
l.append({ 'url': absolute(reverse('group_add')), |
|
181 |
'name': "Add group" }) |
|
172 |
l.append(dict(url=absolute(reverse('invite')), name="Invitations")) |
|
173 |
l.append(dict(url=absolute(reverse('feedback')), name="Feedback")) |
|
174 |
if request.user.has_perm('im.add_astakosgroup'): |
|
175 |
l.append(dict(url=absolute(reverse('group_add')), name="Add group")) |
|
176 |
url = absolute(reverse('group_list')) |
|
177 |
l.append(dict(url=url, name="Subscribed groups")) |
|
178 |
url = '%s?relation=owner' % url |
|
179 |
l.append(dict(url=url, name="My groups")) |
|
182 | 180 |
if with_signout: |
183 |
l.append({ 'url': absolute(reverse('astakos.im.views.logout')), |
|
184 |
'name': "Sign out"}) |
|
181 |
l.append(dict(url=absolute(reverse('logout')), name="Sign out")) |
|
185 | 182 |
|
186 | 183 |
callback = request.GET.get('callback', None) |
187 | 184 |
data = json.dumps(tuple(l)) |
b/snf-astakos-app/astakos/im/functions.py | ||
---|---|---|
81 | 81 |
|
82 | 82 |
Raises SendVerificationError |
83 | 83 |
""" |
84 |
url = '%s?auth=%s&next=%s' % (urljoin(BASEURL, reverse('astakos.im.views.activate')),
|
|
84 |
url = '%s?auth=%s&next=%s' % (urljoin(BASEURL, reverse('activate')), |
|
85 | 85 |
quote(user.auth_token), |
86 |
quote(urljoin(BASEURL, reverse('astakos.im.views.index'))))
|
|
86 |
quote(urljoin(BASEURL, reverse('index')))) |
|
87 | 87 |
message = render_to_string(template_name, { |
88 | 88 |
'user': user, |
89 | 89 |
'url': url, |
... | ... | |
158 | 158 |
Raises SendInvitationError |
159 | 159 |
""" |
160 | 160 |
subject = _('Invitation to %s alpha2 testing' % SITENAME) |
161 |
url = '%s?code=%d' % (urljoin(BASEURL, reverse('astakos.im.views.index')), invitation.code)
|
|
161 |
url = '%s?code=%d' % (urljoin(BASEURL, reverse('index')), invitation.code) |
|
162 | 162 |
message = render_to_string('im/invitation.txt', { |
163 | 163 |
'invitation': invitation, |
164 | 164 |
'url': url, |
... | ... | |
184 | 184 |
subject = _('Welcome to %s alpha2 testing' % SITENAME) |
185 | 185 |
message = render_to_string(email_template_name, { |
186 | 186 |
'user': user, |
187 |
'url': urljoin(BASEURL, reverse('astakos.im.views.index')),
|
|
187 |
'url': urljoin(BASEURL, reverse('index')), |
|
188 | 188 |
'baseurl': BASEURL, |
189 | 189 |
'site_name': SITENAME, |
190 | 190 |
'support': DEFAULT_CONTACT_EMAIL}) |
b/snf-astakos-app/astakos/im/target/redirect.py | ||
---|---|---|
118 | 118 |
next = urlunsplit(parts) |
119 | 119 |
|
120 | 120 |
# build url location |
121 |
parts[2] = reverse('astakos.im.views.index')
|
|
121 |
parts[2] = reverse('index') |
|
122 | 122 |
params = {'next':next} |
123 | 123 |
parts[3] = urlencode(params) |
124 | 124 |
url = urlunsplit(parts) |
b/snf-astakos-app/astakos/im/templates/im/account_base.html | ||
---|---|---|
18 | 18 |
|
19 | 19 |
{% block page.quicknav.items %} |
20 | 20 |
<li class="{% block signup_class %}{% endblock %}"> |
21 |
<a href="{% url astakos.im.views.logout %}">LOGOUT</a>
|
|
21 |
<a href="{% url logout %}">LOGOUT</a> |
|
22 | 22 |
</li> |
23 | 23 |
{% endblock %} |
24 | 24 |
|
b/snf-astakos-app/astakos/im/templates/im/feedback.html | ||
---|---|---|
1 | 1 |
{% extends "im/account_base.html" %} |
2 | 2 |
|
3 | 3 |
{% block body %} |
4 |
<form action="{% url astakos.im.views.feedback %}" method="post"
|
|
4 |
<form action="{% url feedback %}" method="post" |
|
5 | 5 |
class="withlabels">{% csrf_token %} |
6 | 6 |
|
7 | 7 |
{% with feedback_form as form %} |
b/snf-astakos-app/astakos/im/templates/im/invitations.html | ||
---|---|---|
31 | 31 |
|
32 | 32 |
<div class="rightcol"> |
33 | 33 |
{% if inviter.invitations %} |
34 |
<form action="{% url astakos.im.views.invite %}" method="post"
|
|
34 |
<form action="{% url invite %}" method="post" |
|
35 | 35 |
class="innerlabels">{% csrf_token %} |
36 | 36 |
<h2>INVITE SOMEONE ELSE</h2> |
37 | 37 |
{% with invitation_form as form %} |
b/snf-astakos-app/astakos/im/templates/im/login_base.html | ||
---|---|---|
59 | 59 |
{% endfor %} |
60 | 60 |
<div class="bottom"> |
61 | 61 |
{% block body.login.signup %} |
62 |
new to okeanos ? <a href="{% url astakos.im.views.signup %}{% ifnotequal code "" %}?code={{ code|urlencode }}{% endifnotequal %}">CREATE ACCOUNT</a>
|
|
62 |
new to okeanos ? <a href="{% url signup %}{% ifnotequal code "" %}?code={{ code|urlencode }}{% endifnotequal %}">CREATE ACCOUNT</a> |
|
63 | 63 |
{% endblock %} |
64 | 64 |
</div> |
65 | 65 |
</div> |
b/snf-astakos-app/astakos/im/templates/im/profile.html | ||
---|---|---|
2 | 2 |
|
3 | 3 |
{% block body %} |
4 | 4 |
|
5 |
<form action={%url astakos.im.views.edit_profile %} method="post"
|
|
5 |
<form action={%url edit_profile %} method="post" |
|
6 | 6 |
class="withlabels">{% csrf_token %} |
7 | 7 |
|
8 | 8 |
{% with profile_form as form %} |
b/snf-astakos-app/astakos/im/templates/im/register.html | ||
---|---|---|
5 | 5 |
{% endblock title%} |
6 | 6 |
|
7 | 7 |
{% block body %} |
8 |
<form action={%url astakos.im.views.register%} method="post">{% csrf_token %}
|
|
8 |
<form action={%url register%} method="post">{% csrf_token %} |
|
9 | 9 |
{{ form.as_p }} |
10 | 10 |
<div> |
11 | 11 |
<button type="submit" class="btn primary">Register</button> |
b/snf-astakos-app/astakos/im/templates/im/signup.html | ||
---|---|---|
25 | 25 |
{% block body.right %} |
26 | 26 |
{% if "local" in im_modules %} |
27 | 27 |
<div class="form-stacked"> |
28 |
<form action="{% url astakos.im.views.signup %}" method="post"
|
|
28 |
<form action="{% url signup %}" method="post" |
|
29 | 29 |
class="innerlabels signup">{% csrf_token %} |
30 | 30 |
<h2><span>SIGN UP</span></h2> |
31 | 31 |
<input type="hidden" name="next" value="{{ next }}"> |
b/snf-astakos-app/astakos/im/templates/im/signup_complete.html | ||
---|---|---|
10 | 10 |
</div> |
11 | 11 |
|
12 | 12 |
<div class="section"> |
13 |
<form action="{% url astakos.im.views.signup %}" method="post" class="login innerlabels">{% csrf_token %}
|
|
13 |
<form action="{% url signup %}" method="post" class="login innerlabels">{% csrf_token %} |
|
14 | 14 |
{% with thirdparty_signup_form as form %} |
15 | 15 |
{% include "im/form_render.html" %} |
16 | 16 |
{% endwith %} |
b/snf-astakos-app/astakos/im/templates/im/third_party_registration.html | ||
---|---|---|
15 | 15 |
{% block body.right %} |
16 | 16 |
{% if "local" in im_modules %} |
17 | 17 |
<div class="form-stacked"> |
18 |
<form action="{% url astakos.im.views.signup %}" method="post"
|
|
18 |
<form action="{% url signup %}" method="post" |
|
19 | 19 |
class="innerlabels signup">{% csrf_token %} |
20 | 20 |
<h2><span>Provide an email address to complete the registration:</span></h2> |
21 | 21 |
<input type="hidden" name="next" value="{{ next }}"> |
b/snf-astakos-app/astakos/im/templates/registration/email_change_form.html | ||
---|---|---|
1 | 1 |
{% extends "im/account_base.html" %} |
2 | 2 |
|
3 | 3 |
{% block body %} |
4 |
<form action="{% url astakos.im.views.change_email %}" method="post"
|
|
4 |
<form action="{% url email_change %}" method="post"
|
|
5 | 5 |
class="withlabels">{% csrf_token %} |
6 | 6 |
|
7 | 7 |
{% include "im/form_render.html" %} |
b/snf-astakos-app/astakos/im/templates/registration/logged_out.html | ||
---|---|---|
3 | 3 |
{%block page.title %}Logout{% endblock %} |
4 | 4 |
{% block body %} |
5 | 5 |
<div class="section"> |
6 |
<h2>You have successfully logged out. <a href="{% url astakos.im.views.index %}">Login</a>.</h2>
|
|
6 |
<h2>You have successfully logged out. <a href="{% url index %}">Login</a>.</h2> |
|
7 | 7 |
</div> |
8 | 8 |
{% endblock %} |
b/snf-astakos-app/astakos/im/urls.py | ||
---|---|---|
41 | 41 |
urlpatterns = patterns('astakos.im.views', |
42 | 42 |
url(r'^$', 'index', {}, name='index'), |
43 | 43 |
url(r'^login/?$', 'index', {}, name='login'), |
44 |
url(r'^profile/?$', 'edit_profile'), |
|
45 |
url(r'^feedback/?$', 'feedback'), |
|
46 |
url(r'^signup/?$', 'signup', {'on_success':'im/login.html', 'extra_context':{'login_form':LoginForm()}}), |
|
47 |
url(r'^logout/?$', 'logout', {'template':'im/login.html', 'extra_context':{'login_form':LoginForm()}}), |
|
48 |
url(r'^activate/?$', 'activate'), |
|
44 |
url(r'^profile/?$', 'edit_profile', {}, name='edit_profile'),
|
|
45 |
url(r'^feedback/?$', 'feedback', {}, name='feedback'),
|
|
46 |
url(r'^signup/?$', 'signup', {'on_success':'im/login.html', 'extra_context':{'login_form':LoginForm()}}, name='signup'),
|
|
47 |
url(r'^logout/?$', 'logout', {'template':'im/login.html', 'extra_context':{'login_form':LoginForm()}}, name='logout'),
|
|
48 |
url(r'^activate/?$', 'activate', {}, name='activate'),
|
|
49 | 49 |
url(r'^approval_terms/?$', 'approval_terms', {}, name='latest_terms'), |
50 | 50 |
url(r'^approval_terms/(?P<term_id>\d+)/?$', 'approval_terms'), |
51 | 51 |
url(r'^password/?$', 'change_password', {}, name='password_change'), |
52 | 52 |
url(r'^group/add/?$', 'group_add', {}, name='group_add'), |
53 |
url(r'^group/list?$', 'user_group_list', {}, name='user_group_list'),
|
|
53 |
url(r'^group/list/?$', 'group_list', {}, name='group_list'),
|
|
54 | 54 |
url(r'^group/(?P<group_id>\d+)/?$', 'group_detail', {}, name='group_detail'), |
55 | 55 |
url(r'^group/(?P<group_id>\d+)/policies/list/?$', 'group_policies_list', {}, name='group_policies_list'), |
56 | 56 |
url(r'^group/(?P<group_id>\d+)/policies/add/?$', 'group_policies_add', {}, name='group_policies_add'), |
... | ... | |
86 | 86 |
|
87 | 87 |
if INVITATIONS_ENABLED: |
88 | 88 |
urlpatterns += patterns('astakos.im.views', |
89 |
url(r'^invite/?$', 'invite') |
|
89 |
url(r'^invite/?$', 'invite', {}, name='invite')
|
|
90 | 90 |
) |
91 | 91 |
|
92 | 92 |
if 'shibboleth' in IM_MODULES: |
b/snf-astakos-app/astakos/im/util.py | ||
---|---|---|
119 | 119 |
params = '' |
120 | 120 |
if next: |
121 | 121 |
params = '?' + urlencode({'next': next}) |
122 |
next = reverse('astakos.im.views.edit_profile') + params
|
|
122 |
next = reverse('edit_profile') + params |
|
123 | 123 |
|
124 | 124 |
response = HttpResponse() |
125 | 125 |
|
... | ... | |
130 | 130 |
request.session.set_expiry(user.auth_token_expires) |
131 | 131 |
|
132 | 132 |
if not next: |
133 |
next = reverse('astakos.im.views.index')
|
|
133 |
next = reverse('index') |
|
134 | 134 |
|
135 | 135 |
response['Location'] = next |
136 | 136 |
response.status_code = 302 |
b/snf-astakos-app/astakos/im/views.py | ||
---|---|---|
138 | 138 |
""" |
139 | 139 |
template_name = login_template_name |
140 | 140 |
if request.user.is_authenticated(): |
141 |
return HttpResponseRedirect(reverse('astakos.im.views.edit_profile'))
|
|
141 |
return HttpResponseRedirect(reverse('edit_profile')) |
|
142 | 142 |
return render_response(template_name, |
143 | 143 |
login_form = LoginForm(request=request), |
144 | 144 |
context_instance = get_context(request, extra_context)) |
... | ... | |
315 | 315 |
im/signup_complete.html or ``on_success`` keyword argument. |
316 | 316 |
""" |
317 | 317 |
if request.user.is_authenticated(): |
318 |
return HttpResponseRedirect(reverse('astakos.im.views.edit_profile'))
|
|
318 |
return HttpResponseRedirect(reverse('edit_profile')) |
|
319 | 319 |
|
320 | 320 |
provider = get_query(request).get('provider', 'local') |
321 | 321 |
try: |
... | ... | |
512 | 512 |
pass |
513 | 513 |
|
514 | 514 |
if not term: |
515 |
return HttpResponseRedirect(reverse('astakos.im.views.index'))
|
|
515 |
return HttpResponseRedirect(reverse('index')) |
|
516 | 516 |
f = open(term.location, 'r') |
517 | 517 |
terms = f.read() |
518 | 518 |
|
519 | 519 |
if request.method == 'POST': |
520 | 520 |
next = request.POST.get('next') |
521 | 521 |
if not next: |
522 |
next = reverse('astakos.im.views.index')
|
|
522 |
next = reverse('index') |
|
523 | 523 |
form = SignApprovalTermsForm(request.POST, instance=request.user) |
524 | 524 |
if not form.is_valid(): |
525 | 525 |
return render_response(template_name, |
... | ... | |
540 | 540 |
@signed_terms_required |
541 | 541 |
def change_password(request): |
542 | 542 |
return password_change(request, |
543 |
post_change_redirect=reverse('astakos.im.views.edit_profile'),
|
|
543 |
post_change_redirect=reverse('edit_profile'), |
|
544 | 544 |
password_change_form=ExtendedPasswordChangeForm) |
545 | 545 |
|
546 | 546 |
@signed_terms_required |
... | ... | |
570 | 570 |
|
571 | 571 |
if not request.user.is_authenticated(): |
572 | 572 |
path = quote(request.get_full_path()) |
573 |
url = request.build_absolute_uri(reverse('astakos.im.views.index'))
|
|
573 |
url = request.build_absolute_uri(reverse('index')) |
|
574 | 574 |
return HttpResponseRedirect(url + '?next=' + path) |
575 | 575 |
form = EmailChangeForm(request.POST or None) |
576 | 576 |
if request.method == 'POST' and form.is_valid(): |
... | ... | |
619 | 619 |
try: |
620 | 620 |
group = AstakosGroup.objects.select_related().get(id=group_id) |
621 | 621 |
except AstakosGroup.DoesNotExist: |
622 |
raise HttpResponseBadRequest(_('Invalid group.'))
|
|
622 |
return HttpResponseBadRequest(_('Invalid group.'))
|
|
623 | 623 |
d = {} |
624 | 624 |
for resource in group.policy.all(): |
625 | 625 |
d[resource.name] = group.policy.through.objects.get(resource__id=resource.id, |
Also available in: Unified diff