GitHub Access Token became invalid

It seems like the GitHub access token used for retrieving details about this repository from GitHub became invalid. This might prevent certain types of inspections from being run (in particular, everything related to pull requests).
Please ask an admin of your repository to re-new the access token on this website.

Joiner.join_room()   B
last analyzed

Complexity

Conditions 5

Size

Total Lines 27

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 5
dl 0
loc 27
rs 8.7653
c 1
b 0
f 0
1
# frozen_string_literal: true
2
3
# BigBlueButton open source conferencing system - http://www.bigbluebutton.org/.
4
#
5
# Copyright (c) 2018 BigBlueButton Inc. and by respective authors (see below).
6
#
7
# This program is free software; you can redistribute it and/or modify it under the
8
# terms of the GNU Lesser General Public License as published by the Free Software
9
# Foundation; either version 3.0 of the License, or (at your option) any later
10
# version.
11
#
12
# BigBlueButton is distributed in the hope that it will be useful, but WITHOUT ANY
13
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
14
# PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
15
#
16
# You should have received a copy of the GNU Lesser General Public License along
17
# with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
18
19
module Joiner
20
  extend ActiveSupport::Concern
21
22
  # Displays the join room page to the user
23
  def show_user_join
24
    # Get users name
25
    @name = if current_user
26
      current_user.name
27
    elsif cookies.encrypted[:greenlight_name]
28
      cookies.encrypted[:greenlight_name]
29
    else
30
      ""
31
    end
32
33
    @search, @order_column, @order_direction, pub_recs =
34
      public_recordings(@room.bbb_id, params.permit(:search, :column, :direction), true)
35
36
    @pagy, @public_recordings = pagy_array(pub_recs)
37
38
    render :join
39
  end
40
41
  # create or update cookie to track the three most recent rooms a user joined
42
  def save_recent_rooms
43
    if current_user
44
      recently_joined_rooms = cookies.encrypted["#{current_user.uid}_recently_joined_rooms"].to_a
45
      cookies.encrypted["#{current_user.uid}_recently_joined_rooms"] =
46
        recently_joined_rooms.prepend(@room.id).uniq[0..2]
47
    end
48
  end
49
50
  def join_room(opts)
51
    room_settings = JSON.parse(@room[:room_settings])
52
53
    if room_running?(@room.bbb_id) || @room.owned_by?(current_user) || room_settings["anyoneCanStart"]
54
55
      # Determine if the user needs to join as a moderator.
56
      opts[:user_is_moderator] = @room.owned_by?(current_user) || room_settings["joinModerator"]
57
58
      opts[:require_moderator_approval] = room_settings["requireModeratorApproval"]
59
60
      if current_user
61
        redirect_to join_path(@room, current_user.name, opts, current_user.uid)
62
      else
63
        join_name = params[:join_name] || params[@room.invite_path][:join_name]
64
        redirect_to join_path(@room, join_name, opts)
65
      end
66
    else
67
      search_params = params[@room.invite_path] || params
68
      @search, @order_column, @order_direction, pub_recs =
69
        public_recordings(@room.bbb_id, search_params.permit(:search, :column, :direction), true)
70
71
      @pagy, @public_recordings = pagy_array(pub_recs)
72
73
      # They need to wait until the meeting begins.
74
      render :wait
75
    end
76
  end
77
78
  def incorrect_user_domain
79
    Rails.configuration.loadbalanced_configuration && @room.owner.provider != @user_domain
80
  end
81
82
  # Default, unconfigured meeting options.
83
  def default_meeting_options
84
    invite_msg = I18n.t("invite_message")
85
    {
86
      user_is_moderator: false,
87
      meeting_logout_url: request.base_url + logout_room_path(@room),
88
      meeting_recorded: true,
89
      moderator_message: "#{invite_msg}\n\n#{request.base_url + room_path(@room)}",
90
      host: request.host,
91
      recording_default_visibility: @settings.get_value("Default Recording Visibility") == "public"
92
    }
93
  end
94
end
95