forked from External/greenlight
Merge pull request #14 from zach-chai/username_step
username validations
This commit is contained in:
commit
201a3ca0f5
|
@ -1,4 +1,10 @@
|
|||
.user {
|
||||
.error {
|
||||
p {
|
||||
font-size: 14px;
|
||||
color: red;
|
||||
}
|
||||
}
|
||||
.description {
|
||||
p {
|
||||
font-size: 14px;
|
||||
|
|
|
@ -22,15 +22,13 @@ class LandingController < ApplicationController
|
|||
render_meeting
|
||||
end
|
||||
|
||||
def room
|
||||
render_room
|
||||
end
|
||||
|
||||
def admin?
|
||||
@user == current_user
|
||||
end
|
||||
helper_method :admin?
|
||||
|
||||
private
|
||||
|
||||
def render_meeting
|
||||
@resource = params[:resource]
|
||||
@meeting_token = params[:id] || @meeting_token = helpers.new_meeting_token
|
||||
|
@ -47,5 +45,5 @@ class LandingController < ApplicationController
|
|||
end
|
||||
render :action => 'room'
|
||||
end
|
||||
|
||||
|
||||
end
|
||||
|
|
|
@ -3,7 +3,7 @@ class SessionsController < ApplicationController
|
|||
@user = User.from_omniauth(request.env['omniauth.auth'])
|
||||
if @user.persisted?
|
||||
session[:user_id] = @user.id
|
||||
redirect_to controller: 'landing', action: 'room', id: @user.username
|
||||
redirect_to controller: 'landing', action: 'index', id: @user.username, resource: 'rooms'
|
||||
else
|
||||
@user.save!
|
||||
session[:user_id] = @user.id
|
||||
|
|
|
@ -9,8 +9,9 @@ class UsersController < ApplicationController
|
|||
# PATCH/PUT /users/1.json
|
||||
def update
|
||||
if @user.update(user_params)
|
||||
redirect_to controller: 'landing', action: 'room', name: @user.username
|
||||
redirect_to controller: 'landing', action: 'index', id: @user.username, resource: 'rooms'
|
||||
else
|
||||
@error = @user.errors.first[1] rescue nil
|
||||
render :edit
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,6 +1,10 @@
|
|||
class User < ApplicationRecord
|
||||
|
||||
validates :username, uniqueness: true
|
||||
validates :username,
|
||||
uniqueness: { message: "this username is taken" },
|
||||
format: { with: /\A^[0-9a-z-_]+\Z/,
|
||||
message: "Only allows lowercase alphanumeric characters with dashes and underscores",
|
||||
allow_blank: true }
|
||||
|
||||
def self.from_omniauth(auth_hash)
|
||||
user = find_or_initialize_by(uid: auth_hash['uid'], provider: auth_hash['provider'])
|
||||
|
|
|
@ -7,7 +7,11 @@
|
|||
<% if !current_user.nil? %>
|
||||
<span class="user">Hello <%= current_user.name %></span>
|
||||
<%= link_to "Logout", user_logout_url() %>
|
||||
<div><%= link_to 'Personal Room', current_user.room_url %></div>
|
||||
<% if current_user.username %>
|
||||
<div><%= link_to 'Personal Room', current_user.room_url %></div>
|
||||
<% else %>
|
||||
<div><%= link_to 'Set Username', edit_user_path(current_user) %></div>
|
||||
<% end %>
|
||||
<% end %>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -8,6 +8,9 @@
|
|||
</div>
|
||||
<%= f.submit class: "btn btn-success", value: "Save" %>
|
||||
<% end %>
|
||||
<div class="error">
|
||||
<p><%= error %></p>
|
||||
</div>
|
||||
<div class="description">
|
||||
<p>This username will be used to identify your personal room</p>
|
||||
</div>
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
<div class="page-wrapper user edit">
|
||||
<%= render 'form', user: @user %>
|
||||
<%= render 'form', user: @user, error: @error %>
|
||||
</div>
|
||||
|
|
Loading…
Reference in New Issue