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.

Room.invite_path()   A
last analyzed

Complexity

Conditions 1

Size

Total Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
dl 0
loc 3
rs 10
c 0
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
require 'bbb_api'
20
21
class Room < ApplicationRecord
22
  include Deleteable
23
24
  before_create :setup
25
26
  validates :name, presence: true
27
28
  belongs_to :owner, class_name: 'User', foreign_key: :user_id
29
30
  # Determines if a user owns a room.
31
  def owned_by?(user)
32
    return false if user.nil?
33
    user.rooms.include?(self)
34
  end
35
36
  # Determines the invite path for the room.
37
  def invite_path
38
    "#{Rails.configuration.relative_url_root}/#{CGI.escape(uid)}"
39
  end
40
41
  # Notify waiting users that a meeting has started.
42
  def notify_waiting
43
    ActionCable.server.broadcast("#{uid}_waiting_channel", action: "started")
44
  end
45
46
  private
47
48
  # Generates a uid for the room and BigBlueButton.
49
  def setup
50
    self.uid = random_room_uid
51
    self.bbb_id = Digest::SHA1.hexdigest(Rails.application.secrets[:secret_key_base] + Time.now.to_i.to_s).to_s
52
    self.moderator_pw = RandomPassword.generate(length: 12)
53
    self.attendee_pw = RandomPassword.generate(length: 12)
54
  end
55
56
  # Generates a three character uid chunk.
57
  def uid_chunk
58
    charset = ("a".."z").to_a - %w(b i l o s) + ("2".."9").to_a - %w(5 8)
59
    (0...3).map { charset.to_a[rand(charset.size)] }.join
60
  end
61
62
  # Generates a random room uid that uses the users name.
63
  def random_room_uid
64
    [owner.name_chunk, uid_chunk, uid_chunk].join('-').downcase
65
  end
66
end
67