Commit 365904e8 authored by Ammar Alakkad's avatar Ammar Alakkad

Add user caps to group's membership settings

Changelog: added
EE: true
parent 8bb538d8
...@@ -4,3 +4,4 @@ ...@@ -4,3 +4,4 @@
= render 'shared/allow_request_access', form: f = render 'shared/allow_request_access', form: f
= render_if_exists 'groups/member_lock_setting', f: f, group: @group = render_if_exists 'groups/member_lock_setting', f: f, group: @group
= render_if_exists 'groups/user_caps_setting', f: f, group: @group
- return unless Feature.enabled?(:saas_user_caps, group.root_ancestor)
- user_cap_docs_link_url = help_page_path("/user/admin_area/settings/sign_up_restrictions", anchor: "user-cap")
- user_cap_docs_link_start = '<a href="%{url}" target="_blank" rel="noopener noreferrer">'.html_safe % { url: user_cap_docs_link_url }
.form-group
= f.label :new_user_signups_cap, _('User cap'), class: 'gl-font-weight-bold'
.form-text.text-muted= html_escape(_('When the number of active users exceeds this number, additional users must be %{user_cap_docs_link_start}approved by an owner%{user_cap_docs_link_end}. Leave empty if you don\'t want to enforce approvals.')) % { user_cap_docs_link_start: user_cap_docs_link_start, user_cap_docs_link_end: '</a>'.html_safe }
= f.number_field :new_user_signups_cap, min: 1, class: 'form-control form-control-sm gl-form-input gl-w-full gl-mt-3'
...@@ -408,6 +408,52 @@ RSpec.describe 'Edit group settings' do ...@@ -408,6 +408,52 @@ RSpec.describe 'Edit group settings' do
end end
end end
describe 'user caps settings' do
context 'when :saas_user_caps feature flag is off' do
before do
stub_feature_flags(saas_user_caps: false)
visit edit_group_path(group)
end
it 'is not visible' do
expect(page).not_to have_content('User cap')
end
end
context 'when :saas_user_caps feature flag is on', :js do
let(:user_caps_selector) { '[name="group[new_user_signups_cap]"]' }
before do
stub_feature_flags(saas_user_caps: true)
visit edit_group_path(group)
end
it 'is visible' do
expect(page).to have_content('User cap')
end
it 'will save positive numbers' do
find(user_caps_selector).set(5)
click_button 'Save changes'
wait_for_requests
expect(page).to have_content("Group 'Foo bar' was successfully updated.")
end
it 'will not allow negative number' do
find(user_caps_selector).set(-5)
click_button 'Save changes'
expect(page).to have_content('This field is required.')
wait_for_requests
expect(page).not_to have_content("Group 'Foo bar' was successfully updated.")
end
end
end
def save_permissions_group def save_permissions_group
page.within('.gs-permissions') do page.within('.gs-permissions') do
click_button 'Save changes' click_button 'Save changes'
......
...@@ -37133,6 +37133,9 @@ msgstr "" ...@@ -37133,6 +37133,9 @@ msgstr ""
msgid "User and IP rate limits" msgid "User and IP rate limits"
msgstr "" msgstr ""
msgid "User cap"
msgstr ""
msgid "User created at" msgid "User created at"
msgstr "" msgstr ""
...@@ -38432,6 +38435,9 @@ msgstr "" ...@@ -38432,6 +38435,9 @@ msgstr ""
msgid "When merge requests and commits in the default branch close, any issues they reference also close." msgid "When merge requests and commits in the default branch close, any issues they reference also close."
msgstr "" msgstr ""
msgid "When the number of active users exceeds this number, additional users must be %{user_cap_docs_link_start}approved by an owner%{user_cap_docs_link_end}. Leave empty if you don't want to enforce approvals."
msgstr ""
msgid "When this merge request is accepted" msgid "When this merge request is accepted"
msgid_plural "When these merge requests are accepted" msgid_plural "When these merge requests are accepted"
msgstr[0] "" msgstr[0] ""
......
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