forked from External/greenlight
add ability to configure terms and conditions
This commit is contained in:
@ -89,3 +89,9 @@ a {
|
||||
.force-text-normal {
|
||||
color: #495057;
|
||||
}
|
||||
|
||||
.terms {
|
||||
overflow: scroll;
|
||||
height: 55vh;
|
||||
white-space: pre-line;
|
||||
}
|
||||
|
@ -54,7 +54,7 @@ class ApplicationController < ActionController::Base
|
||||
meeting_logout_url: request.base_url + logout_room_path(@room),
|
||||
meeting_recorded: true,
|
||||
moderator_message: "To invite someone to the meeting, send them this link:\n\n
|
||||
#{request.base_url + Rails.configuration.relative_url_root + room_path(@room)}"
|
||||
#{request.base_url + relative_root + room_path(@room)}"
|
||||
}
|
||||
end
|
||||
end
|
||||
|
@ -10,6 +10,6 @@ class MainController < ApplicationController
|
||||
|
||||
def redirect_to_room
|
||||
# If the user is logged in already, move them along to their room.
|
||||
redirect_to room_path(current_user.room.uid) if current_user
|
||||
redirect_to room_path(current_user.room) if current_user
|
||||
end
|
||||
end
|
||||
|
@ -1,5 +1,6 @@
|
||||
class RoomsController < ApplicationController
|
||||
|
||||
before_action :validate_accepted_terms, unless: -> { !Rails.configuration.terms }
|
||||
before_action :find_room, except: :create
|
||||
before_action :verify_room_ownership, except: [:create, :show, :join, :logout]
|
||||
|
||||
@ -159,4 +160,8 @@ class RoomsController < ApplicationController
|
||||
redirect_to root_path
|
||||
end
|
||||
end
|
||||
|
||||
def validate_accepted_terms
|
||||
redirect_to terms_path unless current_user.accepted_terms
|
||||
end
|
||||
end
|
||||
|
@ -73,6 +73,16 @@ class UsersController < ApplicationController
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
# GET /u/terms
|
||||
def terms
|
||||
redirect_to root_path unless current_user
|
||||
|
||||
if params[:accept] == "true"
|
||||
current_user.update_attribute(accepted_terms: true)
|
||||
redirect_to current_user.main_room
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
|
@ -3,7 +3,13 @@ module SessionsHelper
|
||||
# Logs a user into GreenLight.
|
||||
def login(user)
|
||||
session[:user_id] = user.id
|
||||
redirect_to user.main_room
|
||||
|
||||
# If there are not terms, or the user has accepted them, go to their room.
|
||||
if !Rails.configuration.terms || user.accepted_terms then
|
||||
redirect_to user.main_room
|
||||
else
|
||||
redirect_to terms_path
|
||||
end
|
||||
end
|
||||
|
||||
# Logs current user out of GreenLight.
|
||||
|
18
app/views/users/terms.html.erb
Normal file
18
app/views/users/terms.html.erb
Normal file
@ -0,0 +1,18 @@
|
||||
<div class="container mt-5">
|
||||
<div class="col-md-8 offset-2">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h3 class="card-title">Terms and Conditions</h3>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="terms">
|
||||
<p><%= Rails.configuration.terms %></p>
|
||||
</div>
|
||||
<div class="btn-list mt-4 text-right mt-8">
|
||||
<%= button_to "I accept the terms and conditions.", terms_path, params: {accept: true}, class: "btn btn-primary btn-space" %>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
Reference in New Issue
Block a user