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.

Issues (27)

lib/omniauth_options.rb (1 issue)

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 OmniauthOptions
20
  module_function
21
22
  def omniauth_options(env)
23
    if env['omniauth.strategy'].options[:name] == "bn_launcher"
24
      protocol = Rails.env.production? ? "https" : env["rack.url_scheme"]
25
26
      customer_redirect_url = protocol + "://" + env["SERVER_NAME"] + ":" +
27
                              env["SERVER_PORT"]
28
      user_domain = parse_user_domain(env["SERVER_NAME"])
29
      env['omniauth.strategy'].options[:customer] = user_domain
30
      env['omniauth.strategy'].options[:customer_redirect_url] = customer_redirect_url
31
      env['omniauth.strategy'].options[:default_callback_url] = Rails.configuration.gl_callback_url
32
33
      # This is only used in the old launcher and should eventually be removed
34
      env['omniauth.strategy'].options[:checksum] = generate_checksum(user_domain, customer_redirect_url,
35
        Rails.configuration.launcher_secret)
36
    elsif env['omniauth.strategy'].options[:name] == "google"
37
      set_hd(env, ENV['GOOGLE_OAUTH2_HD'])
38
    elsif env['omniauth.strategy'].options[:name] == "office365"
39
      set_hd(env, ENV['OFFICE365_HD'])
40
    end
41
  end
42
43
  # Limits the domain that can be used with the provider
44
  def set_hd(env, hd)
45
    if hd
46
      hd_opts = hd.split(',')
47
      env['omniauth.strategy'].options[:hd] = if hd_opts.empty?
48
        nil
49
      elsif hd_opts.length == 1
50
        hd_opts[0]
51
      else
52
        hd_opts
53
      end
54
    end
55
  end
56
57
  # Parses the url for the user domain
58 View Code Duplication
  def parse_user_domain(hostname)
0 ignored issues
show
This code seems to be duplicated in your project.
Loading history...
59
    return hostname.split('.').first if Rails.configuration.url_host.empty?
60
    Rails.configuration.url_host.split(',').each do |url_host|
61
      return hostname.chomp(url_host).chomp('.') if hostname.include?(url_host)
62
    end
63
    ''
64
  end
65
66
  # Generates a checksum to use alongside the omniauth request
67
  def generate_checksum(user_domain, redirect_url, secret)
68
    string = user_domain + redirect_url + secret
69
    OpenSSL::Digest.digest('sha1', string).unpack1("H*")
70
  end
71
end
72