Create basic User index show
This commit is contained in:
parent
6edf8288fa
commit
ef0c9e69a0
@ -3,8 +3,8 @@ class UsersController < ApplicationController
|
||||
after_action :verify_authorized
|
||||
|
||||
def index
|
||||
@users = User.all
|
||||
authorize User
|
||||
@users = policy_scope User.all
|
||||
authorize @users
|
||||
end
|
||||
|
||||
def show
|
||||
|
||||
@ -6,12 +6,31 @@ class UserPolicy
|
||||
@user = model
|
||||
end
|
||||
|
||||
class Scope
|
||||
def initialize(user, scope)
|
||||
@user = user
|
||||
@scope = scope
|
||||
end
|
||||
|
||||
def resolve
|
||||
if user.admin?
|
||||
scope.all
|
||||
else
|
||||
scope.where(role: User.roles[:admin])
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
attr_reader :user, :scope
|
||||
end
|
||||
|
||||
def index?
|
||||
@current_user.admin?
|
||||
@current_user.admin? || true
|
||||
end
|
||||
|
||||
def show?
|
||||
@current_user.admin? || @current_user == @user
|
||||
@current_user.admin? || @current_user == @user || @user.admin?
|
||||
end
|
||||
|
||||
def update?
|
||||
|
||||
@ -2,6 +2,7 @@
|
||||
<ul>
|
||||
<li><%= link_to 'Public', root_path, data: { turbo: false } %></li>
|
||||
<li><%= link_to 'Tokens', tokens_path %></li>
|
||||
<li><%= link_to 'People', users_path %></li>
|
||||
<li><%= link_to 'Projects', projects_path %></li>
|
||||
<li><%= link_to 'Doodads', doodads_path, data: { turbo: false } %></li>
|
||||
<% if !request.base_url.match(/pin|my|fireside/) %>
|
||||
|
||||
@ -1,12 +1,16 @@
|
||||
<td>
|
||||
<%= link_to user.email, user %>
|
||||
<%= link_to user.display_name, user %>
|
||||
</td>
|
||||
<td>
|
||||
<%= form_for(user) do |f| %>
|
||||
<%= f.select(:role, User.roles.keys.map {|role| [role.titleize,role]}) %>
|
||||
<%= f.submit 'Change Role', :class => 'button-xs' %>
|
||||
<% if policy(user).update? %>
|
||||
<%= form_for(user) do |f| %>
|
||||
<%= f.select(:role, User.roles.keys.map {|role| [role.titleize,role]}) %>
|
||||
<%= f.submit 'Change Role', :class => 'button-xs' %>
|
||||
<% end %>
|
||||
<% end %>
|
||||
</td>
|
||||
<td>
|
||||
<%= link_to("Delete user", user_path(user), :data => { :confirm => "Are you sure?" }, :method => :delete, :class => 'button-xs') unless user == current_user %>
|
||||
<% if policy(user).destroy? %>
|
||||
<%= link_to("Delete user", user_path(user), :data => { :confirm => "Are you sure?" }, :method => :delete, :class => 'button-xs') unless user == current_user %>
|
||||
<% end %>
|
||||
</td>
|
||||
|
||||
@ -1,3 +1,3 @@
|
||||
<h3>User</h3>
|
||||
<p>Name: <%= @user.name if @user.name %></p>
|
||||
<p>Email: <%= @user.email if @user.email %></p>
|
||||
<p>Name: <%= @user.display_name if @user.display_name %></p>
|
||||
<%# <p>Email: <%= @user.email if @user.email %1></p> %>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user