add users controller and intermediate username step

This commit is contained in:
Zachary Chai
2016-10-19 11:47:37 -04:00
parent d26d4a86bd
commit 015dd7cda4
10 changed files with 95 additions and 8 deletions

View File

@ -19,7 +19,7 @@ class LandingController < ApplicationController
@room_name = params[:name]
@user = User.find_by(username: @room_name)
@meeting_token = @room_name
@resource = params[:resource]
@resource = "rooms"
@resource_url = room_url(@meeting_token)
if @user.nil?
redirect_to root_path

View File

@ -1,8 +1,14 @@
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
if @user.persisted?
session[:user_id] = @user.id
redirect_to controller: 'landing', action: 'room', name: @user.username
else
@user.save!
session[:user_id] = @user.id
redirect_to controller: 'users', action: 'edit', id: @user.id
end
rescue => e
logger.error "Error authenticating via omniauth: #{e}"
redirect_to root_path

View File

@ -0,0 +1,31 @@
class UsersController < ApplicationController
before_action :set_user, only: [:edit, :update]
# GET /users/1/edit
def edit
end
# PATCH/PUT /users/1
# PATCH/PUT /users/1.json
def update
if @user.update(user_params)
redirect_to controller: 'landing', action: 'room', name: @user.username
else
render :edit
end
end
private
# Use callbacks to share common setup or constraints between actions.
def set_user
@user = User.find(params[:id])
if @user.username
raise ActionController::RoutingError.new('Not Found')
end
end
# Never trust parameters from the scary internet, only allow the white list through.
def user_params
params.require(:user).permit(:username)
end
end