Allow user to see their profile page
This commit is contained in:
parent
b4e56645f6
commit
267dc439f1
4 changed files with 18 additions and 11 deletions
21
vedia.rb
21
vedia.rb
|
|
@ -218,6 +218,11 @@ post '/logout' do
|
||||||
redirect '/login'
|
redirect '/login'
|
||||||
end
|
end
|
||||||
|
|
||||||
|
get '/users/:id' do
|
||||||
|
require_admin_or_self
|
||||||
|
erb :users_show
|
||||||
|
end
|
||||||
|
|
||||||
get '/admin' do
|
get '/admin' do
|
||||||
require_admin
|
require_admin
|
||||||
@users = User.all
|
@users = User.all
|
||||||
|
|
@ -225,12 +230,6 @@ get '/admin' do
|
||||||
erb :admin
|
erb :admin
|
||||||
end
|
end
|
||||||
|
|
||||||
get '/admin/users/:id' do
|
|
||||||
require_admin
|
|
||||||
@user = User.find(params[:id])
|
|
||||||
erb :admin_users
|
|
||||||
end
|
|
||||||
|
|
||||||
get '/admin/users/:id/organizers/:vote/delete' do
|
get '/admin/users/:id/organizers/:vote/delete' do
|
||||||
require_admin
|
require_admin
|
||||||
rating = Organizer.where(user: params[:id]).where(vote: params[:vote]).each do |organizer|
|
rating = Organizer.where(user: params[:id]).where(vote: params[:vote]).each do |organizer|
|
||||||
|
|
@ -652,6 +651,12 @@ helpers do
|
||||||
redirect '/' unless is_admin
|
redirect '/' unless is_admin
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def require_admin_or_self
|
||||||
|
require_login
|
||||||
|
find_user
|
||||||
|
redirect '/' unless is_admin or current_user == @user
|
||||||
|
end
|
||||||
|
|
||||||
def find_vote
|
def find_vote
|
||||||
@vote = Vote.find_by(secure_id: params[:id])
|
@vote = Vote.find_by(secure_id: params[:id])
|
||||||
end
|
end
|
||||||
|
|
@ -660,6 +665,10 @@ helpers do
|
||||||
@candidate = Candidate.find(params[:cid])
|
@candidate = Candidate.find(params[:cid])
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def find_user
|
||||||
|
@user = User.find(params[:id])
|
||||||
|
end
|
||||||
|
|
||||||
def all_users_sorted
|
def all_users_sorted
|
||||||
User.all.each.sort_by { |user| user.email }
|
User.all.each.sort_by { |user| user.email }
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@
|
||||||
</thead>
|
</thead>
|
||||||
<% @users.sort_by { |user| user.email }.each do |user| %>
|
<% @users.sort_by { |user| user.email }.each do |user| %>
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="/admin/users/<%= user.id %>"><%= user.email %></a></td>
|
<td><a href="/users/<%= user.id %>"><%= user.email %></a></td>
|
||||||
<td><%= format_date(user.created_at) %></td>
|
<td><%= format_date(user.created_at) %></td>
|
||||||
<td><%= user.admin %></td>
|
<td><%= user.admin %></td>
|
||||||
<td><%= user.votes.length %></td>
|
<td><%= user.votes.length %></td>
|
||||||
|
|
|
||||||
|
|
@ -40,7 +40,7 @@
|
||||||
|
|
||||||
<div class="d-flex flex-wrap justify-content-end pe-3 py-3 mb-4">
|
<div class="d-flex flex-wrap justify-content-end pe-3 py-3 mb-4">
|
||||||
<% if current_user %>
|
<% if current_user %>
|
||||||
<%= current_user.email %>
|
<a href="/users/<%= current_user.id %>"><%= current_user.email %></a>
|
||||||
<% else %>
|
<% else %>
|
||||||
|
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,4 @@
|
||||||
<h1 class="mb-5"><%= _("Admin") %></h1>
|
<h1 class="mb-5"><%= @user.email %></h1>
|
||||||
|
|
||||||
<h2 class="mb-4"><%= @user.email %></h2>
|
|
||||||
|
|
||||||
<p><%= _("Created: %{date}") % { date: format_date(@user.created_at) } %></p>
|
<p><%= _("Created: %{date}") % { date: format_date(@user.created_at) } %></p>
|
||||||
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue