personalized rooms page

This commit is contained in:
Zachary Chai
2016-10-18 13:51:05 -04:00
parent 14ad57d4d1
commit 8693ba5860
8 changed files with 54 additions and 2 deletions

View File

@ -5,3 +5,9 @@
// Bootstrap
@import "bootstrap-sprockets";
@import "bootstrap";
.room {
.room-link {
margin: 0 auto;
}
}

View File

@ -5,4 +5,17 @@ class LandingController < ApplicationController
@meeting_token = params[:id] || @meeting_token = rand.to_s[2..10]
@meeting_url = meeting_url(@meeting_token)
end
def room
@room_name = params[:name]
@user = User.find_by(username: @room_name)
if @user.nil?
redirect_to root_path
end
end
def admin?
@user == current_user
end
helper_method :admin?
end

View File

@ -2,9 +2,9 @@ class SessionsController < ApplicationController
def create
@user = User.from_omniauth(request.env['omniauth.auth'])
session[:user_id] = @user.id
redirect_to controller: 'landing', action: 'room', name: @user.username
rescue => e
logger.error "Error authenticating via omniauth: #{e}"
ensure
redirect_to root_path
end

View File

@ -2,8 +2,13 @@ class User < ApplicationRecord
def self.from_omniauth(auth_hash)
user = find_or_create_by(uid: auth_hash['uid'], provider: auth_hash['provider'])
user.username = self.send("#{auth_hash['provider']}_username", auth_hash) rescue nil
user.name = auth_hash['info']['name']
user.save!
user
end
def self.twitter_username(auth_hash)
auth_hash['info']['nickname']
end
end

View File

@ -0,0 +1,19 @@
<div class="page-wrapper room">
<div class="row">
<div class="col-sm-2 col-sm-offset-10">
<% if admin? %>
<span class="user"><%= current_user.name %></span>
<%= link_to "Logout", "/logout" %>
<% else %>
<%= link_to "Login", "/auth/twitter" %>
<% end %>
</div>
</div>
<div class="row">
<div class="col-sm-4 col-sm-offset-4">
<div class="room-link">
Room Link: <%= link_to "/rooms/#{@room_name}", "/rooms/#{@room_name}" %>
</div>
</div>
</div>
</div>