forked from External/greenlight
GRN2-176: Create a role editor that allows admins to specify what permissions each role has (#709)
* Add roles editor * Add colour selection ability to roles * Add ability to assign roles to users in the UI * Remove rolify and replace it with our own custom roles implemenation * - Fix all existing roles functionality - Fix super admins * Fix bugs with new customers not have default roles * Add can't create room setting * Code improvements * Fix migration * Add tests for new methods * Translate reserved role names * Pull roles from saml/ldap * Fix rspec * Fix scrutinizer issues * Fix email promoted/demoted tests * Apply comments * Redirect directly to the main room * Add comments
This commit is contained in:
committed by
Jesus Federico
parent
02b342b157
commit
4fc1714db8
44
spec/helpers/admins_helper_spec.rb
Normal file
44
spec/helpers/admins_helper_spec.rb
Normal file
@ -0,0 +1,44 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
# BigBlueButton open source conferencing system - http://www.bigbluebutton.org/.
|
||||
#
|
||||
# Copyright (c) 2018 BigBlueButton Inc. and by respective authors (see below).
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it under the
|
||||
# terms of the GNU Lesser General Public License as published by the Free Software
|
||||
# Foundation; either version 3.0 of the License, or (at your option) any later
|
||||
# version.
|
||||
#
|
||||
# BigBlueButton is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public License along
|
||||
# with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
require "rails_helper"
|
||||
|
||||
describe AdminsHelper do
|
||||
describe "edit_disabled" do
|
||||
it "should disable inputs for roles with a higher priority" do
|
||||
user = create(:user)
|
||||
admin_role = Role.find_by(name: "admin", provider: "greenlight")
|
||||
helper.instance_variable_set(:@selected_role, admin_role)
|
||||
|
||||
allow_any_instance_of(SessionsHelper).to receive(:current_user).and_return(user)
|
||||
|
||||
expect(helper.edit_disabled).to eq(true)
|
||||
end
|
||||
|
||||
it "should enable inputs for roles with a lower priority" do
|
||||
user = create(:user)
|
||||
user.roles << Role.find_by(name: "admin", provider: "greenlight")
|
||||
user_role = Role.find_by(name: "user", provider: "greenlight")
|
||||
helper.instance_variable_set(:@selected_role, user_role)
|
||||
|
||||
allow_any_instance_of(SessionsHelper).to receive(:current_user).and_return(user)
|
||||
|
||||
expect(helper.edit_disabled).to eq(false)
|
||||
end
|
||||
end
|
||||
end
|
@ -85,4 +85,14 @@ describe ApplicationHelper do
|
||||
expect(helper.allow_greenlight_accounts?).to eql(false)
|
||||
end
|
||||
end
|
||||
|
||||
describe "role_clour" do
|
||||
it "should use default if the user doens't have a role" do
|
||||
expect(helper.role_colour(Role.create(name: "test"))).to eq(Rails.configuration.primary_color_default)
|
||||
end
|
||||
|
||||
it "should use role colour if provided" do
|
||||
expect(helper.role_colour(Role.create(name: "test", colour: "#1234"))).to eq("#1234")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
44
spec/helpers/users_helper_spec.rb
Normal file
44
spec/helpers/users_helper_spec.rb
Normal file
@ -0,0 +1,44 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
# BigBlueButton open source conferencing system - http://www.bigbluebutton.org/.
|
||||
#
|
||||
# Copyright (c) 2018 BigBlueButton Inc. and by respective authors (see below).
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it under the
|
||||
# terms of the GNU Lesser General Public License as published by the Free Software
|
||||
# Foundation; either version 3.0 of the License, or (at your option) any later
|
||||
# version.
|
||||
#
|
||||
# BigBlueButton is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public License along
|
||||
# with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
require "rails_helper"
|
||||
|
||||
describe UsersHelper do
|
||||
describe "disabled roles" do
|
||||
it "should return roles with a less than or equal to priority for non admins" do
|
||||
user = create(:user)
|
||||
allow_any_instance_of(SessionsHelper).to receive(:current_user).and_return(user)
|
||||
|
||||
disabled_roles = helper.disabled_roles(user)
|
||||
|
||||
expect(disabled_roles.count).to eq(1)
|
||||
end
|
||||
|
||||
it "should return roles with a lesser priority for admins" do
|
||||
admin = create(:user)
|
||||
admin.add_role :admin
|
||||
user = create(:user)
|
||||
|
||||
allow_any_instance_of(SessionsHelper).to receive(:current_user).and_return(admin)
|
||||
|
||||
disabled_roles = helper.disabled_roles(user)
|
||||
|
||||
expect(disabled_roles.count).to eq(1)
|
||||
end
|
||||
end
|
||||
end
|
Reference in New Issue
Block a user