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)

app/controllers/sessions_controller.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
class SessionsController < ApplicationController
20
  include Authenticator
21
  include Registrar
22
  include Emailer
23
  include LdapAuthenticator
24
25
  skip_before_action :verify_authenticity_token, only: [:omniauth, :fail]
26
  before_action :check_user_signup_allowed, only: [:new]
27
  before_action :ensure_unauthenticated_except_twitter, only: [:new, :signin]
28
29
  # GET /signin
30
  def signin
31
    check_if_twitter_account
32
33
    if one_provider
34
      provider_path = if Rails.configuration.omniauth_ldap
35
        ldap_signin_path
36
      else
37
        "#{Rails.configuration.relative_url_root}/auth/#{providers.first}"
38
      end
39
40
      return redirect_to provider_path
41
    end
42
  end
43
44
  # GET /ldap_signin
45
  def ldap_signin
46
  end
47
48
  # GET /signup
49
  def new
50
    # Check if the user needs to be invited
51
    if invite_registration
52
      redirect_to root_path, flash: { alert: I18n.t("registration.invite.no_invite") } unless params[:invite_token]
53
54
      session[:invite_token] = params[:invite_token]
55
    end
56
57
    check_if_twitter_account(true)
58
59
    @user = User.new
60
  end
61
62
  # POST /users/login
63
  def create
64
    logger.info "Support: #{session_params[:email]} is attempting to login."
65
66
    user = User.include_deleted.find_by(email: session_params[:email])
67
68
    is_super_admin = user&.has_role? :super_admin
69
70
    # Scope user to domain if the user is not a super admin
71
    user = User.include_deleted.find_by(email: session_params[:email], provider: @user_domain) unless is_super_admin
72
73
    # Check user with that email exists
74
    return redirect_to(signin_path, alert: I18n.t("invalid_credentials")) unless user
75
    # Check correct password was entered
76
    return redirect_to(signin_path, alert: I18n.t("invalid_credentials")) unless user.try(:authenticate,
77
      session_params[:password])
78
    # Check that the user is not deleted
79
    return redirect_to root_path, flash: { alert: I18n.t("registration.banned.fail") } if user.deleted?
80
81
    unless is_super_admin
82
      # Check that the user is a Greenlight account
83
      return redirect_to(root_path, alert: I18n.t("invalid_login_method")) unless user.greenlight_account?
84
      # Check that the user has verified their account
85
      return redirect_to(account_activation_path(email: user.email)) unless user.activated?
86
    end
87
88
    login(user)
89
  end
90
91
  # GET /users/logout
92
  def destroy
93
    logout
94
    redirect_to root_path
95
  end
96
97
  # GET/POST /auth/:provider/callback
98
  def omniauth
99
    @auth = request.env['omniauth.auth']
100
101
    begin
102
      process_signin
103
    rescue => e
104
      logger.error "Error authenticating via omniauth: #{e}"
105
      omniauth_fail
106
    end
107
  end
108
109
  # POST /auth/failure
110
  def omniauth_fail
111
    if params[:message].nil?
112
      redirect_to root_path, alert: I18n.t("omniauth_error")
113
    else
114
      redirect_to root_path, alert: I18n.t("omniauth_specific_error", error: params["message"])
115
    end
116
  end
117
118
  # GET /auth/ldap
119
  def ldap
120
    ldap_config = {}
121
    ldap_config[:host] = ENV['LDAP_SERVER']
122
    ldap_config[:port] = ENV['LDAP_PORT'].to_i != 0 ? ENV['LDAP_PORT'].to_i : 389
123
    ldap_config[:bind_dn] = ENV['LDAP_BIND_DN']
124
    ldap_config[:password] = ENV['LDAP_PASSWORD']
125
    ldap_config[:encryption] = if ENV['LDAP_METHOD'] == 'ssl'
126
                                    'simple_tls'
127
                                elsif ENV['LDAP_METHOD'] == 'tls'
128
                                    'start_tls'
129
                                end
130
    ldap_config[:base] = ENV['LDAP_BASE']
131
    ldap_config[:uid] = ENV['LDAP_UID']
132
133
    result = send_ldap_request(params[:session], ldap_config)
134
135
    return redirect_to(ldap_signin_path, alert: I18n.t("invalid_credentials")) unless result
136
137
    @auth = parse_auth(result.first, ENV['LDAP_ROLE_FIELD'])
138
139
    begin
140
      process_signin
141
    rescue => e
142
      logger.error "Support: Error authenticating via omniauth: #{e}"
143
      omniauth_fail
144
    end
145
  end
146
147
  private
148
149
  # Verify that GreenLight is configured to allow user signup.
150
  def check_user_signup_allowed
151
    redirect_to root_path unless Rails.configuration.allow_user_signup
152
  end
153
154
  def session_params
155
    params.require(:session).permit(:email, :password)
156
  end
157
158
  def one_provider
159
    providers = configured_providers
160
161
    (!allow_user_signup? || !allow_greenlight_accounts?) && providers.count == 1 &&
162
      !Rails.configuration.loadbalanced_configuration
163
  end
164
165
  def check_user_exists
166
    User.exists?(social_uid: @auth['uid'], provider: current_provider)
167
  end
168
169
  def check_user_deleted(email)
170
    User.deleted.exists?(email: email, provider: @user_domain)
171
  end
172
173
  def check_auth_deleted
174
    User.deleted.exists?(social_uid: @auth['uid'], provider: current_provider)
175
  end
176
177
  def current_provider
178
    @auth['provider'] == "bn_launcher" ? @auth['info']['customer'] : @auth['provider']
179
  end
180
181
  # Check if the user already exists, if not then check for invitation
182
  def passes_invite_reqs
183
    return true if @user_exists
184
185
    invitation = check_user_invited("", session[:invite_token], @user_domain)
186
    invitation[:present]
187
  end
188
189
  def process_signin
190
    @user_exists = check_user_exists
191
192
    if !@user_exists && @auth['provider'] == "twitter"
193
      return redirect_to root_path, flash: { alert: I18n.t("registration.deprecated.twitter_signup") }
194
    end
195
196
    # Check if user is deleted
197
    return redirect_to root_path, flash: { alert: I18n.t("registration.banned.fail") } if check_auth_deleted
198
199
    # If using invitation registration method, make sure user is invited
200 View Code Duplication
    return redirect_to root_path, flash: { alert: I18n.t("registration.invite.no_invite") } unless passes_invite_reqs
0 ignored issues
show
This code seems to be duplicated in your project.
Loading history...
201
202
    user = User.from_omniauth(@auth)
203
204
    logger.info "Support: Auth user #{user.email} is attempting to login."
205
206
    # Add pending role if approval method and is a new user
207
    if approval_registration && !@user_exists
208
      user.add_role :pending
209
210
      # Inform admins that a user signed up if emails are turned on
211
      send_approval_user_signup_email(user)
212
213
      return redirect_to root_path, flash: { success: I18n.t("registration.approval.signup") }
214
    end
215
216
    send_invite_user_signup_email(user) if invite_registration && !@user_exists
217
218
    login(user)
219
220
    if @auth['provider'] == "twitter"
221
      flash[:alert] = if allow_user_signup? && allow_greenlight_accounts?
222
        I18n.t("registration.deprecated.twitter_signin", link: signup_path(old_twitter_user_id: user.id))
223
      else
224
        I18n.t("registration.deprecated.twitter_signin", link: signin_path(old_twitter_user_id: user.id))
225
      end
226
    end
227
  end
228
end
229