diff --git a/app/controllers/management/users_controller.rb b/app/controllers/management/users_controller.rb index f234044d51248c96d95a21ce73c54be9e1ecdaec..f8b9770f5562c484bec2a25b554bdd1947cf1ef0 100644 --- a/app/controllers/management/users_controller.rb +++ b/app/controllers/management/users_controller.rb @@ -1,9 +1,9 @@ class Management::UsersController < ManagementController - before_action :set_user, only: [:show, :edit, :update, :destroy] + before_action :set_user, only: [:show, :edit, :update, :destroy, :change_roles] before_action :set_roles, only: [:new, :edit] def index - @users = user_repository.all + @users = User.all end @@ -25,9 +25,9 @@ class Management::UsersController < ManagementController # POST /users # POST /users.json def create + @user = User.new(user_params) @user.roles.ids = Role.all.ids - respond_to do |format| if user_repository.save @user @@ -62,8 +62,11 @@ class Management::UsersController < ManagementController end def change_roles - @user = User.find_by(id: params[:user.id]) - @user.roles = params[:role_ids] + @user.roles = [] + @user.roles << Role.find_by_id(params[:role_id]) + respond_to do |format| + format.html {redirect_to :back, notice: "Usuário #{@user.name} definido como #{@user.roles[0].name}"} + end end private diff --git a/app/views/management/users/_checkbox.html.erb b/app/views/management/users/_checkbox.html.erb index 292226175382982c65edebaca6419a5deff6a826..53eecd0e8ee9fe1e076825bc8aca3a61035a402e 100644 --- a/app/views/management/users/_checkbox.html.erb +++ b/app/views/management/users/_checkbox.html.erb @@ -16,6 +16,9 @@ <div align="center" class="ls-btn-primary"> <%= f.submit "Salvar" %> <%= link_to "Fechar", class:"btn-success" %> - </div> + + + +</div> <%end%> diff --git a/app/views/management/users/admins.html.erb b/app/views/management/users/admins.html.erb index 2fd58c0a1003189cc0e46b17a48637cf8193fc5d..9bcef566211fa193cf3092ea74b9b65fdbb33dd8 100644 --- a/app/views/management/users/admins.html.erb +++ b/app/views/management/users/admins.html.erb @@ -1,8 +1,18 @@ -<h1 class="ls-title-intro ls-ico-users">Adminstradores</h1> +<h1 class="ls-title-intro ls-ico-users">Administradores</h1> <a href="#" class="ls-btn-primary" aria-expanded="false" role="combobox">Cadastrar novo</a> + +<% admins = Array.new %> +<% @users = User.all%> +<% @users.all.each do |user|%> + <% admins << user if user.roles[0].name == "admin" %> +<% end %> +<% if admins[0].nil? %> + <BR><BR><h3>Não há adminstradores cadastrados</h3> +<% else %> + <div class="ls-box-filter"> <form action="" class="ls-form ls-form-inline ls-float-left"> <label class="ls-label col-md-6 col-sm-8"> @@ -21,7 +31,7 @@ <form action="" class="ls-form ls-form-inline ls-float-right"> <label class="ls-label" role="search"> <b class="ls-label-text ls-hidden-accessible">Nome do Administrador</b> - <input type="text" id="q" name="q" aria-label="Faça sua busca por admnistrador" placeholder="Nome do administrador" required="" class="ls-field-sm"> + <input type="text" id="q" name="q" aria-label="Faça sua busca por administrador" placeholder="Nome do adminstrador" required="" class="ls-field-sm"> </label> <div class="ls-actions-btn"> @@ -41,34 +51,31 @@ </thead> <tbody> - <% @admins = @users.all.find_by(role: "admin") %> - <% @admins.each do |a| %> - <tr> - <td> - <a href="#"><%= a.name %></a> - - <% a.each do |r| %> - <span class="ls-tag hidden-xs"><%= a.name %></span> - <% end %> - </td> - <td class="ls-txt-center hidden-xs">Ativo - <small class="ls-display-block">último acesso <%= a.last_sign_in_at %></small> - </td> - <td class="ls-txt-center"> - <%= a.email %> - </td> - <td class="ls-txt-right ls-regroup"> - <%= link_to 'Administrar', edit_management_user_path(a), {class: 'ls-btn ls-btn-sm', aria: {expanded: false}, role: 'combobox'} %> - <%= link_to 'Excluir', management_user_path(a), {method: :delete, data: {confirm: 'Tem certeza que deseja excluir?'}, title: 'Apagar usuário', class: 'ls-color-danger', role: 'option'} %> - <div data-ls-module="dropdown" class="ls-dropdown ls-pos-right"> - <a href="#" class="ls-btn ls-btn-sm" aria-expanded="false" role="combobox"></a> - <ul class="ls-dropdown-nav" aria-hidden="true"> - <%= render 'checkbox'%> - </ul> - </div> - - </td> - </tr> + <% admins.each do |c| %> + <tr> + <td> + <a href="#"><%= c.name %></a> + <span class="ls-tag hidden-xs"><%= c.roles[0].name %></span> + </td> + <td class="ls-txt-center hidden-xs">Ativo + <small class="ls-display-block">último acesso <%= c.last_sign_in_at %></small> + </td> + <td class="ls-txt-center"> + <%= c.email %> + </td> + <td class="ls-txt-right ls-regroup"> + <%= link_to 'Administrar', edit_management_user_path(c), {class: 'ls-btn ls-btn-sm', aria: {expanded: false}, role: 'combobox'} %> + <%= link_to 'Excluir', management_user_path(c), {method: :delete, data: {confirm: 'Tem certeza que deseja excluir?'}, title: 'Apagar usuário', class: 'ls-btn ls-btn-sm', role: 'option'} %> + <div data-ls-module="dropdown" class="ls-dropdown ls-pos-right"> + <a href="#" class="ls-btn ls-btn-sm" aria-expanded="false" role="combobox">NÃvel</a> + <ul class="ls-dropdown-nav" aria-hidden="true"> + <% Role.all.each do |r| %> + <li><%= link_to "Definir como #{r.name}", change_roles_management_user_path( :id => c.id, :role_id => r.id),:method => :post %></li> + <% end %> + </ul> + </div> + </td> + </tr> <% end %> </tbody> @@ -100,3 +107,4 @@ </label> </div> </div> +<% end %> diff --git a/app/views/management/users/curators.html.erb b/app/views/management/users/curators.html.erb index 06a52748115997dd3d6ba647de43387db3f54176..7e8f6f0837591f5f648361b38b36d5b7c7dc1fef 100644 --- a/app/views/management/users/curators.html.erb +++ b/app/views/management/users/curators.html.erb @@ -3,6 +3,16 @@ <a href="#" class="ls-btn-primary" aria-expanded="false" role="combobox">Cadastrar novo</a> + +<% curators = Array.new %> +<% @users = User.all%> +<% @users.all.each do |user|%> + <% curators << user if user.roles[0].name == "curator" %> +<% end %> +<% if curators[0].nil? %> + <BR><BR><h3>Não há curadores cadastrados</h3> +<% else %> + <div class="ls-box-filter"> <form action="" class="ls-form ls-form-inline ls-float-left"> <label class="ls-label col-md-6 col-sm-8"> @@ -41,34 +51,31 @@ </thead> <tbody> - <% @curators = @users.all.find_by(role: "curator") %> - <% @curators.each do |c| %> - <tr> - <td> - <a href="#"><%= c.name %></a> - - <% c.each do |r| %> - <span class="ls-tag hidden-xs"><%= c.name %></span> - <% end %> - </td> - <td class="ls-txt-center hidden-xs">Ativo - <small class="ls-display-block">último acesso <%= c.last_sign_in_at %></small> - </td> - <td class="ls-txt-center"> - <%= c.email %> - </td> - <td class="ls-txt-right ls-regroup"> - <%= link_to 'Administrar', edit_management_user_path(c), {class: 'ls-btn ls-btn-sm', aria: {expanded: false}, role: 'combobox'} %> - <%= link_to 'Excluir', management_user_path(c), {method: :delete, data: {confirm: 'Tem certeza que deseja excluir?'}, title: 'Apagar usuário', class: 'ls-color-danger', role: 'option'} %> - <div data-ls-module="dropdown" class="ls-dropdown ls-pos-right"> - <a href="#" class="ls-btn ls-btn-sm" aria-expanded="false" role="combobox"></a> - <ul class="ls-dropdown-nav" aria-hidden="true"> - <%= render 'checkbox'%> - </ul> - </div> - - </td> - </tr> + <% curators.each do |c| %> + <tr> + <td> + <a href="#"><%= c.name %></a> + <span class="ls-tag hidden-xs"><%= c.roles[0].name %></span> + </td> + <td class="ls-txt-center hidden-xs">Ativo + <small class="ls-display-block">último acesso <%= c.last_sign_in_at %></small> + </td> + <td class="ls-txt-center"> + <%= c.email %> + </td> + <td class="ls-txt-right ls-regroup"> + <%= link_to 'Administrar', edit_management_user_path(c), {class: 'ls-btn ls-btn-sm', aria: {expanded: false}, role: 'combobox'} %> + <%= link_to 'Excluir', management_user_path(c), {method: :delete, data: {confirm: 'Tem certeza que deseja excluir?'}, title: 'Apagar usuário', class: 'ls-btn ls-btn-sm', role: 'option'} %> + <div data-ls-module="dropdown" class="ls-dropdown ls-pos-right"> + <a href="#" class="ls-btn ls-btn-sm" aria-expanded="false" role="combobox">NÃvel</a> + <ul class="ls-dropdown-nav" aria-hidden="true"> + <% Role.all.each do |r| %> + <li><%= link_to "Definir como #{r.name}", change_roles_management_user_path( :id => c.id, :role_id => r.id),:method => :post %></li> + <% end %> + </ul> + </div> + </td> + </tr> <% end %> </tbody> @@ -100,3 +107,4 @@ </label> </div> </div> +<% end %> diff --git a/app/views/management/users/index.html.erb b/app/views/management/users/index.html.erb index 39471d937521285ad6105df6be323bc44a09679e..9cdbe55d7662201a27f160891e6dac2c0f080f38 100644 --- a/app/views/management/users/index.html.erb +++ b/app/views/management/users/index.html.erb @@ -47,7 +47,7 @@ <a href="#"><%= u.name %></a> <% u.roles.each do |r| %> - <span class="ls-tag hidden-xs"><%= u.name %></span> + <span class="ls-tag hidden-xs"><%= r.name %></span> <% end %> </td> <td class="ls-txt-center hidden-xs">Ativo @@ -57,13 +57,16 @@ <%= u.email %> </td> <td class="ls-txt-right ls-regroup"> + <%= link_to 'Administrar', edit_management_user_path(u), {class: 'ls-btn ls-btn-sm', aria: {expanded: false}, role: 'combobox'} %> - <%= link_to 'Excluir', management_user_path(u), {method: :delete, data: {confirm: 'Tem certeza que deseja excluir?'}, title: 'Apagar usuário', class: 'ls-color-danger', role: 'option'} %> + <%= link_to 'Excluir', management_user_path(u), {method: :delete, data: {confirm: 'Tem certeza que deseja excluir?'}, title: 'Apagar usuário', class: 'ls-btn ls-btn-sm', role: 'option'} %> <div data-ls-module="dropdown" class="ls-dropdown ls-pos-right"> - <a href="#" class="ls-btn ls-btn-sm" aria-expanded="false" role="combobox"></a> - <ul class="ls-dropdown-nav" aria-hidden="true"> + <a href="#" class="ls-btn ls-btn-sm" aria-expanded="false" role="combobox">NÃvel</a> + <ul class="ls-dropdown-nav"> <% @user = u %> - <%= render 'checkbox'%> + <% Role.all.each do |r| %> + <li><%= link_to "Definir como #{r.name}", change_roles_management_user_path( :id => u, :role_id => r.id),:method => :post %></li> + <% end %> </ul> </div> diff --git a/app/views/shared/management/_nav_menu.html.erb b/app/views/shared/management/_nav_menu.html.erb index d0d4771c0081723c44365d60045adc66b0270470..d94f2bdf188f7a19bb4fee7f6f4066bc1cd20115 100644 --- a/app/views/shared/management/_nav_menu.html.erb +++ b/app/views/shared/management/_nav_menu.html.erb @@ -18,8 +18,8 @@ <a href="#" class="ls-ico-stats">Usuários e permissões</a> <ul role="menu"> <li><%= link_to "Usuários", management_users_path, class: 'ls-submenu-item' %></li> - <li><%= link_to "Curadores", '#', class: 'ls-submenu-item' %></li> - <li><%= link_to "Administradores", '#', class: 'ls-submenu-item' %></li> + <li><%= link_to "Curadores", curators_management_users_path, class: 'ls-submenu-item' %></li> + <li><%= link_to "Administradores", admins_management_users_path, class: 'ls-submenu-item' %></li> </ul> </li> <li><%= link_to "Denúncias", '#', class: 'ls-ico-bullhorn' %> diff --git a/config/routes.rb b/config/routes.rb index 5292a63702076f8050acd4b7514fbe7d55e03e48..b7c5abc6f94689947aa76fd47707900371c3c04f 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -23,6 +23,10 @@ Rails.application.routes.draw do resource :admin, only: [:create, :destroy] resource :curator, only: [:create, :destroy] + member do + post :change_roles + end + collection do get :curators get :admins