Class: Debci::SelfService
- Includes:
- TestHandler, Validators::APTSource
- Defined in:
- lib/debci/self_service.rb
Defined Under Namespace
Classes: InvalidRequest
Constant Summary
Constants included from HTMLHelpers
Class Method Summary collapse
Instance Method Summary collapse
- #enable_developer_login? ⇒ Boolean
- #get_same_pending_jobs(job) ⇒ Object
- #login_callback(uid, username) ⇒ Object
- #validate_form_submission(package, suite, archs, extra_apt_sources) ⇒ Object
Methods included from Validators::APTSource
Methods included from TestHandler
#enqueue, #get_job_to_retry, #request_batch_tests, #request_tests, #valid_package_name?, #validate_batch_test, #validate_priority, #validate_tests
Methods inherited from App
#authenticate!, #forbidden, #get_page_params, get_page_range, #get_page_range, #logged_in?, #logging_in?, #pagination_params, #refresh!
Methods included from HTMLHelpers
#ansi_to_html, #expand_pin_packages, #expand_url, #file_link, #history_url, #icon, #package_url, #pkg_history_url, #title_test_trigger_pin
Class Method Details
Instance Method Details
#enable_developer_login? ⇒ Boolean
20 21 22 |
# File 'lib/debci/self_service.rb', line 20 def enable_developer_login? self.class.enable_developer_login? end |
#get_same_pending_jobs(job) ⇒ Object
278 279 280 281 282 283 284 285 286 287 288 |
# File 'lib/debci/self_service.rb', line 278 def get_same_pending_jobs(job) Debci::Job.pending.where( package_id: job.package_id, suite: job.suite, arch: job.arch, requestor: job.requestor, trigger: job.trigger, is_private: job.is_private ).select { |j| Set.new(j.pin_packages) == Set.new(job.pin_packages) } .select { |j| Set.new(j.extra_apt_sources) == Set.new(job.extra_apt_sources) } end |
#login_callback(uid, username) ⇒ Object
290 291 292 293 294 295 296 297 298 299 |
# File 'lib/debci/self_service.rb', line 290 def login_callback(uid, username) user = Debci::User.find_or_create_by!(uid: uid) do |c| c.username = username end user.update(username: username) if user.username != username session[:user_id] = user.id original_url = session[:original_url] session.delete(:original_url) redirect(original_url || "/user/#{user.username}") end |
#validate_form_submission(package, suite, archs, extra_apt_sources) ⇒ Object
197 198 199 200 201 202 203 204 205 206 |
# File 'lib/debci/self_service.rb', line 197 def validate_form_submission(package, suite, archs, extra_apt_sources) raise InvalidRequest.new('Please enter a valid package name') unless valid_package_name?(package) raise InvalidRequest.new('Please select a suite') if suite == '' raise InvalidRequest.new('Please select an architecture') if archs.empty? invalid_extra_apt_sources = invalid_extra_apt_sources(extra_apt_sources) raise InvalidRequest.new("Please enter valid extra apt sources: Invalid apt sources: #{invalid_extra_apt_sources}") unless invalid_extra_apt_sources.empty? raise InvalidRequest.new("Invalid suite: #{suite}") unless Debci.config.suite_list.include?(suite) invalid_archs = archs.reject { |a| Debci.config.arch_list.include?(a) } raise InvalidRequest.new("Invalid architectures: #{invalid_archs.join(', ')}") unless invalid_archs.empty? end |