Authorisation management using CanCanCan added
This commit is contained in:
parent
51be4a4777
commit
7a3b65fe50
24 changed files with 211 additions and 295 deletions
|
|
@ -1,7 +1,13 @@
|
|||
// Button that reveals a dropdown/modal for moderation/reporting
|
||||
|
||||
- if can?(:destroy, screenshot) || can?(:approve, screenshot)
|
||||
.text
|
||||
span.label.secondary
|
||||
= status_text(screenshot)
|
||||
|
||||
.button-group.small.align-center
|
||||
|
||||
- if (screenshot_uploaded_by_current_user?(screenshot) || (current_user && current_user.is_admin?))
|
||||
- if can?(:destroy, screenshot)
|
||||
a.button.small.bordered.radius.alert[
|
||||
href=delete_screenshot_path(screenshot.id)
|
||||
onclick="return confirm('Really delete the screenshot?');"
|
||||
|
|
@ -15,29 +21,15 @@
|
|||
/ href='#'
|
||||
/ ] #{fa_icon 'star'} Make primary
|
||||
|
||||
- if not screenshot.approved
|
||||
- if current_user && current_user.is_admin?
|
||||
- unless screenshot.approved
|
||||
- if can?(:approve, screenshot)
|
||||
a.button.small.success[
|
||||
href=approve_screenshot_path(screenshot.id)
|
||||
method='post'
|
||||
] Approve
|
||||
|
||||
/ - elsif screenshot.markedfordelete
|
||||
/ a.button.small.success[
|
||||
/ href=approve_screenshot_path(screenshot.id)
|
||||
/ method='post'
|
||||
/ ] Keep
|
||||
|
||||
] #{fa_icon 'check'} Approve
|
||||
|
||||
/ Display additional information to admins
|
||||
p Status: #{screenshot.adminstatus}
|
||||
p Uploader IP=#{screenshot.uploaderip}
|
||||
p Uploader Token=#{session[:token]}
|
||||
p Uploaded #{screenshot.age} ago (#{screenshot.created_at})
|
||||
|
||||
/ TODO: Move reporting screenshots to an extra page with a form and captcha
|
||||
/ - else
|
||||
/ / Allow anonymous users to report inappropriate screenshots
|
||||
/ = form_tag(report_screenshot_path(screenshot.id))
|
||||
/ = text_area_tag 'delete_reason', nil, class: 'input-group-field', maxlength: 100, rows: 3, cols: 50
|
||||
/ = submit_tag 'Request removal', class: 'button alert'
|
||||
/ p Status: #{screenshot.adminstatus}
|
||||
/ p Uploader IP=#{screenshot.uploaderip}
|
||||
/ p Uploader Token=#{session[:token]}
|
||||
/ p Uploaded #{time_ago_in_words(screenshot.created_at)} ago (#{screenshot.created_at})
|
||||
|
|
|
|||
|
|
@ -1,12 +0,0 @@
|
|||
// Button that reveals a dropdown/modal for users (for their own screenshots)
|
||||
.text-right
|
||||
button.small.dropdown.warning.button type="button" data-toggle="admin-info-#{screenshot.id}"
|
||||
'Request removal
|
||||
.dropdown-pane data-dropdown=true id="admin-info-#{screenshot.id}"
|
||||
p If you think this screenshot does not meet the guidelines
|
||||
or is misleading or not useful then please report it so that
|
||||
the moderators can review it. Just let us know why you think
|
||||
the screenshot should get removed:
|
||||
= form_tag(report_screenshot_path(screenshot.id))
|
||||
= text_area_tag 'delete_reason', nil, class: 'input-group-field', maxlength: 100, rows: 3, cols: 50
|
||||
= submit_tag 'Request removal', class: 'button alert'
|
||||
|
|
@ -25,24 +25,13 @@
|
|||
.text
|
||||
= screenshot.caption
|
||||
// Has the unmoderated screenshot been uploaded by the current user?
|
||||
- if screenshot_uploaded_by_current_user?(screenshot)
|
||||
- if current_user.screenshots.include?(screenshot)
|
||||
.text
|
||||
span.label.secondary
|
||||
' Uploaded by you
|
||||
- unless screenshot.approved
|
||||
' (needs to be approved)
|
||||
= render(partial: 'admin_buttons', locals: {screenshot: screenshot})
|
||||
// Is the user an admin?
|
||||
// or does the screenshot belong to the user (determined by session cookie)
|
||||
- if current_user && current_user.is_admin?
|
||||
hr
|
||||
.text
|
||||
span.label.secondary
|
||||
= status_text(screenshot)
|
||||
|
||||
= render(partial: 'admin_buttons', locals: {screenshot: screenshot})
|
||||
/ - elsif user_signed_in? and screenshot.user == current_user
|
||||
/ = render(partial: 'user_dropdown', locals: {screenshot: screenshot})
|
||||
= render(partial: 'admin_buttons', locals: {screenshot: screenshot})
|
||||
|
||||
|
||||
// Second paginator at the bottom so the user does not have to scroll up again
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue