bigbluebutton_rails 0.0.5 → 0.0.6
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 +2 -0
 - data/.rvmrc +6 -0
 - data/.travis.yml +4 -0
 - data/CHANGELOG.rdoc +9 -0
 - data/Gemfile +18 -0
 - data/Gemfile.lock +85 -65
 - data/README.rdoc +23 -0
 - data/Rakefile +17 -6
 - data/app/controllers/bigbluebutton/rooms_controller.rb +79 -58
 - data/app/controllers/bigbluebutton/servers_controller.rb +41 -24
 - data/app/models/bigbluebutton_room.rb +45 -5
 - data/app/models/bigbluebutton_server.rb +5 -7
 - data/app/views/bigbluebutton/rooms/external.html.erb +24 -0
 - data/app/views/bigbluebutton/rooms/join_mobile.html.erb +1 -1
 - data/app/views/bigbluebutton/servers/_activity_list.html.erb +7 -7
 - data/app/views/bigbluebutton/servers/activity.html.erb +1 -1
 - data/bigbluebutton_rails.gemspec +2 -12
 - data/config/locales/en.yml +3 -0
 - data/lib/bigbluebutton_rails/rails/routes.rb +12 -6
 - data/lib/bigbluebutton_rails/utils.rb +8 -0
 - data/lib/bigbluebutton_rails/version.rb +1 -1
 - data/lib/bigbluebutton_rails.rb +1 -0
 - data/spec/bigbluebutton_rails_spec.rb +13 -0
 - data/spec/controllers/bigbluebutton/rooms_controller_exception_handling_spec.rb +114 -0
 - data/spec/controllers/bigbluebutton/rooms_controller_json_responses_spec.rb +167 -0
 - data/spec/controllers/bigbluebutton/rooms_controller_spec.rb +213 -457
 - data/spec/controllers/bigbluebutton/servers_controller_json_responses_spec.rb +148 -0
 - data/spec/controllers/bigbluebutton/servers_controller_spec.rb +50 -76
 - data/spec/factories/bigbluebutton_room.rb +1 -0
 - data/spec/models/bigbluebutton_room_spec.rb +141 -17
 - data/spec/models/bigbluebutton_server_spec.rb +27 -36
 - data/spec/rails_app/app/controllers/application_controller.rb +4 -3
 - data/spec/rails_app/config/initializers/rack_hotfix.rb +13 -0
 - data/spec/rails_app/features/join_external_bigbluebutton_rooms.feature +19 -0
 - data/spec/rails_app/features/manage_bigbluebutton_rooms.feature +3 -3
 - data/spec/rails_app/features/manage_bigbluebutton_servers.feature +2 -2
 - data/spec/rails_app/features/step_definitions/bigbluebutton_room_steps.rb +29 -3
 - data/spec/rails_app/features/step_definitions/bigbluebutton_server_steps.rb +2 -7
 - data/spec/rails_app/features/step_definitions/common_steps.rb +15 -2
 - data/spec/rails_app/features/step_definitions/web_steps.rb +7 -3
 - data/spec/rails_app/features/support/application_controller.rb +12 -0
 - data/spec/rails_app/features/support/content.rb +10 -0
 - data/spec/rails_app/features/support/env.rb +4 -4
 - data/spec/rails_app/features/support/env_gem.rb +2 -1
 - data/spec/rails_app/features/support/forms.rb +12 -0
 - data/spec/rails_app/features/support/paths.rb +17 -8
 - data/spec/rails_app/features/support/selectors.rb +57 -0
 - data/spec/rails_app/features/support/within.rb +7 -0
 - data/spec/routing/bigbluebutton/rooms_routing_spec.rb +60 -52
 - data/spec/routing/bigbluebutton/servers_routing_spec.rb +8 -8
 - data/spec/spec_helper.rb +5 -0
 - data/spec/support/controllers/bigbluebutton/rooms_controller.rb +7 -0
 - data/spec/support/matchers/shoulda/be_boolean.rb +1 -1
 - data/spec/support/shared_examples/rooms_controller.rb +37 -0
 - metadata +24 -110
 - data/spec/rails_app/app/helpers/application_helper.rb +0 -2
 
    
        data/.gitignore
    CHANGED
    
    
    
        data/.rvmrc
    ADDED
    
    
    
        data/.travis.yml
    ADDED
    
    
    
        data/CHANGELOG.rdoc
    CHANGED
    
    | 
         @@ -1,3 +1,12 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            == 0.0.6
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            * After fetch_meetings, the rooms that are not found in the DB are *not* saved by default anymore.
         
     | 
| 
      
 4 
     | 
    
         
            +
            * New action to join external rooms (rooms that are not in the DB but exist in the BBB server).
         
     | 
| 
      
 5 
     | 
    
         
            +
            * Fixed some errors and warnings for Ruby 1.8.
         
     | 
| 
      
 6 
     | 
    
         
            +
            * Some changes in the logic of RoomsController#auth to enable a user to join a room that has a blank password.
         
     | 
| 
      
 7 
     | 
    
         
            +
            * Improvements in the mobile_join view to show a link that includes user authentication. But the QR code is still a bare link to the BBB server.
         
     | 
| 
      
 8 
     | 
    
         
            +
            * Made some improvements based on tips by rails_best_practices and increased the test coverage to 100% for almost all classes.
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
       1 
10 
     | 
    
         
             
            == 0.0.5
         
     | 
| 
       2 
11 
     | 
    
         | 
| 
       3 
12 
     | 
    
         
             
            * URLs for both servers and rooms are now defined with a string attribute (called "param") instead of the model ID.
         
     | 
    
        data/Gemfile
    CHANGED
    
    | 
         @@ -2,3 +2,21 @@ source 'http://rubygems.org' 
     | 
|
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            gemspec
         
     | 
| 
       4 
4 
     | 
    
         | 
| 
      
 5 
     | 
    
         
            +
            group :development, :test do
         
     | 
| 
      
 6 
     | 
    
         
            +
              gem "rspec-rails"
         
     | 
| 
      
 7 
     | 
    
         
            +
              gem "factory_girl"
         
     | 
| 
      
 8 
     | 
    
         
            +
              gem "sqlite3-ruby"
         
     | 
| 
      
 9 
     | 
    
         
            +
              gem "generator_spec"
         
     | 
| 
      
 10 
     | 
    
         
            +
              gem "shoulda-matchers"
         
     | 
| 
      
 11 
     | 
    
         
            +
              gem "forgery"
         
     | 
| 
      
 12 
     | 
    
         
            +
              gem "cucumber-rails"
         
     | 
| 
      
 13 
     | 
    
         
            +
              gem "database_cleaner"
         
     | 
| 
      
 14 
     | 
    
         
            +
              gem "rdoc"
         
     | 
| 
      
 15 
     | 
    
         
            +
              gem "rails_best_practices"
         
     | 
| 
      
 16 
     | 
    
         
            +
            end
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
            group :test do
         
     | 
| 
      
 19 
     | 
    
         
            +
              if RUBY_VERSION >= "1.9"
         
     | 
| 
      
 20 
     | 
    
         
            +
                gem 'simplecov', '>= 0.4.0', :require => false
         
     | 
| 
      
 21 
     | 
    
         
            +
              end
         
     | 
| 
      
 22 
     | 
    
         
            +
            end
         
     | 
    
        data/Gemfile.lock
    CHANGED
    
    | 
         @@ -1,20 +1,20 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            PATH
         
     | 
| 
       2 
2 
     | 
    
         
             
              remote: .
         
     | 
| 
       3 
3 
     | 
    
         
             
              specs:
         
     | 
| 
       4 
     | 
    
         
            -
                bigbluebutton_rails (0.0. 
     | 
| 
       5 
     | 
    
         
            -
                  bigbluebutton-api-ruby (~> 0.0. 
     | 
| 
      
 4 
     | 
    
         
            +
                bigbluebutton_rails (0.0.6)
         
     | 
| 
      
 5 
     | 
    
         
            +
                  bigbluebutton-api-ruby (~> 0.0.11)
         
     | 
| 
       6 
6 
     | 
    
         
             
                  rails (>= 3.0.3)
         
     | 
| 
       7 
7 
     | 
    
         | 
| 
       8 
8 
     | 
    
         
             
            GEM
         
     | 
| 
       9 
9 
     | 
    
         
             
              remote: http://rubygems.org/
         
     | 
| 
       10 
10 
     | 
    
         
             
              specs:
         
     | 
| 
       11 
11 
     | 
    
         
             
                abstract (1.0.0)
         
     | 
| 
       12 
     | 
    
         
            -
                actionmailer (3.0. 
     | 
| 
       13 
     | 
    
         
            -
                  actionpack (= 3.0. 
     | 
| 
       14 
     | 
    
         
            -
                  mail (~> 2.2. 
     | 
| 
       15 
     | 
    
         
            -
                actionpack (3.0. 
     | 
| 
       16 
     | 
    
         
            -
                  activemodel (= 3.0. 
     | 
| 
       17 
     | 
    
         
            -
                  activesupport (= 3.0. 
     | 
| 
      
 12 
     | 
    
         
            +
                actionmailer (3.0.9)
         
     | 
| 
      
 13 
     | 
    
         
            +
                  actionpack (= 3.0.9)
         
     | 
| 
      
 14 
     | 
    
         
            +
                  mail (~> 2.2.19)
         
     | 
| 
      
 15 
     | 
    
         
            +
                actionpack (3.0.9)
         
     | 
| 
      
 16 
     | 
    
         
            +
                  activemodel (= 3.0.9)
         
     | 
| 
      
 17 
     | 
    
         
            +
                  activesupport (= 3.0.9)
         
     | 
| 
       18 
18 
     | 
    
         
             
                  builder (~> 2.1.2)
         
     | 
| 
       19 
19 
     | 
    
         
             
                  erubis (~> 2.6.6)
         
     | 
| 
       20 
20 
     | 
    
         
             
                  i18n (~> 0.5.0)
         
     | 
| 
         @@ -22,21 +22,21 @@ GEM 
     | 
|
| 
       22 
22 
     | 
    
         
             
                  rack-mount (~> 0.6.14)
         
     | 
| 
       23 
23 
     | 
    
         
             
                  rack-test (~> 0.5.7)
         
     | 
| 
       24 
24 
     | 
    
         
             
                  tzinfo (~> 0.3.23)
         
     | 
| 
       25 
     | 
    
         
            -
                activemodel (3.0. 
     | 
| 
       26 
     | 
    
         
            -
                  activesupport (= 3.0. 
     | 
| 
      
 25 
     | 
    
         
            +
                activemodel (3.0.9)
         
     | 
| 
      
 26 
     | 
    
         
            +
                  activesupport (= 3.0.9)
         
     | 
| 
       27 
27 
     | 
    
         
             
                  builder (~> 2.1.2)
         
     | 
| 
       28 
28 
     | 
    
         
             
                  i18n (~> 0.5.0)
         
     | 
| 
       29 
     | 
    
         
            -
                activerecord (3.0. 
     | 
| 
       30 
     | 
    
         
            -
                  activemodel (= 3.0. 
     | 
| 
       31 
     | 
    
         
            -
                  activesupport (= 3.0. 
     | 
| 
       32 
     | 
    
         
            -
                  arel (~> 2.0. 
     | 
| 
      
 29 
     | 
    
         
            +
                activerecord (3.0.9)
         
     | 
| 
      
 30 
     | 
    
         
            +
                  activemodel (= 3.0.9)
         
     | 
| 
      
 31 
     | 
    
         
            +
                  activesupport (= 3.0.9)
         
     | 
| 
      
 32 
     | 
    
         
            +
                  arel (~> 2.0.10)
         
     | 
| 
       33 
33 
     | 
    
         
             
                  tzinfo (~> 0.3.23)
         
     | 
| 
       34 
     | 
    
         
            -
                activeresource (3.0. 
     | 
| 
       35 
     | 
    
         
            -
                  activemodel (= 3.0. 
     | 
| 
       36 
     | 
    
         
            -
                  activesupport (= 3.0. 
     | 
| 
       37 
     | 
    
         
            -
                activesupport (3.0. 
     | 
| 
       38 
     | 
    
         
            -
                arel (2.0. 
     | 
| 
       39 
     | 
    
         
            -
                bigbluebutton-api-ruby (0.0. 
     | 
| 
      
 34 
     | 
    
         
            +
                activeresource (3.0.9)
         
     | 
| 
      
 35 
     | 
    
         
            +
                  activemodel (= 3.0.9)
         
     | 
| 
      
 36 
     | 
    
         
            +
                  activesupport (= 3.0.9)
         
     | 
| 
      
 37 
     | 
    
         
            +
                activesupport (3.0.9)
         
     | 
| 
      
 38 
     | 
    
         
            +
                arel (2.0.10)
         
     | 
| 
      
 39 
     | 
    
         
            +
                bigbluebutton-api-ruby (0.0.11)
         
     | 
| 
       40 
40 
     | 
    
         
             
                  nokogiri (~> 1.4.0)
         
     | 
| 
       41 
41 
     | 
    
         
             
                builder (2.1.2)
         
     | 
| 
       42 
42 
     | 
    
         
             
                capybara (1.0.0)
         
     | 
| 
         @@ -46,63 +46,73 @@ GEM 
     | 
|
| 
       46 
46 
     | 
    
         
             
                  rack-test (>= 0.5.4)
         
     | 
| 
       47 
47 
     | 
    
         
             
                  selenium-webdriver (~> 0.2.0)
         
     | 
| 
       48 
48 
     | 
    
         
             
                  xpath (~> 0.1.4)
         
     | 
| 
       49 
     | 
    
         
            -
                childprocess (0. 
     | 
| 
      
 49 
     | 
    
         
            +
                childprocess (0.2.0)
         
     | 
| 
       50 
50 
     | 
    
         
             
                  ffi (~> 1.0.6)
         
     | 
| 
       51 
     | 
    
         
            -
                 
     | 
| 
      
 51 
     | 
    
         
            +
                colored (1.2)
         
     | 
| 
      
 52 
     | 
    
         
            +
                cucumber (1.0.2)
         
     | 
| 
       52 
53 
     | 
    
         
             
                  builder (>= 2.1.2)
         
     | 
| 
       53 
54 
     | 
    
         
             
                  diff-lcs (>= 1.1.2)
         
     | 
| 
       54 
     | 
    
         
            -
                  gherkin (~> 2.4. 
     | 
| 
      
 55 
     | 
    
         
            +
                  gherkin (~> 2.4.5)
         
     | 
| 
       55 
56 
     | 
    
         
             
                  json (>= 1.4.6)
         
     | 
| 
       56 
57 
     | 
    
         
             
                  term-ansicolor (>= 1.0.5)
         
     | 
| 
       57 
     | 
    
         
            -
                cucumber-rails (0. 
     | 
| 
       58 
     | 
    
         
            -
                  capybara (>= 1.0.0 
     | 
| 
       59 
     | 
    
         
            -
                  cucumber ( 
     | 
| 
       60 
     | 
    
         
            -
                  nokogiri (>= 1.4. 
     | 
| 
       61 
     | 
    
         
            -
                  rack-test (>= 0.5.7)
         
     | 
| 
      
 58 
     | 
    
         
            +
                cucumber-rails (1.0.2)
         
     | 
| 
      
 59 
     | 
    
         
            +
                  capybara (>= 1.0.0)
         
     | 
| 
      
 60 
     | 
    
         
            +
                  cucumber (~> 1.0.0)
         
     | 
| 
      
 61 
     | 
    
         
            +
                  nokogiri (>= 1.4.6)
         
     | 
| 
       62 
62 
     | 
    
         
             
                database_cleaner (0.6.7)
         
     | 
| 
       63 
63 
     | 
    
         
             
                diff-lcs (1.1.2)
         
     | 
| 
       64 
64 
     | 
    
         
             
                erubis (2.6.6)
         
     | 
| 
       65 
65 
     | 
    
         
             
                  abstract (>= 1.0.0)
         
     | 
| 
       66 
     | 
    
         
            -
                factory_girl ( 
     | 
| 
      
 66 
     | 
    
         
            +
                factory_girl (2.0.2)
         
     | 
| 
       67 
67 
     | 
    
         
             
                ffi (1.0.9)
         
     | 
| 
       68 
     | 
    
         
            -
                forgery (0.3. 
     | 
| 
      
 68 
     | 
    
         
            +
                forgery (0.3.12)
         
     | 
| 
       69 
69 
     | 
    
         
             
                  nokogiri (~> 1.4)
         
     | 
| 
       70 
     | 
    
         
            -
                generator_spec (0.8. 
     | 
| 
      
 70 
     | 
    
         
            +
                generator_spec (0.8.3)
         
     | 
| 
       71 
71 
     | 
    
         
             
                  rails (~> 3.0)
         
     | 
| 
       72 
72 
     | 
    
         
             
                  rspec-rails
         
     | 
| 
       73 
     | 
    
         
            -
                gherkin (2.4. 
     | 
| 
      
 73 
     | 
    
         
            +
                gherkin (2.4.5)
         
     | 
| 
       74 
74 
     | 
    
         
             
                  json (>= 1.4.6)
         
     | 
| 
      
 75 
     | 
    
         
            +
                haml (3.1.2)
         
     | 
| 
       75 
76 
     | 
    
         
             
                i18n (0.5.0)
         
     | 
| 
       76 
     | 
    
         
            -
                json (1.5. 
     | 
| 
       77 
     | 
    
         
            -
                json_pure (1.5. 
     | 
| 
       78 
     | 
    
         
            -
                mail (2.2. 
     | 
| 
      
 77 
     | 
    
         
            +
                json (1.5.3)
         
     | 
| 
      
 78 
     | 
    
         
            +
                json_pure (1.5.3)
         
     | 
| 
      
 79 
     | 
    
         
            +
                mail (2.2.19)
         
     | 
| 
       79 
80 
     | 
    
         
             
                  activesupport (>= 2.3.6)
         
     | 
| 
       80 
81 
     | 
    
         
             
                  i18n (>= 0.4.0)
         
     | 
| 
       81 
82 
     | 
    
         
             
                  mime-types (~> 1.16)
         
     | 
| 
       82 
83 
     | 
    
         
             
                  treetop (~> 1.4.8)
         
     | 
| 
       83 
84 
     | 
    
         
             
                mime-types (1.16)
         
     | 
| 
       84 
     | 
    
         
            -
                nokogiri (1.4. 
     | 
| 
       85 
     | 
    
         
            -
                polyglot (0.3. 
     | 
| 
      
 85 
     | 
    
         
            +
                nokogiri (1.4.7)
         
     | 
| 
      
 86 
     | 
    
         
            +
                polyglot (0.3.2)
         
     | 
| 
       86 
87 
     | 
    
         
             
                rack (1.2.3)
         
     | 
| 
       87 
88 
     | 
    
         
             
                rack-mount (0.6.14)
         
     | 
| 
       88 
89 
     | 
    
         
             
                  rack (>= 1.0.0)
         
     | 
| 
       89 
90 
     | 
    
         
             
                rack-test (0.5.7)
         
     | 
| 
       90 
91 
     | 
    
         
             
                  rack (>= 1.0)
         
     | 
| 
       91 
     | 
    
         
            -
                rails (3.0. 
     | 
| 
       92 
     | 
    
         
            -
                  actionmailer (= 3.0. 
     | 
| 
       93 
     | 
    
         
            -
                  actionpack (= 3.0. 
     | 
| 
       94 
     | 
    
         
            -
                  activerecord (= 3.0. 
     | 
| 
       95 
     | 
    
         
            -
                  activeresource (= 3.0. 
     | 
| 
       96 
     | 
    
         
            -
                  activesupport (= 3.0. 
     | 
| 
      
 92 
     | 
    
         
            +
                rails (3.0.9)
         
     | 
| 
      
 93 
     | 
    
         
            +
                  actionmailer (= 3.0.9)
         
     | 
| 
      
 94 
     | 
    
         
            +
                  actionpack (= 3.0.9)
         
     | 
| 
      
 95 
     | 
    
         
            +
                  activerecord (= 3.0.9)
         
     | 
| 
      
 96 
     | 
    
         
            +
                  activeresource (= 3.0.9)
         
     | 
| 
      
 97 
     | 
    
         
            +
                  activesupport (= 3.0.9)
         
     | 
| 
       97 
98 
     | 
    
         
             
                  bundler (~> 1.0)
         
     | 
| 
       98 
     | 
    
         
            -
                  railties (= 3.0. 
     | 
| 
       99 
     | 
    
         
            -
                 
     | 
| 
       100 
     | 
    
         
            -
                   
     | 
| 
       101 
     | 
    
         
            -
                   
     | 
| 
      
 99 
     | 
    
         
            +
                  railties (= 3.0.9)
         
     | 
| 
      
 100 
     | 
    
         
            +
                rails_best_practices (0.10.1)
         
     | 
| 
      
 101 
     | 
    
         
            +
                  activesupport
         
     | 
| 
      
 102 
     | 
    
         
            +
                  colored
         
     | 
| 
      
 103 
     | 
    
         
            +
                  erubis
         
     | 
| 
      
 104 
     | 
    
         
            +
                  haml
         
     | 
| 
      
 105 
     | 
    
         
            +
                  i18n
         
     | 
| 
      
 106 
     | 
    
         
            +
                  ruby-progressbar
         
     | 
| 
      
 107 
     | 
    
         
            +
                  ruby_parser
         
     | 
| 
      
 108 
     | 
    
         
            +
                railties (3.0.9)
         
     | 
| 
      
 109 
     | 
    
         
            +
                  actionpack (= 3.0.9)
         
     | 
| 
      
 110 
     | 
    
         
            +
                  activesupport (= 3.0.9)
         
     | 
| 
       102 
111 
     | 
    
         
             
                  rake (>= 0.8.7)
         
     | 
| 
      
 112 
     | 
    
         
            +
                  rdoc (~> 3.4)
         
     | 
| 
       103 
113 
     | 
    
         
             
                  thor (~> 0.14.4)
         
     | 
| 
       104 
     | 
    
         
            -
                rake (0. 
     | 
| 
       105 
     | 
    
         
            -
                rdoc (3. 
     | 
| 
      
 114 
     | 
    
         
            +
                rake (0.9.2)
         
     | 
| 
      
 115 
     | 
    
         
            +
                rdoc (3.9.1)
         
     | 
| 
       106 
116 
     | 
    
         
             
                rspec (2.6.0)
         
     | 
| 
       107 
117 
     | 
    
         
             
                  rspec-core (~> 2.6.0)
         
     | 
| 
       108 
118 
     | 
    
         
             
                  rspec-expectations (~> 2.6.0)
         
     | 
| 
         @@ -116,21 +126,29 @@ GEM 
     | 
|
| 
       116 
126 
     | 
    
         
             
                  activesupport (~> 3.0)
         
     | 
| 
       117 
127 
     | 
    
         
             
                  railties (~> 3.0)
         
     | 
| 
       118 
128 
     | 
    
         
             
                  rspec (~> 2.6.0)
         
     | 
| 
      
 129 
     | 
    
         
            +
                ruby-progressbar (0.0.10)
         
     | 
| 
      
 130 
     | 
    
         
            +
                ruby_parser (2.0.6)
         
     | 
| 
      
 131 
     | 
    
         
            +
                  sexp_processor (~> 3.0)
         
     | 
| 
       119 
132 
     | 
    
         
             
                rubyzip (0.9.4)
         
     | 
| 
       120 
     | 
    
         
            -
                selenium-webdriver (0.2. 
     | 
| 
       121 
     | 
    
         
            -
                  childprocess (>= 0.1. 
     | 
| 
      
 133 
     | 
    
         
            +
                selenium-webdriver (0.2.2)
         
     | 
| 
      
 134 
     | 
    
         
            +
                  childprocess (>= 0.1.9)
         
     | 
| 
       122 
135 
     | 
    
         
             
                  ffi (>= 1.0.7)
         
     | 
| 
       123 
136 
     | 
    
         
             
                  json_pure
         
     | 
| 
       124 
137 
     | 
    
         
             
                  rubyzip
         
     | 
| 
       125 
     | 
    
         
            -
                 
     | 
| 
       126 
     | 
    
         
            -
                 
     | 
| 
      
 138 
     | 
    
         
            +
                sexp_processor (3.0.5)
         
     | 
| 
      
 139 
     | 
    
         
            +
                shoulda-matchers (1.0.0.beta3)
         
     | 
| 
      
 140 
     | 
    
         
            +
                simplecov (0.4.2)
         
     | 
| 
      
 141 
     | 
    
         
            +
                  simplecov-html (~> 0.4.4)
         
     | 
| 
      
 142 
     | 
    
         
            +
                simplecov-html (0.4.5)
         
     | 
| 
      
 143 
     | 
    
         
            +
                sqlite3 (1.3.4)
         
     | 
| 
       127 
144 
     | 
    
         
             
                sqlite3-ruby (1.3.3)
         
     | 
| 
       128 
145 
     | 
    
         
             
                  sqlite3 (>= 1.3.3)
         
     | 
| 
       129 
     | 
    
         
            -
                term-ansicolor (1.0. 
     | 
| 
      
 146 
     | 
    
         
            +
                term-ansicolor (1.0.6)
         
     | 
| 
       130 
147 
     | 
    
         
             
                thor (0.14.6)
         
     | 
| 
       131 
     | 
    
         
            -
                treetop (1.4. 
     | 
| 
      
 148 
     | 
    
         
            +
                treetop (1.4.10)
         
     | 
| 
      
 149 
     | 
    
         
            +
                  polyglot
         
     | 
| 
       132 
150 
     | 
    
         
             
                  polyglot (>= 0.3.1)
         
     | 
| 
       133 
     | 
    
         
            -
                tzinfo (0.3. 
     | 
| 
      
 151 
     | 
    
         
            +
                tzinfo (0.3.29)
         
     | 
| 
       134 
152 
     | 
    
         
             
                xpath (0.1.4)
         
     | 
| 
       135 
153 
     | 
    
         
             
                  nokogiri (~> 1.3)
         
     | 
| 
       136 
154 
     | 
    
         | 
| 
         @@ -139,12 +157,14 @@ PLATFORMS 
     | 
|
| 
       139 
157 
     | 
    
         | 
| 
       140 
158 
     | 
    
         
             
            DEPENDENCIES
         
     | 
| 
       141 
159 
     | 
    
         
             
              bigbluebutton_rails!
         
     | 
| 
       142 
     | 
    
         
            -
              cucumber-rails 
     | 
| 
       143 
     | 
    
         
            -
              database_cleaner 
     | 
| 
       144 
     | 
    
         
            -
              factory_girl 
     | 
| 
       145 
     | 
    
         
            -
              forgery 
     | 
| 
       146 
     | 
    
         
            -
              generator_spec 
     | 
| 
       147 
     | 
    
         
            -
               
     | 
| 
       148 
     | 
    
         
            -
               
     | 
| 
       149 
     | 
    
         
            -
               
     | 
| 
       150 
     | 
    
         
            -
               
     | 
| 
      
 160 
     | 
    
         
            +
              cucumber-rails
         
     | 
| 
      
 161 
     | 
    
         
            +
              database_cleaner
         
     | 
| 
      
 162 
     | 
    
         
            +
              factory_girl
         
     | 
| 
      
 163 
     | 
    
         
            +
              forgery
         
     | 
| 
      
 164 
     | 
    
         
            +
              generator_spec
         
     | 
| 
      
 165 
     | 
    
         
            +
              rails_best_practices
         
     | 
| 
      
 166 
     | 
    
         
            +
              rdoc
         
     | 
| 
      
 167 
     | 
    
         
            +
              rspec-rails
         
     | 
| 
      
 168 
     | 
    
         
            +
              shoulda-matchers
         
     | 
| 
      
 169 
     | 
    
         
            +
              simplecov (>= 0.4.0)
         
     | 
| 
      
 170 
     | 
    
         
            +
              sqlite3-ruby
         
     | 
    
        data/README.rdoc
    CHANGED
    
    | 
         @@ -1,4 +1,5 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            = BigBlueButton on Rails
         
     | 
| 
      
 2 
     | 
    
         
            +
            http://travis-ci.org/mconf/bigbluebutton_rails.png {(more...)}[http://travis-ci.org/#!/mconf/bigbluebutton_rails]
         
     | 
| 
       2 
3 
     | 
    
         | 
| 
       3 
4 
     | 
    
         
             
            {BigBlueButton}[http://bigbluebutton.org] integration for Ruby on Rails 3.
         
     | 
| 
       4 
5 
     | 
    
         | 
| 
         @@ -181,6 +182,28 @@ Run the tests: 
     | 
|
| 
       181 
182 
     | 
    
         
             
              rake spec
         
     | 
| 
       182 
183 
     | 
    
         
             
              rake cucumber
         
     | 
| 
       183 
184 
     | 
    
         | 
| 
      
 185 
     | 
    
         
            +
            Or simply:
         
     | 
| 
      
 186 
     | 
    
         
            +
             
     | 
| 
      
 187 
     | 
    
         
            +
              rake
         
     | 
| 
      
 188 
     | 
    
         
            +
             
     | 
| 
       184 
189 
     | 
    
         
             
            Develop. :)
         
     | 
| 
       185 
190 
     | 
    
         | 
| 
       186 
191 
     | 
    
         
             
            If you want your code to be integrated in this repository, please create a branch with your modifications and submit a pull request.
         
     | 
| 
      
 192 
     | 
    
         
            +
             
     | 
| 
      
 193 
     | 
    
         
            +
            === Test Coverage
         
     | 
| 
      
 194 
     | 
    
         
            +
             
     | 
| 
      
 195 
     | 
    
         
            +
            Coverage is analyzed by default when you run:
         
     | 
| 
      
 196 
     | 
    
         
            +
             
     | 
| 
      
 197 
     | 
    
         
            +
              rake spec
         
     | 
| 
      
 198 
     | 
    
         
            +
             
     | 
| 
      
 199 
     | 
    
         
            +
            Run it and look at the file <tt>coverage/index.html</tt>.
         
     | 
| 
      
 200 
     | 
    
         
            +
             
     | 
| 
      
 201 
     | 
    
         
            +
            === Best Practices
         
     | 
| 
      
 202 
     | 
    
         
            +
             
     | 
| 
      
 203 
     | 
    
         
            +
            We use the gem <tt>rails_best_practices</tt> to get some nice tips on how to improve the code.
         
     | 
| 
      
 204 
     | 
    
         
            +
             
     | 
| 
      
 205 
     | 
    
         
            +
            Run:
         
     | 
| 
      
 206 
     | 
    
         
            +
             
     | 
| 
      
 207 
     | 
    
         
            +
              rake best_practices
         
     | 
| 
      
 208 
     | 
    
         
            +
             
     | 
| 
      
 209 
     | 
    
         
            +
            And look at the file <tt>rails_best_practices_output.html</tt> to see the tips.
         
     | 
    
        data/Rakefile
    CHANGED
    
    | 
         @@ -30,23 +30,25 @@ end 
     | 
|
| 
       30 
30 
     | 
    
         
             
            desc 'Setup RailsApp used in tests.'
         
     | 
| 
       31 
31 
     | 
    
         
             
            namespace :setup do
         
     | 
| 
       32 
32 
     | 
    
         
             
              task :rails_app do |app|
         
     | 
| 
       33 
     | 
    
         
            -
                cd "spec 
     | 
| 
      
 33 
     | 
    
         
            +
                cd File.join(File.dirname(__FILE__), "spec", "rails_app")
         
     | 
| 
       34 
34 
     | 
    
         
             
                sh "rails destroy bigbluebutton_rails:install"
         
     | 
| 
       35 
35 
     | 
    
         
             
                sh "rails generate bigbluebutton_rails:install"
         
     | 
| 
      
 36 
     | 
    
         
            +
                cd File.dirname(__FILE__)
         
     | 
| 
       36 
37 
     | 
    
         
             
              end
         
     | 
| 
       37 
38 
     | 
    
         | 
| 
       38 
39 
     | 
    
         
             
              namespace :rails_app do |app|
         
     | 
| 
       39 
40 
     | 
    
         
             
                task :db do
         
     | 
| 
      
 41 
     | 
    
         
            +
                  cd File.join(File.dirname(__FILE__), "spec", "rails_app")
         
     | 
| 
       40 
42 
     | 
    
         
             
                  # base
         
     | 
| 
       41 
     | 
    
         
            -
                  cd "spec/rails_app/"
         
     | 
| 
       42 
43 
     | 
    
         
             
                  sh "rake db:drop:all"
         
     | 
| 
       43 
44 
     | 
    
         
             
                  sh "rake db:create:all"
         
     | 
| 
       44 
     | 
    
         
            -
                  # test
         
     | 
| 
       45 
     | 
    
         
            -
                  sh "rake db:migrate RAILS_ENV=test"
         
     | 
| 
       46 
     | 
    
         
            -
                  sh "rake db:test:prepare RAILS_ENV=test"
         
     | 
| 
       47 
45 
     | 
    
         
             
                  # development
         
     | 
| 
       48 
46 
     | 
    
         
             
                  sh "rake db:migrate RAILS_ENV=development"
         
     | 
| 
       49 
47 
     | 
    
         
             
                  sh "rake db:seed RAILS_ENV=development"
         
     | 
| 
      
 48 
     | 
    
         
            +
                  # test
         
     | 
| 
      
 49 
     | 
    
         
            +
                  sh "rake db:migrate RAILS_ENV=test"
         
     | 
| 
      
 50 
     | 
    
         
            +
                  sh "rake db:test:prepare RAILS_ENV=test"
         
     | 
| 
      
 51 
     | 
    
         
            +
                  cd File.dirname(__FILE__)
         
     | 
| 
       50 
52 
     | 
    
         
             
                end
         
     | 
| 
       51 
53 
     | 
    
         
             
              end
         
     | 
| 
       52 
54 
     | 
    
         
             
            end
         
     | 
| 
         @@ -57,7 +59,9 @@ task :cucumber do 
     | 
|
| 
       57 
59 
     | 
    
         
             
                sh %{ cucumber features/ }
         
     | 
| 
       58 
60 
     | 
    
         
             
              end
         
     | 
| 
       59 
61 
     | 
    
         
             
              puts "* Dummy app features"
         
     | 
| 
       60 
     | 
    
         
            -
               
     | 
| 
      
 62 
     | 
    
         
            +
              cd File.join(File.dirname(__FILE__), "spec", "rails_app")
         
     | 
| 
      
 63 
     | 
    
         
            +
              sh "cucumber features/"
         
     | 
| 
      
 64 
     | 
    
         
            +
              cd File.dirname(__FILE__)
         
     | 
| 
       61 
65 
     | 
    
         
             
            end
         
     | 
| 
       62 
66 
     | 
    
         | 
| 
       63 
67 
     | 
    
         
             
            task :notes do
         
     | 
| 
         @@ -88,3 +92,10 @@ namespace :spec do 
     | 
|
| 
       88 
92 
     | 
    
         
             
                sh "rails destroy bigbluebutton_rails:install 0.0.4"
         
     | 
| 
       89 
93 
     | 
    
         
             
              end
         
     | 
| 
       90 
94 
     | 
    
         
             
            end
         
     | 
| 
      
 95 
     | 
    
         
            +
             
     | 
| 
      
 96 
     | 
    
         
            +
            task :best_practices do |app|
         
     | 
| 
      
 97 
     | 
    
         
            +
              sh "rails_best_practices -f html --spec &>/dev/null"
         
     | 
| 
      
 98 
     | 
    
         
            +
              puts
         
     | 
| 
      
 99 
     | 
    
         
            +
              puts "Output will be in the file rails_best_practices_output.html"
         
     | 
| 
      
 100 
     | 
    
         
            +
              puts
         
     | 
| 
      
 101 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -1,10 +1,11 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            require ' 
     | 
| 
      
 1 
     | 
    
         
            +
            require 'bigbluebutton_api'
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            class Bigbluebutton::RoomsController < ApplicationController
         
     | 
| 
       4 
4 
     | 
    
         | 
| 
       5 
5 
     | 
    
         
             
              before_filter :find_server
         
     | 
| 
      
 6 
     | 
    
         
            +
              before_filter :find_room, :only => [:show, :edit, :update, :destroy, :join, :invite, :running, :end, :destroy, :end, :join_mobile]
         
     | 
| 
       6 
7 
     | 
    
         
             
              respond_to :html, :except => :running
         
     | 
| 
       7 
     | 
    
         
            -
              respond_to :json, :only => [:running, :show, :new, :index, :create, :update 
     | 
| 
      
 8 
     | 
    
         
            +
              respond_to :json, :only => [:running, :show, :new, :index, :create, :update]
         
     | 
| 
       8 
9 
     | 
    
         | 
| 
       9 
10 
     | 
    
         
             
              def index
         
     | 
| 
       10 
11 
     | 
    
         
             
                # TODO restrict to rooms belonging to the selected server
         
     | 
| 
         @@ -12,7 +13,7 @@ class Bigbluebutton::RoomsController < ApplicationController 
     | 
|
| 
       12 
13 
     | 
    
         
             
              end
         
     | 
| 
       13 
14 
     | 
    
         | 
| 
       14 
15 
     | 
    
         
             
              def show
         
     | 
| 
       15 
     | 
    
         
            -
                respond_with(@room 
     | 
| 
      
 16 
     | 
    
         
            +
                respond_with(@room)
         
     | 
| 
       16 
17 
     | 
    
         
             
              end
         
     | 
| 
       17 
18 
     | 
    
         | 
| 
       18 
19 
     | 
    
         
             
              def new
         
     | 
| 
         @@ -20,14 +21,13 @@ class Bigbluebutton::RoomsController < ApplicationController 
     | 
|
| 
       20 
21 
     | 
    
         
             
              end
         
     | 
| 
       21 
22 
     | 
    
         | 
| 
       22 
23 
     | 
    
         
             
              def edit
         
     | 
| 
       23 
     | 
    
         
            -
                respond_with(@room 
     | 
| 
      
 24 
     | 
    
         
            +
                respond_with(@room)
         
     | 
| 
       24 
25 
     | 
    
         
             
              end
         
     | 
| 
       25 
26 
     | 
    
         | 
| 
       26 
27 
     | 
    
         
             
              def create
         
     | 
| 
       27 
28 
     | 
    
         
             
                @room = BigbluebuttonRoom.new(params[:bigbluebutton_room])
         
     | 
| 
       28 
29 
     | 
    
         
             
                @room.server = @server
         
     | 
| 
       29 
30 
     | 
    
         | 
| 
       30 
     | 
    
         
            -
                # TODO Generate a random meetingid everytime a room is created
         
     | 
| 
       31 
31 
     | 
    
         
             
                if !params[:bigbluebutton_room].has_key?(:meetingid) or
         
     | 
| 
       32 
32 
     | 
    
         
             
                    params[:bigbluebutton_room][:meetingid].blank?
         
     | 
| 
       33 
33 
     | 
    
         
             
                  @room.meetingid = @room.name
         
     | 
| 
         @@ -47,7 +47,7 @@ class Bigbluebutton::RoomsController < ApplicationController 
     | 
|
| 
       47 
47 
     | 
    
         
             
                        message = t('bigbluebutton_rails.rooms.notice.create.failure')
         
     | 
| 
       48 
48 
     | 
    
         
             
                        redirect_to params[:redir_url], :error => message
         
     | 
| 
       49 
49 
     | 
    
         
             
                      else
         
     | 
| 
       50 
     | 
    
         
            -
                        render : 
     | 
| 
      
 50 
     | 
    
         
            +
                        render :new
         
     | 
| 
       51 
51 
     | 
    
         
             
                      end
         
     | 
| 
       52 
52 
     | 
    
         
             
                    }
         
     | 
| 
       53 
53 
     | 
    
         
             
                    format.json { render :json => @room.errors.full_messages, :status => :unprocessable_entity }
         
     | 
| 
         @@ -56,8 +56,6 @@ class Bigbluebutton::RoomsController < ApplicationController 
     | 
|
| 
       56 
56 
     | 
    
         
             
              end
         
     | 
| 
       57 
57 
     | 
    
         | 
| 
       58 
58 
     | 
    
         
             
              def update
         
     | 
| 
       59 
     | 
    
         
            -
                @room = BigbluebuttonRoom.find_by_param(params[:id])
         
     | 
| 
       60 
     | 
    
         
            -
             
     | 
| 
       61 
59 
     | 
    
         
             
                if !params[:bigbluebutton_room].has_key?(:meetingid) or
         
     | 
| 
       62 
60 
     | 
    
         
             
                    params[:bigbluebutton_room][:meetingid].blank?
         
     | 
| 
       63 
61 
     | 
    
         
             
                  params[:bigbluebutton_room][:meetingid] = params[:bigbluebutton_room][:name]
         
     | 
| 
         @@ -77,7 +75,7 @@ class Bigbluebutton::RoomsController < ApplicationController 
     | 
|
| 
       77 
75 
     | 
    
         
             
                        message = t('bigbluebutton_rails.rooms.notice.update.failure')
         
     | 
| 
       78 
76 
     | 
    
         
             
                        redirect_to params[:redir_url], :error => message
         
     | 
| 
       79 
77 
     | 
    
         
             
                      else
         
     | 
| 
       80 
     | 
    
         
            -
                        render : 
     | 
| 
      
 78 
     | 
    
         
            +
                        render :edit
         
     | 
| 
       81 
79 
     | 
    
         
             
                      end
         
     | 
| 
       82 
80 
     | 
    
         
             
                    }
         
     | 
| 
       83 
81 
     | 
    
         
             
                    format.json { render :json => @room.errors.full_messages, :status => :unprocessable_entity }
         
     | 
| 
         @@ -86,8 +84,6 @@ class Bigbluebutton::RoomsController < ApplicationController 
     | 
|
| 
       86 
84 
     | 
    
         
             
              end
         
     | 
| 
       87 
85 
     | 
    
         | 
| 
       88 
86 
     | 
    
         
             
              def destroy
         
     | 
| 
       89 
     | 
    
         
            -
                @room = BigbluebuttonRoom.find_by_param(params[:id])
         
     | 
| 
       90 
     | 
    
         
            -
             
     | 
| 
       91 
87 
     | 
    
         
             
                # TODO Destroy the room record even if end_meeting failed?
         
     | 
| 
       92 
88 
     | 
    
         | 
| 
       93 
89 
     | 
    
         
             
                error = false
         
     | 
| 
         @@ -119,8 +115,6 @@ class Bigbluebutton::RoomsController < ApplicationController 
     | 
|
| 
       119 
115 
     | 
    
         | 
| 
       120 
116 
     | 
    
         
             
              # Used by logged users to join public rooms.
         
     | 
| 
       121 
117 
     | 
    
         
             
              def join
         
     | 
| 
       122 
     | 
    
         
            -
                @room = BigbluebuttonRoom.find_by_param(params[:id])
         
     | 
| 
       123 
     | 
    
         
            -
             
     | 
| 
       124 
118 
     | 
    
         
             
                role = bigbluebutton_role(@room)
         
     | 
| 
       125 
119 
     | 
    
         
             
                if role.nil?
         
     | 
| 
       126 
120 
     | 
    
         
             
                  raise BigbluebuttonRails::RoomAccessDenied.new
         
     | 
| 
         @@ -136,8 +130,6 @@ class Bigbluebutton::RoomsController < ApplicationController 
     | 
|
| 
       136 
130 
     | 
    
         | 
| 
       137 
131 
     | 
    
         
             
              # Used to join private rooms or to invited anonymous users (not logged)
         
     | 
| 
       138 
132 
     | 
    
         
             
              def invite
         
     | 
| 
       139 
     | 
    
         
            -
                @room = BigbluebuttonRoom.find_by_param(params[:id])
         
     | 
| 
       140 
     | 
    
         
            -
             
     | 
| 
       141 
133 
     | 
    
         
             
                respond_with @room do |format|
         
     | 
| 
       142 
134 
     | 
    
         | 
| 
       143 
135 
     | 
    
         
             
                  role = bigbluebutton_role(@room)
         
     | 
| 
         @@ -156,9 +148,54 @@ class Bigbluebutton::RoomsController < ApplicationController 
     | 
|
| 
       156 
148 
     | 
    
         
             
              end
         
     | 
| 
       157 
149 
     | 
    
         | 
| 
       158 
150 
     | 
    
         
             
              # Authenticates an user using name and password passed in the params from #invite
         
     | 
| 
      
 151 
     | 
    
         
            +
              # Uses params[:id] to get the target room
         
     | 
| 
       159 
152 
     | 
    
         
             
              def auth
         
     | 
| 
       160 
     | 
    
         
            -
                @room = BigbluebuttonRoom.find_by_param(params[:id])
         
     | 
| 
      
 153 
     | 
    
         
            +
                @room = BigbluebuttonRoom.find_by_param(params[:id]) unless params[:id].blank?
         
     | 
| 
      
 154 
     | 
    
         
            +
                if @room.nil?
         
     | 
| 
      
 155 
     | 
    
         
            +
                  message = t('bigbluebutton_rails.rooms.errors.auth.wrong_params')
         
     | 
| 
      
 156 
     | 
    
         
            +
                  redirect_to request.referer, :notice => message
         
     | 
| 
      
 157 
     | 
    
         
            +
                  return
         
     | 
| 
      
 158 
     | 
    
         
            +
                end
         
     | 
| 
      
 159 
     | 
    
         
            +
             
     | 
| 
      
 160 
     | 
    
         
            +
                name = bigbluebutton_user.nil? ? params[:user][:name] : bigbluebutton_user.name
         
     | 
| 
      
 161 
     | 
    
         
            +
                role = bigbluebutton_role(@room)
         
     | 
| 
      
 162 
     | 
    
         
            +
                if role.nil?
         
     | 
| 
      
 163 
     | 
    
         
            +
                  raise BigbluebuttonRails::RoomAccessDenied.new
         
     | 
| 
      
 164 
     | 
    
         
            +
                elsif role == :password
         
     | 
| 
      
 165 
     | 
    
         
            +
                  role = @room.user_role(params[:user])
         
     | 
| 
      
 166 
     | 
    
         
            +
                end
         
     | 
| 
      
 167 
     | 
    
         
            +
             
     | 
| 
      
 168 
     | 
    
         
            +
                unless role.nil? or name.nil?
         
     | 
| 
      
 169 
     | 
    
         
            +
                  join_internal(name, role, :invite)
         
     | 
| 
      
 170 
     | 
    
         
            +
                else
         
     | 
| 
      
 171 
     | 
    
         
            +
                  flash[:error] = t('bigbluebutton_rails.rooms.errors.auth.failure')
         
     | 
| 
      
 172 
     | 
    
         
            +
                  render :invite, :status => :unauthorized
         
     | 
| 
      
 173 
     | 
    
         
            +
                end
         
     | 
| 
      
 174 
     | 
    
         
            +
              end
         
     | 
| 
      
 175 
     | 
    
         
            +
             
     | 
| 
      
 176 
     | 
    
         
            +
              def external
         
     | 
| 
      
 177 
     | 
    
         
            +
                if params[:meeting].blank?
         
     | 
| 
      
 178 
     | 
    
         
            +
                  message = t('bigbluebutton_rails.rooms.errors.external.blank_meetingid')
         
     | 
| 
      
 179 
     | 
    
         
            +
                  params[:redir_url] ||= bigbluebutton_server_rooms_path(@server)
         
     | 
| 
      
 180 
     | 
    
         
            +
                  redirect_to params[:redir_url], :notice => message
         
     | 
| 
      
 181 
     | 
    
         
            +
                end
         
     | 
| 
      
 182 
     | 
    
         
            +
                @room = BigbluebuttonRoom.new(:meetingid => params[:meeting])
         
     | 
| 
      
 183 
     | 
    
         
            +
              end
         
     | 
| 
      
 184 
     | 
    
         
            +
             
     | 
| 
      
 185 
     | 
    
         
            +
              # Authenticates an user using name and password passed in the params from #external
         
     | 
| 
      
 186 
     | 
    
         
            +
              # Uses params[:meeting] to get the meetingID of the target room
         
     | 
| 
      
 187 
     | 
    
         
            +
              def external_auth
         
     | 
| 
      
 188 
     | 
    
         
            +
                @room = nil
         
     | 
| 
      
 189 
     | 
    
         
            +
                if !params[:meeting].blank? && !params[:user].blank?
         
     | 
| 
      
 190 
     | 
    
         
            +
                  @server.fetch_meetings
         
     | 
| 
      
 191 
     | 
    
         
            +
                  @room = @server.meetings.select{ |r| r.meetingid == params[:meeting] }.first
         
     | 
| 
      
 192 
     | 
    
         
            +
                else
         
     | 
| 
      
 193 
     | 
    
         
            +
                  message = t('bigbluebutton_rails.rooms.errors.auth.wrong_params')
         
     | 
| 
      
 194 
     | 
    
         
            +
                  redirect_to request.referer, :notice => message
         
     | 
| 
      
 195 
     | 
    
         
            +
                  return
         
     | 
| 
      
 196 
     | 
    
         
            +
                end
         
     | 
| 
       161 
197 
     | 
    
         | 
| 
      
 198 
     | 
    
         
            +
                # This is just to check if the room is not blocked, not to get the actual role
         
     | 
| 
       162 
199 
     | 
    
         
             
                raise BigbluebuttonRails::RoomAccessDenied.new if bigbluebutton_role(@room).nil?
         
     | 
| 
       163 
200 
     | 
    
         | 
| 
       164 
201 
     | 
    
         
             
                # if there's a user logged, use his name instead of the name in the params
         
     | 
| 
         @@ -166,16 +203,21 @@ class Bigbluebutton::RoomsController < ApplicationController 
     | 
|
| 
       166 
203 
     | 
    
         
             
                role = @room.user_role(params[:user])
         
     | 
| 
       167 
204 
     | 
    
         | 
| 
       168 
205 
     | 
    
         
             
                unless role.nil? or name.nil?
         
     | 
| 
       169 
     | 
    
         
            -
                   
     | 
| 
      
 206 
     | 
    
         
            +
                  @room.fetch_meeting_info
         
     | 
| 
      
 207 
     | 
    
         
            +
                  if @room.is_running?
         
     | 
| 
      
 208 
     | 
    
         
            +
                    join_url = @room.join_url(name, role)
         
     | 
| 
      
 209 
     | 
    
         
            +
                    redirect_to(join_url)
         
     | 
| 
      
 210 
     | 
    
         
            +
                  else
         
     | 
| 
      
 211 
     | 
    
         
            +
                    flash[:error] = t('bigbluebutton_rails.rooms.errors.auth.not_running')
         
     | 
| 
      
 212 
     | 
    
         
            +
                    render :external
         
     | 
| 
      
 213 
     | 
    
         
            +
                  end
         
     | 
| 
       170 
214 
     | 
    
         
             
                else
         
     | 
| 
       171 
215 
     | 
    
         
             
                  flash[:error] = t('bigbluebutton_rails.rooms.errors.auth.failure')
         
     | 
| 
       172 
     | 
    
         
            -
                  render : 
     | 
| 
      
 216 
     | 
    
         
            +
                  render :external, :status => :unauthorized
         
     | 
| 
       173 
217 
     | 
    
         
             
                end
         
     | 
| 
       174 
218 
     | 
    
         
             
              end
         
     | 
| 
       175 
219 
     | 
    
         | 
| 
       176 
220 
     | 
    
         
             
              def running
         
     | 
| 
       177 
     | 
    
         
            -
                @room = BigbluebuttonRoom.find_by_param(params[:id])
         
     | 
| 
       178 
     | 
    
         
            -
             
     | 
| 
       179 
221 
     | 
    
         
             
                begin
         
     | 
| 
       180 
222 
     | 
    
         
             
                  @room.fetch_is_running?
         
     | 
| 
       181 
223 
     | 
    
         
             
                rescue BigBlueButton::BigBlueButtonException => e
         
     | 
| 
         @@ -184,12 +226,9 @@ class Bigbluebutton::RoomsController < ApplicationController 
     | 
|
| 
       184 
226 
     | 
    
         
             
                else
         
     | 
| 
       185 
227 
     | 
    
         
             
                  render :json => { :running => "#{@room.is_running?}" }
         
     | 
| 
       186 
228 
     | 
    
         
             
                end
         
     | 
| 
       187 
     | 
    
         
            -
             
     | 
| 
       188 
229 
     | 
    
         
             
              end
         
     | 
| 
       189 
230 
     | 
    
         | 
| 
       190 
231 
     | 
    
         
             
              def end
         
     | 
| 
       191 
     | 
    
         
            -
                @room = BigbluebuttonRoom.find_by_param(params[:id])
         
     | 
| 
       192 
     | 
    
         
            -
             
     | 
| 
       193 
232 
     | 
    
         
             
                error = false
         
     | 
| 
       194 
233 
     | 
    
         
             
                begin
         
     | 
| 
       195 
234 
     | 
    
         
             
                  @room.fetch_is_running?
         
     | 
| 
         @@ -225,13 +264,21 @@ class Bigbluebutton::RoomsController < ApplicationController 
     | 
|
| 
       225 
264 
     | 
    
         
             
              end
         
     | 
| 
       226 
265 
     | 
    
         | 
| 
       227 
266 
     | 
    
         
             
              def join_mobile
         
     | 
| 
       228 
     | 
    
         
            -
                @ 
     | 
| 
       229 
     | 
    
         
            -
                @join_url 
     | 
| 
       230 
     | 
    
         
            -
             
     | 
| 
      
 267 
     | 
    
         
            +
                @join_url = join_bigbluebutton_server_room_path(@server, @room, :mobile => '1')
         
     | 
| 
      
 268 
     | 
    
         
            +
                @join_url.gsub!(/http:\/\//i, "bigbluebutton://")
         
     | 
| 
      
 269 
     | 
    
         
            +
             
     | 
| 
      
 270 
     | 
    
         
            +
                # TODO: we can't use the mconf url because the mobile client scanning the qrcode is not
         
     | 
| 
      
 271 
     | 
    
         
            +
                # logged. so we are using the full BBB url for now.
         
     | 
| 
      
 272 
     | 
    
         
            +
                @qrcode_url = @room.join_url(bigbluebutton_user.name, bigbluebutton_role(@room))
         
     | 
| 
      
 273 
     | 
    
         
            +
                @qrcode_url.gsub!("http://", "bigbluebutton://")
         
     | 
| 
       231 
274 
     | 
    
         
             
              end
         
     | 
| 
       232 
275 
     | 
    
         | 
| 
       233 
276 
     | 
    
         
             
              protected
         
     | 
| 
       234 
277 
     | 
    
         | 
| 
      
 278 
     | 
    
         
            +
              def find_room
         
     | 
| 
      
 279 
     | 
    
         
            +
                @room = BigbluebuttonRoom.find_by_param(params[:id])
         
     | 
| 
      
 280 
     | 
    
         
            +
              end
         
     | 
| 
      
 281 
     | 
    
         
            +
             
     | 
| 
       235 
282 
     | 
    
         
             
              def find_server
         
     | 
| 
       236 
283 
     | 
    
         
             
                if params.has_key?(:server_id)
         
     | 
| 
       237 
284 
     | 
    
         
             
                  @server = BigbluebuttonServer.find_by_param(params[:server_id])
         
     | 
| 
         @@ -241,45 +288,19 @@ class Bigbluebutton::RoomsController < ApplicationController 
     | 
|
| 
       241 
288 
     | 
    
         
             
              end
         
     | 
| 
       242 
289 
     | 
    
         | 
| 
       243 
290 
     | 
    
         
             
              def join_internal(username, role, wait_action)
         
     | 
| 
       244 
     | 
    
         
            -
             
     | 
| 
       245 
291 
     | 
    
         
             
                begin
         
     | 
| 
       246 
     | 
    
         
            -
                  @room. 
     | 
| 
       247 
     | 
    
         
            -
             
     | 
| 
       248 
     | 
    
         
            -
             
     | 
| 
       249 
     | 
    
         
            -
             
     | 
| 
       250 
     | 
    
         
            -
                  if role == :moderator
         
     | 
| 
       251 
     | 
    
         
            -
             
     | 
| 
       252 
     | 
    
         
            -
                    add_domain_to_logout_url(@room, request.protocol, request.host)
         
     | 
| 
       253 
     | 
    
         
            -
             
     | 
| 
       254 
     | 
    
         
            -
                    @room.send_create unless @room.is_running?
         
     | 
| 
       255 
     | 
    
         
            -
                    join_url = @room.join_url(username, role)
         
     | 
| 
       256 
     | 
    
         
            -
                    redirect_to(join_url)
         
     | 
| 
       257 
     | 
    
         
            -
             
     | 
| 
       258 
     | 
    
         
            -
                  # normal user only joins if the conference is running
         
     | 
| 
       259 
     | 
    
         
            -
                  # if it's not, wait for a moderator to create the conference
         
     | 
| 
      
 292 
     | 
    
         
            +
                  url = @room.perform_join(username, role, request)
         
     | 
| 
      
 293 
     | 
    
         
            +
                  unless url.nil?
         
     | 
| 
      
 294 
     | 
    
         
            +
                    url.gsub!(/http:\/\//i, "bigbluebutton://") if BigbluebuttonRails::value_to_boolean(params[:mobile])
         
     | 
| 
      
 295 
     | 
    
         
            +
                    redirect_to(url)
         
     | 
| 
       260 
296 
     | 
    
         
             
                  else
         
     | 
| 
       261 
     | 
    
         
            -
                     
     | 
| 
       262 
     | 
    
         
            -
             
     | 
| 
       263 
     | 
    
         
            -
                      redirect_to(join_url)
         
     | 
| 
       264 
     | 
    
         
            -
                    else
         
     | 
| 
       265 
     | 
    
         
            -
                      flash[:error] = t('bigbluebutton_rails.rooms.errors.auth.not_running')
         
     | 
| 
       266 
     | 
    
         
            -
                      render :action => wait_action
         
     | 
| 
       267 
     | 
    
         
            -
                    end
         
     | 
| 
      
 297 
     | 
    
         
            +
                    flash[:error] = t('bigbluebutton_rails.rooms.errors.auth.not_running')
         
     | 
| 
      
 298 
     | 
    
         
            +
                    render wait_action
         
     | 
| 
       268 
299 
     | 
    
         
             
                  end
         
     | 
| 
       269 
     | 
    
         
            -
             
     | 
| 
       270 
300 
     | 
    
         
             
                rescue BigBlueButton::BigBlueButtonException => e
         
     | 
| 
       271 
301 
     | 
    
         
             
                  flash[:error] = e.to_s
         
     | 
| 
       272 
302 
     | 
    
         
             
                  redirect_to request.referer
         
     | 
| 
       273 
303 
     | 
    
         
             
                end
         
     | 
| 
       274 
304 
     | 
    
         
             
              end
         
     | 
| 
       275 
305 
     | 
    
         | 
| 
       276 
     | 
    
         
            -
              def add_domain_to_logout_url(room, protocol, host)
         
     | 
| 
       277 
     | 
    
         
            -
                unless @room.logout_url.nil? or @room.logout_url =~ /^[a-z]+:\/\//  # matches the protocol
         
     | 
| 
       278 
     | 
    
         
            -
                  unless @room.logout_url =~ /^[a-z0-9]+([\-\.]{ 1}[a-z0-9]+)*/     # matches the host domain
         
     | 
| 
       279 
     | 
    
         
            -
                    @room.logout_url = host + @room.logout_url
         
     | 
| 
       280 
     | 
    
         
            -
                  end
         
     | 
| 
       281 
     | 
    
         
            -
                  @room.logout_url = protocol + @room.logout_url
         
     | 
| 
       282 
     | 
    
         
            -
                end
         
     | 
| 
       283 
     | 
    
         
            -
              end
         
     | 
| 
       284 
     | 
    
         
            -
             
     | 
| 
       285 
306 
     | 
    
         
             
            end
         
     |