forked from External/greenlight
Add room setting to require moderator approval (#660)
This commit is contained in:
committed by
Jesus Federico
parent
f7c88cfc6a
commit
7b96d5ae41
@ -39,7 +39,7 @@ class RoomsController < ApplicationController
|
||||
@room = Room.new(name: room_params[:name], access_code: room_params[:access_code])
|
||||
@room.owner = current_user
|
||||
@room.room_settings = create_room_settings_string(room_params[:mute_on_join], room_params[:client],
|
||||
room_params[:anyone_can_start])
|
||||
room_params[:require_moderator_approval], room_params[:anyone_can_start])
|
||||
|
||||
if @room.save
|
||||
if room_params[:auto_join] == "1"
|
||||
@ -148,6 +148,7 @@ class RoomsController < ApplicationController
|
||||
room_settings = JSON.parse(@room[:room_settings])
|
||||
opts[:mute_on_start] = room_settings["muteOnStart"] if room_settings["muteOnStart"]
|
||||
opts[:join_via_html5] = room_settings["joinViaHtml5"] if room_settings["joinViaHtml5"]
|
||||
opts[:require_moderator_approval] = room_settings["requireModeratorApproval"]
|
||||
|
||||
begin
|
||||
redirect_to @room.join_path(current_user.name, opts, current_user.uid)
|
||||
@ -203,7 +204,7 @@ class RoomsController < ApplicationController
|
||||
@room.update_attributes(name: params[:room_name] || room_params[:name])
|
||||
elsif update_type.eql? "settings"
|
||||
room_settings_string = create_room_settings_string(room_params[:mute_on_join], room_params[:client],
|
||||
room_params[:anyone_can_start])
|
||||
room_params[:require_moderator_approval], room_params[:anyone_can_start])
|
||||
@room.update_attributes(room_settings: room_settings_string)
|
||||
elsif update_type.eql? "access_code"
|
||||
@room.update_attributes(access_code: room_params[:access_code])
|
||||
@ -211,10 +212,12 @@ class RoomsController < ApplicationController
|
||||
end
|
||||
end
|
||||
|
||||
def create_room_settings_string(mute_res, client_res, start_res)
|
||||
def create_room_settings_string(mute_res, client_res, require_approval_res, start_res)
|
||||
room_settings = {}
|
||||
room_settings["muteOnStart"] = mute_res == "1"
|
||||
|
||||
room_settings["requireModeratorApproval"] = require_approval_res == "1"
|
||||
|
||||
if client_res.eql? "html5"
|
||||
room_settings["joinViaHtml5"] = true
|
||||
elsif client_res.eql? "flash"
|
||||
@ -227,7 +230,8 @@ class RoomsController < ApplicationController
|
||||
end
|
||||
|
||||
def room_params
|
||||
params.require(:room).permit(:name, :auto_join, :mute_on_join, :client, :access_code, :anyone_can_start)
|
||||
params.require(:room).permit(:name, :auto_join, :mute_on_join, :client, :access_code,
|
||||
:require_moderator_approval, :anyone_can_start)
|
||||
end
|
||||
|
||||
# Find the room from the uid.
|
||||
@ -305,6 +309,7 @@ class RoomsController < ApplicationController
|
||||
|
||||
# Check if the user has specified which client to use
|
||||
opts[:join_via_html5] = room_settings["joinViaHtml5"] if room_settings["joinViaHtml5"]
|
||||
opts[:require_moderator_approval] = room_settings["requireModeratorApproval"]
|
||||
|
||||
if current_user
|
||||
redirect_to @room.join_path(current_user.name, opts, current_user.uid)
|
||||
|
Reference in New Issue
Block a user