Commit f26265a8 authored by Ruben Davila's avatar Ruben Davila

Remove unused code related to trial license generation

Trial licenses are going to be generated from the subscription portal
now.
parent 8e3265d7
class Admin::TrialsController < Admin::ApplicationController
before_action :check_presence_of_license
def new
end
def create
build_license
if save_license
redirect_to admin_license_url, notice: 'Your trial license was successfully activated'
else
message = 'An error occurred while generating the trial license, please try again a few minutes.<br>'\
'If the error persist please try by creating the license from '\
'<a href="https://about.gitlab.com/free-trial/" target="_blank">this page</a>.'
flash.now[:alert] = message.html_safe
render :new
end
end
def build_license
@license = License.new
end
def save_license
result = HTTParty.post("#{Gitlab::SUBSCRIPTIONS_URL}/trials", body: params)
if result.ok?
@license.data = result['license_key']
@license.save
else
Rails.logger.error("Error generating trial license: #{result['error']}")
@license.errors.add(:base, result['error'])
end
@license.persisted?
end
def check_presence_of_license
if error_message.present?
redirect_to admin_license_url, alert: error_message
end
end
private
def error_message
@message ||= if License.trial.present?
'You have already used a free trial, if you want to extend it please contact us at '\
'<a href="mailto:sales@gitlab.com">sales@gitlab.com</a>.'.html_safe
elsif License.current&.active?
'You already have an active license key installed on this server.'
end
end
end
- page_title 'Trial license'
.container-fluid.trial-form-container
.text-center.start-trial-header
%h2 Free Trial of GitLab Enterprise Edition
%p.lead.trial-description No credit card required. 30 days free trial of all premium features.
.row.start-trial-body
.col-md-6
.section-body.ee-features
%ul.list-unstyled.feature-list
%li.row
.col-md-4
= custom_icon("ee_ldap_sync")
.col-md-8.feature-item-description
%h4 LDAP Group Sync
%p
Automatically sync groups and manage SSH-keys, permissions,
and authentication.
%li.row
.col-md-4
= custom_icon("ee_mr_approvals")
.col-md-8.feature-item-description
%h4 Merge Request Approval
%p
Make sure every merge request is approved by one or more people.
%li.row
.col-md-4
= custom_icon("ee_audit_events")
.col-md-8.feature-item-description
%h4 Project Audit Events
%p
View any modifications made within the GitLab server in an
advanced audit log system.
%li.row
.col-md-4
= custom_icon("ee_file_locking")
.col-md-8.feature-item-description
%h4 File Locking
%p
Scan or modify the code to meet your security and development needs.
%hr
%p.text-center
= link_to 'More premium features', '#'
.col-md-6
.section-body.trial-form
= form_tag admin_trials_path, method: :post do
.form-group
= label_tag :first_name
= text_field_tag :first_name, params[:first_name], class: "form-control", required: true
.form-group
= label_tag :last_name
= text_field_tag :last_name, params[:last_name], class: "form-control", required: true
.form-group
= label_tag :work_email
= text_field_tag :work_email, params[:work_email], class: "form-control", required: true
.form-group
= label_tag :company_name
= text_field_tag :company_name, params[:company_name], class: "form-control", required: true
.form-group
= label_tag :phone_number
= text_field_tag :phone_number, params[:phone_number], class: "form-control", required: true
%hr
.form-group
= label_tag :number_of_developers
= text_field_tag :number_of_developers, params[:number_of_developers], class: "form-control", required: true
.form-group
= label_tag :number_of_users
= text_field_tag :number_of_users, params[:number_of_users], class: "form-control", required: true
.form-group
= label_tag :country
= select_tag :country, options_for_select(CountryCodes.for_select, params[:country]), prompt: '- Select One -', class: "form-control", required: true
.form-group
= submit_tag 'Start your free trial', class: "btn btn-primary"
en:
countries:
AD: "Andorra"
AE: "United Arab Emirates"
AF: "Afghanistan"
AG: "Antigua and Barbuda"
AI: "Anguilla"
AL: "Albania"
AM: "Armenia"
AN: "Netherlands Antilles"
AO: "Angola"
AQ: "Antarctica"
AR: "Argentina"
AS: "American Samoa"
AT: "Austria"
AU: "Australia"
AW: "Aruba"
AX: "Aland Islands"
AZ: "Azerbaijan"
BA: "Bosnia and Herzegovina"
BB: "Barbados"
BD: "Bangladesh"
BE: "Belgium"
BF: "Burkina Faso"
BG: "Bulgaria"
BH: "Bahrain"
BI: "Burundi"
BJ: "Benin"
BL: "Saint Barthélemy"
BM: "Bermuda"
BN: "Brunei"
BO: "Bolivia"
BQ: "British Antarctic Territory"
BR: "Brazil"
BS: "Bahamas"
BT: "Bhutan"
BV: "Bouvet Island"
BW: "Botswana"
BY: "Belarus"
BZ: "Belize"
CA: "Canada"
CC: "Cocos Islands"
CD: "Congo - Kinshasa"
CF: "Central African Republic"
CG: "Congo - Brazzaville"
CH: "Switzerland"
CI: "Ivory Coast"
CK: "Cook Islands"
CL: "Chile"
CM: "Cameroon"
CN: "China"
CO: "Colombia"
CR: "Costa Rica"
CS: "Serbia and Montenegro"
CT: "Canton and Enderbury Islands"
CU: "Cuba"
CV: "Cape Verde"
CX: "Christmas Island"
CY: "Cyprus"
CZ: "Czech Republic"
DD: "East Germany"
DE: "Germany"
DJ: "Djibouti"
DK: "Denmark"
DM: "Dominica"
DO: "Dominican Republic"
DZ: "Algeria"
EC: "Ecuador"
EE: "Estonia"
EG: "Egypt"
EH: "Western Sahara"
ER: "Eritrea"
ES: "Spain"
ET: "Ethiopia"
FI: "Finland"
FJ: "Fiji"
FK: "Falkland Islands"
FM: "Micronesia"
FO: "Faroe Islands"
FQ: "French Southern and Antarctic Territories"
FR: "France"
FX: "Metropolitan France"
GA: "Gabon"
GB: "United Kingdom"
GD: "Grenada"
GE: "Georgia"
GF: "French Guiana"
GG: "Guernsey"
GH: "Ghana"
GI: "Gibraltar"
GL: "Greenland"
GM: "Gambia"
GN: "Guinea"
GP: "Guadeloupe"
GQ: "Equatorial Guinea"
GR: "Greece"
GS: "South Georgia and the South Sandwich Islands"
GT: "Guatemala"
GU: "Guam"
GW: "Guinea-Bissau"
GY: "Guyana"
HK: "Hong Kong"
HM: "Heard Island and McDonald Islands"
HN: "Honduras"
HR: "Croatia"
HT: "Haiti"
HU: "Hungary"
ID: "Indonesia"
IE: "Ireland"
IL: "Israel"
IM: "Isle of Man"
IN: "India"
IO: "British Indian Ocean Territory"
IQ: "Iraq"
IR: "Iran"
IS: "Iceland"
IT: "Italy"
JE: "Jersey"
JM: "Jamaica"
JO: "Jordan"
JP: "Japan"
JT: "Johnston Island"
KE: "Kenya"
KG: "Kyrgyzstan"
KH: "Cambodia"
KI: "Kiribati"
KM: "Comoros"
KN: "Saint Kitts and Nevis"
KP: "North Korea"
KR: "South Korea"
KW: "Kuwait"
KY: "Cayman Islands"
KZ: "Kazakhstan"
LA: "Laos"
LB: "Lebanon"
LC: "Saint Lucia"
LI: "Liechtenstein"
LK: "Sri Lanka"
LR: "Liberia"
LS: "Lesotho"
LT: "Lithuania"
LU: "Luxembourg"
LV: "Latvia"
LY: "Libya"
MA: "Morocco"
MC: "Monaco"
MD: "Moldova"
ME: "Montenegro"
MF: "Saint Martin"
MG: "Madagascar"
MH: "Marshall Islands"
MI: "Midway Islands"
MK: "Macedonia"
ML: "Mali"
MM: "Myanmar"
MN: "Mongolia"
MO: "Macau"
MP: "Northern Mariana Islands"
MQ: "Martinique"
MR: "Mauritania"
MS: "Montserrat"
MT: "Malta"
MU: "Mauritius"
MV: "Maldives"
MW: "Malawi"
MX: "Mexico"
MY: "Malaysia"
MZ: "Mozambique"
NA: "Namibia"
NC: "New Caledonia"
NE: "Niger"
NF: "Norfolk Island"
NG: "Nigeria"
NI: "Nicaragua"
NL: "Netherlands"
NO: "Norway"
NP: "Nepal"
NQ: "Dronning Maud Land"
NR: "Nauru"
NT: "Neutral Zone"
NU: "Niue"
NZ: "New Zealand"
OM: "Oman"
PA: "Panama"
PC: "Pacific Islands Trust Territory"
PE: "Peru"
PF: "French Polynesia"
PG: "Papua New Guinea"
PH: "Philippines"
PK: "Pakistan"
PL: "Poland"
PM: "Saint Pierre and Miquelon"
PN: "Pitcairn"
PR: "Puerto Rico"
PS: "Palestinian Territory"
PT: "Portugal"
PU: "U.S. Miscellaneous Pacific Islands"
PW: "Palau"
PY: "Paraguay"
PZ: "Panama Canal Zone"
QA: "Qatar"
QO: "Outlying Oceania"
QU: "European Union"
RE: "Reunion"
RO: "Romania"
RS: "Serbia"
RU: "Russia"
RW: "Rwanda"
SA: "Saudi Arabia"
SB: "Solomon Islands"
SC: "Seychelles"
SD: "Sudan"
SE: "Sweden"
SG: "Singapore"
SH: "Saint Helena"
SI: "Slovenia"
SJ: "Svalbard and Jan Mayen"
SK: "Slovakia"
SL: "Sierra Leone"
SM: "San Marino"
SN: "Senegal"
SO: "Somalia"
SR: "Suriname"
ST: "Sao Tome and Principe"
SU: "Union of Soviet Socialist Republics"
SV: "El Salvador"
SY: "Syria"
SZ: "Swaziland"
TC: "Turks and Caicos Islands"
TD: "Chad"
TF: "French Southern Territories"
TG: "Togo"
TH: "Thailand"
TJ: "Tajikistan"
TK: "Tokelau"
TL: "East Timor"
TM: "Turkmenistan"
TN: "Tunisia"
TO: "Tonga"
TR: "Turkey"
TT: "Trinidad and Tobago"
TV: "Tuvalu"
TW: "Taiwan"
TZ: "Tanzania"
UA: "Ukraine"
UG: "Uganda"
UM: "United States Minor Outlying Islands"
US: "United States"
UY: "Uruguay"
UZ: "Uzbekistan"
VA: "Vatican"
VC: "Saint Vincent and the Grenadines"
VD: "North Vietnam"
VE: "Venezuela"
VG: "British Virgin Islands"
VI: "U.S. Virgin Islands"
VN: "Vietnam"
VU: "Vanuatu"
WF: "Wallis and Futuna"
WK: "Wake Island"
WS: "Samoa"
YD: "People's Democratic Republic of Yemen"
YE: "Yemen"
YT: "Mayotte"
ZA: "South Africa"
ZM: "Zambia"
ZW: "Zimbabwe"
ZZ: "Unknown or Invalid Region"
......@@ -120,9 +120,6 @@ namespace :admin do
put :clear_repository_check_states
end
## EE-specific
resource :trials, only: [:new, :create]
## EE-specific
resource :license, only: [:show, :new, :create, :destroy] do
get :download, on: :member
......
module CountryCodes
extend self
def for_select
@countries ||= I18n.t(:countries)
.map { |code, label| [label, code] }
.sort_by { |label_with_code| label_with_code[0] }
end
end
require 'spec_helper'
describe Admin::TrialsController do
let(:admin) { create(:admin) }
before do
sign_in(admin)
end
describe 'POST #create' do
context 'without an active license' do
before do
expect_any_instance_of(License).to receive(:active?).and_return(false)
end
context 'with a successful response from subscription endpoint' do
it 'redirects to the license detail page' do
allow_any_instance_of(described_class).to receive(:save_license).and_return(true)
post :create
expect(response).to redirect_to admin_license_path
expect(flash[:notice]).to eq('Your trial license was successfully activated')
end
end
context 'with a failing response from subscription endpoint' do
it 'shows an error message' do
allow_any_instance_of(described_class).to receive(:save_license).and_return(false)
post :create
expect(response).to render_template(:new)
expect(flash[:alert]).to match(/An error occurred while generating the trial license/)
end
end
end
context 'with an active license' do
before do
expect_any_instance_of(License).to receive(:active?).and_return(true)
end
it 'does not allow creating a trial license' do
post :create
expect(response).to redirect_to admin_license_url
expect(flash[:alert]).to match(/You already have an active license/)
end
end
end
end
require 'spec_helper'
feature "Creating trial license", feature: true do
before do
gitlab_sign_in :admin
end
describe 'GET /admin/trials/new' do
context 'without a previous trial license' do
let!(:license_data) { create(:license, trial: true).data }
let(:body) do
{ 'license_key' => license_data }
end
before do
License.destroy_all
end
it 'allows the creation of the trial license' do
stub_request(:post, "#{Gitlab::SUBSCRIPTIONS_URL}/trials")
.to_return(body: JSON(body), status: 200, headers: { 'Content-Type' => 'application/json' })
visit new_admin_trials_path
fill_in :first_name, with: 'John'
fill_in :last_name, with: 'Doe'
fill_in :work_email, with: 'john@local.dev'
fill_in :company_name, with: 'GitLab'
fill_in :phone_number, with: '111-111111'
fill_in :number_of_developers, with: 50
fill_in :number_of_users, with: 100
select('United States', from: 'Country')
click_button 'Start your free trial'
expect(page).to have_content('Your trial license was successfully activated')
end
end
context 'with an active license' do
it 'does not render the form and shows an error' do
create(:license)
visit new_admin_trials_path
expect(page).to have_content('You already have an active license key installed on this server')
end
end
context 'with a previous expired trial license' do
it 'does not render the form and shows an error' do
create(:license, trial: true, expired: true)
visit new_admin_trials_path
expect(page).to have_content('You have already used a free trial')
end
end
end
end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment