bigbluebutton_rails 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +6 -0
- data/.rspec +2 -0
- data/CHANGELOG.rdoc +6 -0
- data/Gemfile +4 -0
- data/Gemfile.lock +111 -0
- data/README.rdoc +147 -0
- data/Rakefile +37 -0
- data/app/controllers/bigbluebutton/rooms_controller.rb +193 -0
- data/app/controllers/bigbluebutton/servers_controller.rb +56 -0
- data/app/models/bigbluebutton_room.rb +16 -0
- data/app/models/bigbluebutton_server.rb +25 -0
- data/app/views/bigbluebutton/rooms/_form.html.erb +41 -0
- data/app/views/bigbluebutton/rooms/edit.html.erb +6 -0
- data/app/views/bigbluebutton/rooms/index.html.erb +34 -0
- data/app/views/bigbluebutton/rooms/join_wait.html.erb +27 -0
- data/app/views/bigbluebutton/rooms/new.html.erb +5 -0
- data/app/views/bigbluebutton/rooms/show.html.erb +35 -0
- data/app/views/bigbluebutton/servers/_form.html.erb +32 -0
- data/app/views/bigbluebutton/servers/edit.html.erb +6 -0
- data/app/views/bigbluebutton/servers/index.html.erb +27 -0
- data/app/views/bigbluebutton/servers/new.html.erb +5 -0
- data/app/views/bigbluebutton/servers/show.html.erb +31 -0
- data/bigbluebutton_rails.gemspec +27 -0
- data/config/locales/en.yml +18 -0
- data/config/routes.rb +2 -0
- data/lib/bigbluebutton_rails.rb +7 -0
- data/lib/bigbluebutton_rails/controller_methods.rb +52 -0
- data/lib/bigbluebutton_rails/rails.rb +11 -0
- data/lib/bigbluebutton_rails/rails/routes.rb +102 -0
- data/lib/bigbluebutton_rails/version.rb +3 -0
- data/lib/generators/bigbluebutton_rails/install_generator.rb +25 -0
- data/lib/generators/bigbluebutton_rails/public_generator.rb +17 -0
- data/lib/generators/bigbluebutton_rails/templates/migration.rb +31 -0
- data/lib/generators/bigbluebutton_rails/templates/public/images/loading.gif +0 -0
- data/lib/generators/bigbluebutton_rails/templates/public/javascripts/heartbeat.js +54 -0
- data/lib/generators/bigbluebutton_rails/templates/public/javascripts/jquery.min.js +16 -0
- data/lib/generators/bigbluebutton_rails/views_generator.rb +18 -0
- data/spec/bigbluebutton_rails_spec.rb +11 -0
- data/spec/controllers/bigbluebutton/rooms_controller_spec.rb +404 -0
- data/spec/controllers/bigbluebutton/servers_controller_spec.rb +78 -0
- data/spec/factories/bigbluebutton_room.rb +8 -0
- data/spec/factories/bigbluebutton_server.rb +6 -0
- data/spec/generators/install_generator_spec.rb +23 -0
- data/spec/generators/public_generator_spec.rb +32 -0
- data/spec/generators/views_generator_spec.rb +52 -0
- data/spec/models/bigbluebutton_room_spec.rb +48 -0
- data/spec/models/bigbluebutton_server_spec.rb +83 -0
- data/spec/rails_app/.gitignore +3 -0
- data/spec/rails_app/Rakefile +7 -0
- data/spec/rails_app/app/controllers/application_controller.rb +16 -0
- data/spec/rails_app/app/controllers/space_controller.rb +8 -0
- data/spec/rails_app/app/controllers/user_controller.rb +8 -0
- data/spec/rails_app/app/helpers/application_helper.rb +2 -0
- data/spec/rails_app/app/views/layouts/application.html.erb +14 -0
- data/spec/rails_app/app/views/space/index.html.erb +2 -0
- data/spec/rails_app/app/views/space/show.html.erb +2 -0
- data/spec/rails_app/app/views/user/index.html.erb +2 -0
- data/spec/rails_app/app/views/user/show.html.erb +2 -0
- data/spec/rails_app/config.ru +4 -0
- data/spec/rails_app/config/application.rb +45 -0
- data/spec/rails_app/config/boot.rb +10 -0
- data/spec/rails_app/config/database.yml +22 -0
- data/spec/rails_app/config/environment.rb +5 -0
- data/spec/rails_app/config/environments/development.rb +26 -0
- data/spec/rails_app/config/environments/production.rb +49 -0
- data/spec/rails_app/config/environments/test.rb +35 -0
- data/spec/rails_app/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/rails_app/config/initializers/inflections.rb +10 -0
- data/spec/rails_app/config/initializers/mime_types.rb +5 -0
- data/spec/rails_app/config/initializers/secret_token.rb +7 -0
- data/spec/rails_app/config/initializers/session_store.rb +8 -0
- data/spec/rails_app/config/locales/en.yml +5 -0
- data/spec/rails_app/config/routes.rb +14 -0
- data/spec/rails_app/db/seeds.rb +7 -0
- data/spec/rails_app/doc/README_FOR_APP +2 -0
- data/spec/rails_app/public/404.html +26 -0
- data/spec/rails_app/public/422.html +26 -0
- data/spec/rails_app/public/500.html +26 -0
- data/spec/rails_app/public/favicon.ico +0 -0
- data/spec/rails_app/public/images/rails.png +0 -0
- data/spec/rails_app/public/index.html +239 -0
- data/spec/rails_app/public/javascripts/application.js +2 -0
- data/spec/rails_app/public/javascripts/controls.js +965 -0
- data/spec/rails_app/public/javascripts/dragdrop.js +974 -0
- data/spec/rails_app/public/javascripts/effects.js +1123 -0
- data/spec/rails_app/public/javascripts/prototype.js +6001 -0
- data/spec/rails_app/public/javascripts/rails.js +191 -0
- data/spec/rails_app/public/robots.txt +5 -0
- data/spec/rails_app/public/stylesheets/.gitkeep +0 -0
- data/spec/rails_app/public/stylesheets/scaffold.css +56 -0
- data/spec/rails_app/script/rails +6 -0
- data/spec/rails_app/vendor/plugins/.gitkeep +0 -0
- data/spec/routing/bigbluebutton/rooms_routing_spec.rb +89 -0
- data/spec/routing/bigbluebutton/servers_routing_spec.rb +38 -0
- data/spec/spec_helper.rb +37 -0
- data/spec/support/matchers/have_same_attributes_as.rb +10 -0
- metadata +234 -0
@@ -0,0 +1,56 @@
|
|
1
|
+
class Bigbluebutton::ServersController < ApplicationController
|
2
|
+
|
3
|
+
respond_to :html
|
4
|
+
|
5
|
+
def index
|
6
|
+
respond_with(@servers = BigbluebuttonServer.all)
|
7
|
+
end
|
8
|
+
|
9
|
+
def show
|
10
|
+
respond_with(@server = BigbluebuttonServer.find(params[:id]))
|
11
|
+
end
|
12
|
+
|
13
|
+
def new
|
14
|
+
respond_with(@server = BigbluebuttonServer.new)
|
15
|
+
end
|
16
|
+
|
17
|
+
def edit
|
18
|
+
respond_with(@server = BigbluebuttonServer.find(params[:id]))
|
19
|
+
end
|
20
|
+
|
21
|
+
def create
|
22
|
+
@server = BigbluebuttonServer.new(params[:bigbluebutton_server])
|
23
|
+
|
24
|
+
respond_with @server do |format|
|
25
|
+
if @server.save
|
26
|
+
format.html {
|
27
|
+
message = t('bigbluebutton_rails.servers.notice.create.success')
|
28
|
+
redirect_to(@server, :notice => message)
|
29
|
+
}
|
30
|
+
else
|
31
|
+
format.html { render :action => "new" }
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def update
|
37
|
+
@server = BigbluebuttonServer.find(params[:id])
|
38
|
+
|
39
|
+
respond_with @server do |format|
|
40
|
+
if @server.update_attributes(params[:bigbluebutton_server])
|
41
|
+
format.html {
|
42
|
+
message = t('bigbluebutton_rails.servers.notice.update.success')
|
43
|
+
redirect_to(@server, :notice => message)
|
44
|
+
}
|
45
|
+
else
|
46
|
+
format.html { render :action => "edit" }
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
def destroy
|
52
|
+
@server = BigbluebuttonServer.find(params[:id])
|
53
|
+
@server.destroy
|
54
|
+
redirect_to(bigbluebutton_servers_url)
|
55
|
+
end
|
56
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
class BigbluebuttonRoom < ActiveRecord::Base
|
2
|
+
belongs_to :server, :class_name => 'BigbluebuttonServer'
|
3
|
+
belongs_to :owner, :polymorphic => true
|
4
|
+
|
5
|
+
validates :server_id, :presence => true
|
6
|
+
validates :meeting_id, :presence => true, :uniqueness => true,
|
7
|
+
:length => { :minimum => 1, :maximum => 100 }
|
8
|
+
validates :name, :presence => true, :uniqueness => true,
|
9
|
+
:length => { :minimum => 1, :maximum => 150 }
|
10
|
+
validates :attendee_password, :length => { :maximum => 50 }
|
11
|
+
validates :moderator_password, :length => { :maximum => 50 }
|
12
|
+
validates :welcome_msg, :length => { :maximum => 250 }
|
13
|
+
|
14
|
+
attr_accessible :name, :server_id, :meeting_id, :attendee_password,
|
15
|
+
:moderator_password, :welcome_msg
|
16
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'bigbluebutton-api'
|
2
|
+
|
3
|
+
class BigbluebuttonServer < ActiveRecord::Base
|
4
|
+
has_many :rooms, :class_name => 'BigbluebuttonRoom', :foreign_key => 'server_id',
|
5
|
+
:dependent => :destroy
|
6
|
+
|
7
|
+
validates :name, :presence => true, :length => { :minimum => 1, :maximum => 500 }
|
8
|
+
|
9
|
+
validates :url, :presence => true, :uniqueness => true, :length => { :maximum => 500 }
|
10
|
+
validates :url, :format => { :with => /http:\/\/.*\/bigbluebutton\/api/,
|
11
|
+
:message => 'URL should have the pattern http://<server>/bigbluebutton/api' }
|
12
|
+
|
13
|
+
validates :salt, :presence => true, :length => { :minimum => 1, :maximum => 500 }
|
14
|
+
|
15
|
+
validates :version, :presence => true, :inclusion => { :in => ['0.64', '0.7'] }
|
16
|
+
|
17
|
+
def api
|
18
|
+
if @api.nil?
|
19
|
+
@api = BigBlueButton::BigBlueButtonApi.new(self.url, self.salt,
|
20
|
+
self.version.to_s, false)
|
21
|
+
end
|
22
|
+
@api
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
<% if @room.new_record? %>
|
2
|
+
<% url = bigbluebutton_server_rooms_path(@server) %>
|
3
|
+
<% else %>
|
4
|
+
<% url = bigbluebutton_server_room_path(@server, @room) %>
|
5
|
+
<% end %>
|
6
|
+
<%= form_for [@server, @room], :url => url do |f| %>
|
7
|
+
<% if @room.errors.any? %>
|
8
|
+
<div id="error_explanation">
|
9
|
+
<h2><%= pluralize(@room.errors.count, "error") %> prohibited this bigbluebutton_room from being saved:</h2>
|
10
|
+
<ul>
|
11
|
+
<% @room.errors.full_messages.each do |msg| %>
|
12
|
+
<li><%= msg %></li>
|
13
|
+
<% end %>
|
14
|
+
</ul>
|
15
|
+
</div>
|
16
|
+
<% end %>
|
17
|
+
|
18
|
+
<div class="field">
|
19
|
+
<%= f.label :meeting_id %><br />
|
20
|
+
<%= f.text_field :meeting_id %>
|
21
|
+
</div>
|
22
|
+
<div class="field">
|
23
|
+
<%= f.label :name %><br />
|
24
|
+
<%= f.text_field :name %>
|
25
|
+
</div>
|
26
|
+
<div class="field">
|
27
|
+
<%= f.label :attendee_password %><br />
|
28
|
+
<%= f.text_field :attendee_password %>
|
29
|
+
</div>
|
30
|
+
<div class="field">
|
31
|
+
<%= f.label :moderator_password %><br />
|
32
|
+
<%= f.text_field :moderator_password %>
|
33
|
+
</div>
|
34
|
+
<div class="field">
|
35
|
+
<%= f.label :welcome_msg %><br />
|
36
|
+
<%= f.text_field :welcome_msg %>
|
37
|
+
</div>
|
38
|
+
<div class="actions">
|
39
|
+
<%= f.submit %>
|
40
|
+
</div>
|
41
|
+
<% end %>
|
@@ -0,0 +1,34 @@
|
|
1
|
+
<h1>Listing rooms</h1>
|
2
|
+
|
3
|
+
<table>
|
4
|
+
<tr>
|
5
|
+
<th>Server ID</th>
|
6
|
+
<th>Meeting ID</th>
|
7
|
+
<th>Meeting Name</th>
|
8
|
+
<th>Attendee Password</th>
|
9
|
+
<th>Moderator Password</th>
|
10
|
+
<th>Welcome Message</th>
|
11
|
+
<th></th>
|
12
|
+
<th></th>
|
13
|
+
<th></th>
|
14
|
+
</tr>
|
15
|
+
|
16
|
+
<% @rooms.each do |room| %>
|
17
|
+
<tr>
|
18
|
+
<td><%= room.server.id %></td>
|
19
|
+
<td><%= room.meeting_id %></td>
|
20
|
+
<td><%= room.name %></td>
|
21
|
+
<td><%= room.attendee_password %></td>
|
22
|
+
<td><%= room.moderator_password %></td>
|
23
|
+
<td><%= room.welcome_msg %></td>
|
24
|
+
<td><%= link_to 'Show', bigbluebutton_server_room_path(@server, room) %></td>
|
25
|
+
<td><%= link_to 'Edit', edit_bigbluebutton_server_room_path(@server, room) %></td>
|
26
|
+
<td><%= link_to 'Destroy', bigbluebutton_server_room_path(@server, room), :confirm => 'Are you sure?', :method => :delete %></td>
|
27
|
+
</tr>
|
28
|
+
<% end %>
|
29
|
+
|
30
|
+
</table>
|
31
|
+
|
32
|
+
<br />
|
33
|
+
|
34
|
+
<%= link_to 'New Room', new_bigbluebutton_server_room_path %>
|
@@ -0,0 +1,27 @@
|
|
1
|
+
<script type="text/javascript">
|
2
|
+
|
3
|
+
function heartbeat_callback() {
|
4
|
+
// TODO Should parse the json to get the response
|
5
|
+
if ($("#room_heartbeat_div").text().search("true") > 0) {
|
6
|
+
window.location.reload();
|
7
|
+
}
|
8
|
+
}
|
9
|
+
|
10
|
+
$(document).ready(function(){
|
11
|
+
$.jheartbeat.set({
|
12
|
+
url: "<%= running_bigbluebutton_server_room_url(@server, @room, :format => 'json') %>",
|
13
|
+
delay: 3000,
|
14
|
+
div_id: "room_heartbeat_div"
|
15
|
+
}, function () {
|
16
|
+
heartbeat_callback();
|
17
|
+
});
|
18
|
+
});
|
19
|
+
|
20
|
+
</script>
|
21
|
+
|
22
|
+
<h1>Meeting <%= @room.name %></h1>
|
23
|
+
|
24
|
+
<%= image_tag "loading.gif" %>
|
25
|
+
<p>The meeting has not started yet, you must wait for the moderator to join.</p>
|
26
|
+
<p>Your browser will automatically refresh and join the meeting when it starts.</p>
|
27
|
+
|
@@ -0,0 +1,35 @@
|
|
1
|
+
<h1>Room:</h1>
|
2
|
+
|
3
|
+
<p id="notice"><%= notice %></p>
|
4
|
+
|
5
|
+
<p>
|
6
|
+
<b>Server ID:</b>
|
7
|
+
<%= @room.server.id %>
|
8
|
+
</p>
|
9
|
+
<p>
|
10
|
+
<b>Meeting ID:</b>
|
11
|
+
<%= @room.meeting_id %>
|
12
|
+
</p>
|
13
|
+
<p>
|
14
|
+
<b>Meeting Name:</b>
|
15
|
+
<%= @room.name %>
|
16
|
+
</p>
|
17
|
+
<p>
|
18
|
+
<b>Attendee Password:</b>
|
19
|
+
<%= @room.attendee_password %>
|
20
|
+
</p>
|
21
|
+
<p>
|
22
|
+
<b>Moderator Password:</b>
|
23
|
+
<%= @room.moderator_password %>
|
24
|
+
</p>
|
25
|
+
<p>
|
26
|
+
<b>Welcome Message:</b>
|
27
|
+
<%= @room.welcome_msg %>
|
28
|
+
</p>
|
29
|
+
|
30
|
+
<%= link_to 'Edit', edit_bigbluebutton_server_room_path(@room.server, @room) %> |
|
31
|
+
<%= link_to 'Back', bigbluebutton_server_rooms_path(@room.server) %>
|
32
|
+
|
33
|
+
<br/>
|
34
|
+
|
35
|
+
<%= link_to 'Join', join_bigbluebutton_server_room_path(@room.server, @room) %>
|
@@ -0,0 +1,32 @@
|
|
1
|
+
<%= form_for(@server) do |f| %>
|
2
|
+
<% if @server.errors.any? %>
|
3
|
+
<div id="error_explanation">
|
4
|
+
<h2><%= pluralize(@server.errors.count, "error") %> prohibited this bigbluebutton_server from being saved:</h2>
|
5
|
+
<ul>
|
6
|
+
<% @server.errors.full_messages.each do |msg| %>
|
7
|
+
<li><%= msg %></li>
|
8
|
+
<% end %>
|
9
|
+
</ul>
|
10
|
+
</div>
|
11
|
+
<% end %>
|
12
|
+
|
13
|
+
<div class="field">
|
14
|
+
<%= f.label :name %><br />
|
15
|
+
<%= f.text_field :name %>
|
16
|
+
</div>
|
17
|
+
<div class="field">
|
18
|
+
<%= f.label :url %><br />
|
19
|
+
<%= f.text_field :url %>
|
20
|
+
</div>
|
21
|
+
<div class="field">
|
22
|
+
<%= f.label :salt %><br />
|
23
|
+
<%= f.text_field :salt %>
|
24
|
+
</div>
|
25
|
+
<div class="field">
|
26
|
+
<%= f.label :version %><br />
|
27
|
+
<%= f.text_field :version %>
|
28
|
+
</div>
|
29
|
+
<div class="actions">
|
30
|
+
<%= f.submit %>
|
31
|
+
</div>
|
32
|
+
<% end %>
|
@@ -0,0 +1,27 @@
|
|
1
|
+
<h1>Listing servers</h1>
|
2
|
+
|
3
|
+
<table>
|
4
|
+
<tr>
|
5
|
+
<th>Name</th>
|
6
|
+
<th>Url</th>
|
7
|
+
<th>Salt</th>
|
8
|
+
<th></th>
|
9
|
+
<th></th>
|
10
|
+
<th></th>
|
11
|
+
</tr>
|
12
|
+
|
13
|
+
<% @servers.each do |server| %>
|
14
|
+
<tr>
|
15
|
+
<td><%= server.name %></td>
|
16
|
+
<td><%= server.url %></td>
|
17
|
+
<td><%= server.salt %></td>
|
18
|
+
<td><%= link_to 'Show', server %></td>
|
19
|
+
<td><%= link_to 'Edit', edit_bigbluebutton_server_path(server) %></td>
|
20
|
+
<td><%= link_to 'Destroy', server, :confirm => 'Are you sure?', :method => :delete %></td>
|
21
|
+
</tr>
|
22
|
+
<% end %>
|
23
|
+
</table>
|
24
|
+
|
25
|
+
<br />
|
26
|
+
|
27
|
+
<%= link_to 'New Server', new_bigbluebutton_server_path %>
|
@@ -0,0 +1,31 @@
|
|
1
|
+
<h1>Server:</h1>
|
2
|
+
|
3
|
+
<p id="notice"><%= notice %></p>
|
4
|
+
|
5
|
+
<p>
|
6
|
+
<b>Name:</b>
|
7
|
+
<%= @server.name %>
|
8
|
+
</p>
|
9
|
+
|
10
|
+
<p>
|
11
|
+
<b>Url:</b>
|
12
|
+
<%= @server.url %>
|
13
|
+
</p>
|
14
|
+
|
15
|
+
<p>
|
16
|
+
<b>Salt:</b>
|
17
|
+
<%= @server.salt %>
|
18
|
+
</p>
|
19
|
+
|
20
|
+
<p>
|
21
|
+
<b>Version:</b>
|
22
|
+
<%= @server.version %>
|
23
|
+
</p>
|
24
|
+
|
25
|
+
|
26
|
+
<%= link_to 'Edit', edit_bigbluebutton_server_path(@server) %> |
|
27
|
+
<%= link_to 'Back', bigbluebutton_servers_path %>
|
28
|
+
|
29
|
+
<br/>
|
30
|
+
|
31
|
+
<%= link_to 'New room', new_bigbluebutton_server_room_path(@server) %>
|
@@ -0,0 +1,27 @@
|
|
1
|
+
$:.push File.expand_path("../lib", __FILE__)
|
2
|
+
require "bigbluebutton_rails/version"
|
3
|
+
|
4
|
+
Gem::Specification.new do |s|
|
5
|
+
s.name = "bigbluebutton_rails"
|
6
|
+
s.version = BigbluebuttonRails::VERSION.dup
|
7
|
+
s.platform = Gem::Platform::RUBY
|
8
|
+
s.summary = "BigBlueButton integration for Ruby on Rails"
|
9
|
+
s.email = "mconf@googlegroups.com"
|
10
|
+
s.homepage = "http://github.com/mconf/bigbluebutton_rails"
|
11
|
+
s.description = "BigBlueButton integration for Ruby on Rails"
|
12
|
+
s.authors = ['Leonardo Crauss Daronco']
|
13
|
+
|
14
|
+
s.files = `git ls-files`.split("\n")
|
15
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
16
|
+
s.require_paths = ["lib"]
|
17
|
+
|
18
|
+
s.add_runtime_dependency("rails", "~> 3.0.3")
|
19
|
+
s.add_runtime_dependency("bigbluebutton-api-ruby", "~> 0.0.8")
|
20
|
+
|
21
|
+
s.add_development_dependency("rspec-rails", "~> 2.5.0")
|
22
|
+
s.add_development_dependency("factory_girl", "~> 1.3.2")
|
23
|
+
s.add_development_dependency("sqlite3-ruby", "~> 1.3.3")
|
24
|
+
s.add_development_dependency("generator_spec", "~> 0.8.2")
|
25
|
+
s.add_development_dependency("shoulda-matchers", "~> 1.0.0.beta")
|
26
|
+
s.add_development_dependency("forgery", "~> 0.3.7")
|
27
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
en:
|
2
|
+
bigbluebutton_rails:
|
3
|
+
bigbluebutton: "BigBlueButton"
|
4
|
+
servers:
|
5
|
+
notice:
|
6
|
+
create:
|
7
|
+
success: "Your server was successfully created."
|
8
|
+
update:
|
9
|
+
success: "Your server was successfully updated."
|
10
|
+
rooms:
|
11
|
+
notice:
|
12
|
+
create:
|
13
|
+
success: "Your room was successfully created."
|
14
|
+
update:
|
15
|
+
success: "Your room was successfully updated."
|
16
|
+
end:
|
17
|
+
success: "The meeting was successfully ended."
|
18
|
+
not_running: "The meeting could not be ended because it is not running."
|
data/config/routes.rb
ADDED
@@ -0,0 +1,52 @@
|
|
1
|
+
module BigbluebuttonRails
|
2
|
+
|
3
|
+
# Module that is automatically included into all controllers.
|
4
|
+
module ControllerMethods
|
5
|
+
|
6
|
+
def self.included(base)
|
7
|
+
base.class_eval do
|
8
|
+
|
9
|
+
# Method used to acquire the user for which the BigBlueButton actions are being
|
10
|
+
# called (e.g. the user creating or joining the room).
|
11
|
+
# Defaults to the user currently logged in, using the method current_user.
|
12
|
+
# If your application has no method current_user or if you want
|
13
|
+
# to change the behavior of this method, just redefine it in your
|
14
|
+
# controller. You may want to do it in the ApplicationController to make it
|
15
|
+
# available to all controllers. For example:
|
16
|
+
#
|
17
|
+
# def bigbluebutton_user
|
18
|
+
# User.where(:bigbluebutton_admin => true).first
|
19
|
+
# end
|
20
|
+
#
|
21
|
+
# Note that BigbluebuttonRails assumes that the returned object has
|
22
|
+
# a method called 'name' that returns the user's full name.
|
23
|
+
def bigbluebutton_user
|
24
|
+
current_user
|
25
|
+
end
|
26
|
+
|
27
|
+
# Returns the role that the current user has in the room 'room'.
|
28
|
+
# Possibilities:
|
29
|
+
# :moderator
|
30
|
+
# :attendee
|
31
|
+
# You may want to redefine this method in your controllers to define
|
32
|
+
# real roles to the users. By default, everyone has moderator permissions.
|
33
|
+
# Redefine it in your ApplicationController to make it available to all
|
34
|
+
# controllers. For example:
|
35
|
+
#
|
36
|
+
# def bigbluebutton_role(@room)
|
37
|
+
# r = Roles.where(:bigbluebutton_room_id => @room.id).
|
38
|
+
# where(:user_id => current_user.id).
|
39
|
+
# first
|
40
|
+
# r.role
|
41
|
+
# end
|
42
|
+
#
|
43
|
+
def bigbluebutton_role(room)
|
44
|
+
:moderator
|
45
|
+
end
|
46
|
+
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
end
|
51
|
+
|
52
|
+
end
|