Skip to content

Commit 2669f20

Browse files
committed
Merge pull request #187 from RickyCook/fix-anon-projects
Fix getting auth token with anon user
2 parents 28b7fb8 + 3019ec2 commit 2669f20

File tree

3 files changed

+43
-31
lines changed

3 files changed

+43
-31
lines changed

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
# Changelog
22

3+
### v0.0.4-1
4+
- Fix issue browsing anonymously #187
5+
36
## v0.0.4
47
- Upgrade YAML model #146
58
- Fix email #147

dockci/templates/project.html

Lines changed: 22 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -14,30 +14,32 @@
1414
<div class="checkbox"><label>
1515
<input id="filterStable" type="checkbox" {{ 'checked' if versioned else '' }}>Only stable releases
1616
</label></div>
17-
<div id="delete-dialog" class="modal fade" tabindex="-1">
18-
<div class="modal-dialog">
19-
<div class="modal-content">
20-
<div class="modal-header">
21-
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
22-
<h4 class="modal-title">Really delete {{ project.name }}?</h4>
23-
</div>
24-
<div class="modal-body">
25-
<p>This will delete all job logs, artifacts, and GitHub hooks but not
26-
any Docker images or containers.</p>
27-
</div>
28-
<div class="modal-footer">
29-
<form action="{{ url_for('project_view', slug=project.slug) }}" method="POST">
30-
<input type="hidden" name="operation" value="delete" />
31-
<input type="hidden" name="auth_token" value="{{ auth_token_delete.auth_token }}" />
32-
<input type="hidden" name="expiry" value="{{ auth_token_delete.expiry }}" />
17+
{% if current_user.is_authenticated() %}
18+
<div id="delete-dialog" class="modal fade" tabindex="-1">
19+
<div class="modal-dialog">
20+
<div class="modal-content">
21+
<div class="modal-header">
22+
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
23+
<h4 class="modal-title">Really delete {{ project.name }}?</h4>
24+
</div>
25+
<div class="modal-body">
26+
<p>This will delete all job logs, artifacts, and GitHub hooks but not
27+
any Docker images or containers.</p>
28+
</div>
29+
<div class="modal-footer">
30+
<form action="{{ url_for('project_view', slug=project.slug) }}" method="POST">
31+
<input type="hidden" name="operation" value="delete" />
32+
<input type="hidden" name="auth_token" value="{{ auth_token_delete.auth_token }}" />
33+
<input type="hidden" name="expiry" value="{{ auth_token_delete.expiry }}" />
3334

34-
<button class="btn" data-dismiss="modal">Cancel</button>
35-
<input type="submit" class="btn btn-danger" value="Delete" />
36-
</form>
35+
<button class="btn" data-dismiss="modal">Cancel</button>
36+
<input type="submit" class="btn btn-danger" value="Delete" />
37+
</form>
38+
</div>
3739
</div>
3840
</div>
3941
</div>
40-
</div>
42+
{% endif %}
4143
<table id="jobs-list" class="table table-striped">
4244
<tr><th>Created</th><th>Tag</th><th>Commit ref</th><th>Author</th><th>State</th></tr>
4345
{% for job in jobs -%}

dockci/views/project.py

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,24 @@ def project_view(slug):
6363
if next_page_offset > len(jobs):
6464
next_page_offset = None
6565

66+
jobs = jobs[page_offset:page_offset + page_size]
67+
return render_template(
68+
'project.html',
69+
project=project,
70+
jobs=jobs,
71+
versioned=versioned,
72+
prev_page_offset=prev_page_offset,
73+
next_page_offset=next_page_offset,
74+
page_size=page_size,
75+
auth_token_delete=get_auth_token_delete(project),
76+
)
77+
78+
79+
def get_auth_token_delete(project):
80+
""" Get an auth token to delete the project for the current user """
81+
if current_user.is_authenticated():
6682
auth_token_expires = auth_token_expiry()
67-
auth_token_delete = {
83+
return {
6884
'auth_token': create_auth_token(
6985
CONFIG.secret, auth_token_data(
7086
current_user, project, 'delete', auth_token_expires
@@ -73,16 +89,7 @@ def project_view(slug):
7389
'expiry': auth_token_expires,
7490
}
7591

76-
jobs = jobs[page_offset:page_offset + page_size]
77-
return render_template('project.html',
78-
project=project,
79-
jobs=jobs,
80-
versioned=versioned,
81-
prev_page_offset=prev_page_offset,
82-
next_page_offset=next_page_offset,
83-
page_size=page_size,
84-
auth_token_delete=auth_token_delete,
85-
)
92+
return None
8693

8794

8895
@APP.route('/projects/<slug>/edit', methods=('GET', 'POST'))

0 commit comments

Comments
 (0)