diff --git a/app/controllers/rooms_controller.rb b/app/controllers/rooms_controller.rb index af9880d9..0a2fa76f 100644 --- a/app/controllers/rooms_controller.rb +++ b/app/controllers/rooms_controller.rb @@ -16,6 +16,7 @@ class RoomsController < ApplicationController @rooms = Room.public_rooms @message = Message.new @messages = @room.messages + @new_room = Room.new render "index" end diff --git a/app/policies/message_policy.rb b/app/policies/message_policy.rb index 15cc04e1..ef01e147 100644 --- a/app/policies/message_policy.rb +++ b/app/policies/message_policy.rb @@ -35,22 +35,22 @@ class MessagePolicy end def new? - @user.admin? + @user.signed_in? end def create? - @user.admin? + @user.signed_in? end def edit? - @user.admin? + @user.admin? || @user == @message.user end def update? - @user.admin? + @user.admin? || @user == @message.user end def destroy? - @user.admin? + @user.admin? || @user == @message.user end end diff --git a/app/policies/room_policy.rb b/app/policies/room_policy.rb index 576c4cc4..ec58916c 100644 --- a/app/policies/room_policy.rb +++ b/app/policies/room_policy.rb @@ -35,22 +35,22 @@ class RoomPolicy end def new? - @user.admin? + @user.admin? || @user.signed_in? end def create? - @user.admin? + @user.admin? || @user.signed_in? end def edit? - @user.admin? + @user.admin? || @user == @room.user end def update? - @user.admin? + @user.admin? || @user == @room.user end def destroy? - @user.admin? + @user.admin? || @user == @room.user end end diff --git a/app/views/layouts/_navigation_links.html.erb b/app/views/layouts/_navigation_links.html.erb index 111d6e9c..ecbc14bf 100644 --- a/app/views/layouts/_navigation_links.html.erb +++ b/app/views/layouts/_navigation_links.html.erb @@ -14,6 +14,9 @@ <% if policy(:table).index? %>
  • <%= link_to 'Tables', tables_path %>
  • <% end %> + <% if policy(:room).index? %> +
  • <%= link_to 'Chat', rooms_path %>
  • + <% end %> <% if current_user.signed_in? %> <% if current_user.admin? %>
  • <%= link_to 'Users', users_path %>
  • diff --git a/app/views/layouts/_new_room_form.html.haml b/app/views/layouts/_new_room_form.html.haml index 29e25881..d21a6b24 100644 --- a/app/views/layouts/_new_room_form.html.haml +++ b/app/views/layouts/_new_room_form.html.haml @@ -1,3 +1,3 @@ -= form_with(model: @new_room, remote: true) do |f| += form_with(model: @new_room, remote: true, url: rooms_path) do |f| = f.text_field :name, class: "form-control", autocomplete: 'off' = f.submit data: { disable_with: false } diff --git a/app/views/rooms/index.html.haml b/app/views/rooms/index.html.haml index d81fde30..0bed9e5e 100644 --- a/app/views/rooms/index.html.haml +++ b/app/views/rooms/index.html.haml @@ -5,7 +5,11 @@ .contain #messages = render @messages - = render partial: 'layouts/new_message_form' + - if current_user.signed_in? + = render partial: 'layouts/new_message_form' + - else + = link_to "Sign in", new_session_path(current_user) + to join the chat %h1 Rooms index