Merge branch 'master' of dev.gitlab.org:gitlab/gitlab-ee

This commit is contained in:
Patricio Cano
2015-05-22 18:11:46 -05:00
9 changed files with 65 additions and 58 deletions
+3
View File
@@ -1,3 +1,6 @@
v 7.11.2
- Fixed license upload and verification mechanism
v 7.11.0
- Skip git hooks commit validation when pushing new tag.
- Add Two-factor authentication (2FA) for LDAP logins
+1 -1
View File
@@ -219,7 +219,7 @@ GEM
diff-lcs (~> 1.1)
mime-types (~> 1.15)
posix-spawn (~> 0.3)
gitlab-license (0.0.2)
gitlab-license (0.0.3)
gitlab-linguist (3.0.1)
charlock_holmes (~> 0.6.6)
escape_utils (~> 0.2.4)
+2
View File
@@ -3,6 +3,8 @@ class HistoricalData < ActiveRecord::Base
# HistoricalData.during((Date.today - 1.year)..Date.today).average(:active_user_count)
scope :during, ->(range) { where(date: range) }
# HistoricalData.up_until(Date.today - 1.month).average(:active_user_count)
scope :up_until, ->(date) { where("date <= :date", date: date) }
class << self
def track!
+9 -13
View File
@@ -96,27 +96,23 @@ class License < ActiveRecord::Base
return unless self.license? && self.restricted?(:active_user_count)
restricted_user_count = self.restrictions[:active_user_count]
active_user_count = User.active.count
historical_active_user_count = HistoricalData.maximum(:active_user_count) || 0
max_active_user_count = [active_user_count, historical_active_user_count].max
date_range = (self.starts_at - 1.year)..self.starts_at
active_user_count = HistoricalData.during(date_range).maximum(:active_user_count) || 0
return unless active_user_count
return if max_active_user_count < restricted_user_count
return if active_user_count < restricted_user_count
overage = max_active_user_count - restricted_user_count
overage = active_user_count - restricted_user_count
message = ""
message <<
if historical_active_user_count > active_user_count
"At one point, this GitLab installation had "
else
"This GitLab installation has "
end
message << "#{number_with_delimiter max_active_user_count} active #{"user".pluralize(max_active_user_count)}, "
message << "During the year before this license started, this GitLab installation had "
message << "#{number_with_delimiter active_user_count} active #{"user".pluralize(active_user_count)}, "
message << "exceeding this license's limit of #{number_with_delimiter restricted_user_count} by "
message << "#{number_with_delimiter overage} #{"user".pluralize(overage)}. "
message << "Please upload a license for at least "
message << "#{number_with_delimiter max_active_user_count} #{"user".pluralize(max_active_user_count)}."
message << "#{number_with_delimiter active_user_count} #{"user".pluralize(active_user_count)}."
self.errors.add(:base, message)
end
+8 -7
View File
@@ -20,12 +20,12 @@
.panel-heading
Details
%ul.well-list
%li
%span.light Issued:
%strong= time_ago_with_tooltip @license.issued_at
%li
%span.light Uploaded:
%strong= time_ago_with_tooltip @license.created_at
%li
%span.light Started:
%strong= time_ago_with_tooltip @license.starts_at
%li
%span.light
- if @license.expired?
@@ -65,7 +65,8 @@
%strong
Exceeds license limit
- historical = HistoricalData.maximum(:active_user_count)
- date_range = (Date.today - 1.year)..Date.today
- historical = HistoricalData.during(date_range).maximum(:active_user_count)
- if historical
%li
%span.light Maximum active users:
@@ -106,8 +107,8 @@
%tr
- @license.licensee.keys.each do |label|
%th= label
%th Issued at
%th Uploaded at
%th Started at
%th Expired at
%th Active users
%tbody
@@ -117,10 +118,10 @@
%td= license.licensee[label]
%td
%span
= license.issued_at
= license.created_at
%td
%span
= license.created_at
= license.starts_at
%td
%span
= license.expires_at || "Never"
+3 -1
View File
@@ -2,6 +2,8 @@
## List users
Active users = Total accounts - Blocked users
Get a list of users.
This function takes pagination parameters `page` and `per_page` to restrict the list of users.
@@ -393,4 +395,4 @@ Parameters:
- `uid` (required) - id of specified user
- `id` (required) - SSH key ID
Will return `200 OK` on success, or `404 Not found` if either user or key cannot be found.
Will return `200 OK` on success, or `404 Not found` if either user or key cannot be found.
+1 -1
View File
@@ -211,7 +211,7 @@ FactoryGirl.define do
end
factory :gitlab_license, class: "Gitlab::License" do
issued_at { Date.today - 1.month }
starts_at { Date.today - 1.month }
licensee do
{ "Name" => Faker::Name.name }
end
+8 -2
View File
@@ -8,13 +8,19 @@ describe HistoricalData do
end
describe ".during" do
it "returns the historical data during the given period" do
it "returns the historical data during the specified period" do
expect(HistoricalData.during(Date.new(2014, 1, 1)..Date.new(2014, 12, 31)).average(:active_user_count)).to eq(650)
end
end
describe ".up_until" do
it "returns the historical data up until the specified date" do
expect(HistoricalData.up_until(Date.new(2014, 6, 1)).average(:active_user_count)).to eq(350)
end
end
describe ".at" do
it "returns the historical data at the given date" do
it "returns the historical data at the specified date" do
expect(HistoricalData.at(Date.new(2014, 8, 1)).active_user_count).to eq(800)
end
end
+30 -33
View File
@@ -23,39 +23,10 @@ describe License do
end
end
describe "Active user count" do
let(:active_user_count) { User.active.count }
context "when there is no active user count restriction" do
it "is valid" do
expect(license).to be_valid
end
end
context "when the active user count restriction is exceeded" do
before do
gl_license.restrictions = { active_user_count: active_user_count - 1 }
end
it "is invalid" do
expect(license).to_not be_valid
end
end
context "when the active user count restriction is not exceeded" do
before do
gl_license.restrictions = { active_user_count: active_user_count + 1 }
end
it "is valid" do
expect(license).to be_valid
end
end
end
describe "Historical active user count" do
let(:active_user_count) { User.active.count + 10 }
let!(:historical_data) { HistoricalData.create!(date: License.current.issued_at, active_user_count: active_user_count) }
let(:date) { License.current.starts_at }
let!(:historical_data) { HistoricalData.create!(date: date, active_user_count: active_user_count) }
context "when there is no active user count restriction" do
it "is valid" do
@@ -68,8 +39,34 @@ describe License do
gl_license.restrictions = { active_user_count: active_user_count - 1 }
end
it "is invalid" do
expect(license).to_not be_valid
context "when the license started" do
it "is invalid" do
expect(license).to_not be_valid
end
end
context "after the license started" do
let(:date) { Date.today }
it "is valid" do
expect(license).to be_valid
end
end
context "in the year before the license started" do
let(:date) { License.current.starts_at - 6.months }
it "is invalid" do
expect(license).to_not be_valid
end
end
context "earlier than a year before the license started" do
let(:date) { License.current.starts_at - 2.years }
it "is valid" do
expect(license).to be_valid
end
end
end