forked from External/greenlight
Merge branch 'master' of github.com:blindsidenetworks/greenlight
This commit is contained in:
commit
875f2d2a12
|
@ -5,3 +5,9 @@
|
|||
// Bootstrap
|
||||
@import "bootstrap-sprockets";
|
||||
@import "bootstrap";
|
||||
|
||||
.room {
|
||||
.room-link {
|
||||
margin: 0 auto;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -16,4 +16,16 @@ class LandingController < ApplicationController
|
|||
end
|
||||
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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -2,8 +2,17 @@ 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
|
||||
|
||||
def room_url
|
||||
"/rooms/#{username}"
|
||||
end
|
||||
end
|
||||
|
|
|
@ -45,7 +45,17 @@
|
|||
</div>
|
||||
|
||||
<div id="landing_page_footer_oauth_append">
|
||||
<% if current_user.nil? %>
|
||||
<p>You can have a personal URL (with recordings) by signing in below</p>
|
||||
<ul>
|
||||
<li><%= link_to 'Twitter', '/auth/twitter' %></li>
|
||||
<li><%= link_to 'Google', '/auth/google' %></li>
|
||||
</ul>
|
||||
<% else %>
|
||||
<div>Hello <%= current_user.name %></div>
|
||||
<div><%= link_to 'Personal Room', current_user.room_url %></div>
|
||||
<div><%= link_to 'Logout', '/logout' %></div>
|
||||
<% end %>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
@ -53,13 +63,3 @@
|
|||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<% if current_user.nil? %>
|
||||
<ul>
|
||||
<li><%= link_to 'Twitter', '/auth/twitter' %></li>
|
||||
<li><%= link_to 'Google', '/auth/google' %></li>
|
||||
</ul>
|
||||
<% else %>
|
||||
<div>Hello <%= current_user.name %></div>
|
||||
<%= link_to 'Logout', '/logout' %>
|
||||
<% end %>
|
||||
|
|
|
@ -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>
|
|
@ -16,7 +16,7 @@
|
|||
<!-- Header -->
|
||||
<div class='navbar'>
|
||||
<div class='container'>
|
||||
<%= image_tag "bbb-logo.png", :alt => "BigBlueButton Demo", :class => "center-block" %>
|
||||
<%= link_to image_tag("bbb-logo.png", :alt => "BigBlueButton Demo", :class => "center-block"), root_path %>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -5,6 +5,7 @@ Rails.application.routes.draw do
|
|||
get '/meeting(/:id)', to: 'landing#index', as: :landing, :resource => "meeting"
|
||||
get '/auth/:provider/callback', to: 'sessions#create'
|
||||
get '/logout', to: 'sessions#destroy'
|
||||
get '/rooms/:name', to: 'landing#room'
|
||||
|
||||
root to: 'landing#index', :resource => "meeting"
|
||||
# For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
class AddUsernameToUser < ActiveRecord::Migration[5.0]
|
||||
def change
|
||||
add_column :users, :username, :string
|
||||
add_index :users, :username, unique: true
|
||||
end
|
||||
end
|
|
@ -10,7 +10,7 @@
|
|||
#
|
||||
# It's strongly recommended that you check this file into your version control system.
|
||||
|
||||
ActiveRecord::Schema.define(version: 20161017160526) do
|
||||
ActiveRecord::Schema.define(version: 20161017203809) do
|
||||
|
||||
create_table "users", force: :cascade do |t|
|
||||
t.string "provider", null: false
|
||||
|
@ -18,9 +18,11 @@ ActiveRecord::Schema.define(version: 20161017160526) do
|
|||
t.string "name"
|
||||
t.datetime "created_at", null: false
|
||||
t.datetime "updated_at", null: false
|
||||
t.string "username"
|
||||
t.index ["provider", "uid"], name: "index_users_on_provider_and_uid", unique: true
|
||||
t.index ["provider"], name: "index_users_on_provider"
|
||||
t.index ["uid"], name: "index_users_on_uid"
|
||||
t.index ["username"], name: "index_users_on_username", unique: true
|
||||
end
|
||||
|
||||
end
|
||||
|
|
|
@ -1,14 +1,13 @@
|
|||
require 'test_helper'
|
||||
|
||||
class BbbControllerTest < ActionDispatch::IntegrationTest
|
||||
test "should get join" do
|
||||
get bbb_join_url
|
||||
assert_response :success
|
||||
end
|
||||
|
||||
test "should get end" do
|
||||
get bbb_end_url
|
||||
assert_response :success
|
||||
end
|
||||
|
||||
class BbbControllerTest < ActionController::TestCase
|
||||
# test "should get join" do
|
||||
# get :join
|
||||
# assert_response :success
|
||||
# end
|
||||
#
|
||||
# test "should get end" do
|
||||
# get :close
|
||||
# assert_response :success
|
||||
# end
|
||||
end
|
||||
|
|
|
@ -1,8 +1,13 @@
|
|||
require 'test_helper'
|
||||
|
||||
class LandingControllerTest < ActionDispatch::IntegrationTest
|
||||
class LandingControllerTest < ActionController::TestCase
|
||||
test "should get index" do
|
||||
get landing_index_url
|
||||
get :index
|
||||
assert_response :success
|
||||
end
|
||||
|
||||
test "should get room" do
|
||||
get :room, params: { name: 'user1' }
|
||||
assert_response :success
|
||||
end
|
||||
|
||||
|
|
|
@ -1,11 +1,13 @@
|
|||
# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html
|
||||
|
||||
one:
|
||||
provider: MyString
|
||||
uid: MyString
|
||||
name: MyString
|
||||
provider: Twitter
|
||||
uid: <%= SecureRandom.hex(10) %>
|
||||
name: User 1
|
||||
username: user1
|
||||
|
||||
two:
|
||||
provider: MyString
|
||||
uid: MyString
|
||||
name: MyString
|
||||
provider: TWitter
|
||||
uid: <%= SecureRandom.hex(10) %>
|
||||
name: User 2
|
||||
username: user2
|
||||
|
|
Loading…
Reference in New Issue