mirror of
https://github.com/openSUSE/osem.git
synced 2026-08-18 06:01:12 +00:00
Roles into their own controller. Rework interface. Add flash messages to ajax calls. Add description to roles. Possible to edit roles in use.
This commit is contained in:
parent
eda5c2bc07
commit
ccd7ecbb90
59 changed files with 618 additions and 356 deletions
|
|
@ -8,10 +8,10 @@ feature 'Has correct abilities' do
|
|||
let(:conference4) { create(:full_conference) } # user is volunteer coordinator
|
||||
let(:conference5) { create(:full_conference) } # user has no role
|
||||
|
||||
let(:role_organizer) { create(:role, name: 'organizer', resource: conference1) }
|
||||
let(:role_cfp) { create(:role, name: 'cfp', resource: conference2) }
|
||||
let(:role_info_desk) { create(:role, name: 'info_desk', resource: conference3) }
|
||||
let(:role_volunteer_coordinator) { create(:role, name: 'volunteer_coordinator', resource: conference4) }
|
||||
let(:role_organizer) { Role.find_by(name: 'organizer', resource: conference1) }
|
||||
let(:role_cfp) { Role.find_by(name: 'cfp', resource: conference2) }
|
||||
let(:role_info_desk) { Role.find_by(name: 'info_desk', resource: conference3) }
|
||||
let(:role_volunteer_coordinator) { Role.find_by(name: 'volunteers_coordinator', resource: conference4) }
|
||||
|
||||
let(:user) { create(:user) }
|
||||
let(:user_organizer) { create(:user, role_ids: [role_organizer.id]) }
|
||||
|
|
@ -20,7 +20,7 @@ feature 'Has correct abilities' do
|
|||
let(:user_volunteer_coordinator) { create(:user, role_ids: [role_volunteer_coordinator.id]) }
|
||||
|
||||
scenario 'when user has no role' do
|
||||
user_organizer.is_admin = false
|
||||
user.is_admin = false
|
||||
sign_in user
|
||||
|
||||
visit admin_conference_path(conference1.short_title)
|
||||
|
|
@ -31,7 +31,9 @@ feature 'Has correct abilities' do
|
|||
scenario 'when user is organizer' do
|
||||
user_organizer.is_admin = false
|
||||
sign_in user_organizer
|
||||
|
||||
visit admin_conference_path(conference1.short_title)
|
||||
expect(current_path).to eq(admin_conference_path(conference1.short_title))
|
||||
|
||||
expect(page).to have_selector('li.nav-header.nav-header-bigger a', text: 'Dashboard')
|
||||
expect(page).to have_link('Basics', href: "/admin/conference/#{conference1.short_title}/edit")
|
||||
|
|
@ -107,7 +109,9 @@ feature 'Has correct abilities' do
|
|||
scenario 'when user is cfp' do
|
||||
user_cfp.is_admin = false
|
||||
sign_in user_cfp
|
||||
|
||||
visit admin_conference_path(conference2.short_title)
|
||||
expect(current_path).to eq(admin_conference_path(conference2.short_title))
|
||||
|
||||
expect(page).to have_selector('li.nav-header.nav-header-bigger a', text: 'Dashboard')
|
||||
expect(page).to_not have_link('Basics', href: "/admin/conference/#{conference2.short_title}/edit")
|
||||
|
|
@ -132,7 +136,7 @@ feature 'Has correct abilities' do
|
|||
expect(page).to have_link('Event Types', href: "/admin/conference/#{conference2.short_title}/program/event_types")
|
||||
expect(page).to have_link('Difficulty Levels', href: "/admin/conference/#{conference2.short_title}/program/difficulty_levels")
|
||||
expect(page).to_not have_link('Questions', href: "/admin/conference/#{conference2.short_title}/questions")
|
||||
expect(page).to_not have_link('Roles', href: "/admin/conference/#{conference2.short_title}/roles")
|
||||
expect(page).to have_link('Roles', href: "/admin/conference/#{conference2.short_title}/roles")
|
||||
|
||||
visit edit_admin_conference_path(conference2.short_title)
|
||||
expect(current_path).to eq(root_path)
|
||||
|
|
@ -180,7 +184,9 @@ feature 'Has correct abilities' do
|
|||
scenario 'when user is info desk' do
|
||||
user_info_desk.is_admin = false
|
||||
sign_in user_info_desk
|
||||
|
||||
visit admin_conference_path(conference3.short_title)
|
||||
expect(current_path).to eq(admin_conference_path(conference3.short_title))
|
||||
|
||||
expect(page).to have_selector('li.nav-header.nav-header-bigger a', text: 'Dashboard')
|
||||
expect(page).to_not have_link('Basics', href: "/admin/conference/#{conference2.short_title}/edit")
|
||||
|
|
@ -205,7 +211,7 @@ feature 'Has correct abilities' do
|
|||
expect(page).to_not have_link('Event types', href: "/admin/conference/#{conference3.short_title}/program/event_types")
|
||||
expect(page).to_not have_link('Difficulty levels', href: "/admin/conference/#{conference3.short_title}/program/difficulty_levels")
|
||||
expect(page).to have_link('Questions', href: "/admin/conference/#{conference3.short_title}/questions")
|
||||
expect(page).to_not have_link('Roles', href: "/admin/conference/#{conference3.short_title}/roles")
|
||||
expect(page).to have_link('Roles', href: "/admin/conference/#{conference3.short_title}/roles")
|
||||
|
||||
visit edit_admin_conference_path(conference3.short_title)
|
||||
expect(current_path).to eq(root_path)
|
||||
|
|
|
|||
|
|
@ -4,11 +4,10 @@ feature 'BaseController' do
|
|||
let(:conference) { create(:conference) }
|
||||
let(:user) { create(:user) }
|
||||
|
||||
let!(:organizer_role) { create(:role, name: 'organizer', resource: conference) }
|
||||
let!(:volunteers_coordinator_role) { create(:role, name: 'volunteers_coordinator', resource: conference) }
|
||||
let!(:cfp_role) { create(:role, name: 'cfp', resource: conference) }
|
||||
let!(:info_desk_role) { create(:role, name: 'info_desk', resource: conference) }
|
||||
let!(:speaker_role) { create(:role, name: 'speaker', resource: conference) }
|
||||
let!(:organizer_role) { Role.find_by(name: 'organizer', resource: conference) }
|
||||
let!(:volunteers_coordinator_role) { Role.find_by(name: 'volunteers_coordinator', resource: conference) }
|
||||
let!(:cfp_role) { Role.find_by(name: 'cfp', resource: conference) }
|
||||
let!(:info_desk_role) { Role.find_by(name: 'info_desk', resource: conference) }
|
||||
|
||||
describe 'GET #verify_user_admin' do
|
||||
context 'when user is a guest' do
|
||||
|
|
@ -30,14 +29,6 @@ feature 'BaseController' do
|
|||
expect(flash).to eq 'You are not authorized to access this area!'
|
||||
end
|
||||
|
||||
it 'a speaker it redirects to the root_path' do
|
||||
user.is_admin = false
|
||||
user.role_ids = speaker_role.id
|
||||
visit admin_conference_index_path
|
||||
expect(current_path).to eq root_path
|
||||
expect(flash).to eq 'You are not authorized to access this area!'
|
||||
end
|
||||
|
||||
it 'an admin he can access the admin area' do
|
||||
user.is_admin = true
|
||||
visit admin_conference_index_path
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ require 'spec_helper'
|
|||
feature Campaign do
|
||||
|
||||
let!(:conference) { create(:conference, short_title: 'osc14') }
|
||||
let!(:organizer_role) { create(:organizer_role, resource: conference) }
|
||||
let!(:organizer_role) { Role.find_by(name: 'organizer', resource: conference) }
|
||||
let!(:organizer) { create(:user, role_ids: [organizer_role.id]) }
|
||||
|
||||
shared_examples 'add and update campaign' do
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ require 'spec_helper'
|
|||
feature Conference do
|
||||
|
||||
let!(:conference) { create(:conference) }
|
||||
let!(:organizer_role) { create(:organizer_role, resource: conference) }
|
||||
let!(:organizer_role) { Role.find_by(name: 'organizer', resource: conference) }
|
||||
let!(:organizer) { create(:user, role_ids: [organizer_role.id]) }
|
||||
|
||||
shared_examples 'add and update cfp' do
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ require 'spec_helper'
|
|||
feature Commercial do
|
||||
# It is necessary to use bang version of let to build roles before user
|
||||
let!(:conference) { create(:conference) }
|
||||
let!(:organizer_role) { create(:organizer_role, resource: conference) }
|
||||
let!(:organizer_role) { Role.find_by(name: 'organizer', resource: conference) }
|
||||
let!(:organizer) { create(:user, role_ids: [organizer_role.id]) }
|
||||
let!(:participant) { create(:user) }
|
||||
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ feature Conference do
|
|||
|
||||
scenario 'update conference', feature: true, js: true do
|
||||
conference = create(:conference)
|
||||
organizer_role = create(:organizer_role, resource: conference)
|
||||
organizer_role = Role.find_by(name: 'organizer', resource: conference)
|
||||
organizer = create(:user, role_ids: [organizer_role.id])
|
||||
|
||||
expected_count = Conference.count
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ require 'spec_helper'
|
|||
feature Contact do
|
||||
|
||||
let!(:conference) { create(:conference) }
|
||||
let!(:organizer_role) { create(:organizer_role, resource: conference) }
|
||||
let!(:organizer_role) { Role.find_by(name: 'organizer', resource: conference) }
|
||||
let!(:organizer) { create(:user, email: 'admin@example.com', role_ids: [organizer_role.id]) }
|
||||
|
||||
shared_examples 'update a contact' do
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ require 'spec_helper'
|
|||
|
||||
feature DifficultyLevel do
|
||||
let!(:conference) { create(:conference) }
|
||||
let!(:organizer_role) { create(:organizer_role, resource: conference) }
|
||||
let!(:organizer_role) { Role.find_by(name: 'organizer', resource: conference) }
|
||||
let!(:organizer) { create(:user, role_ids: [organizer_role.id]) }
|
||||
|
||||
shared_examples 'difficulty levels' do
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ require 'spec_helper'
|
|||
|
||||
feature EmailSettings do
|
||||
let!(:conference) { create(:conference) }
|
||||
let!(:organizer_role) { create(:organizer_role, resource: conference) }
|
||||
let!(:organizer_role) { Role.find_by(name: 'organizer', resource: conference) }
|
||||
let!(:organizer) { create(:user, role_ids: [organizer_role.id]) }
|
||||
|
||||
shared_examples 'email settings' do
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ require 'spec_helper'
|
|||
|
||||
feature EventType do
|
||||
let!(:conference) { create(:conference) }
|
||||
let!(:organizer_role) { create(:organizer_role, resource: conference) }
|
||||
let!(:organizer_role) { Role.find_by(name: 'organizer', resource: conference) }
|
||||
let!(:organizer) { create(:user, role_ids: [organizer_role.id]) }
|
||||
|
||||
shared_examples 'event types' do
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ require 'spec_helper'
|
|||
|
||||
feature Lodging do
|
||||
let!(:conference) { create(:conference) }
|
||||
let!(:organizer_role) { create(:organizer_role, resource: conference) }
|
||||
let!(:organizer_role) { Role.find_by(name: 'organizer', resource: conference) }
|
||||
let!(:organizer) { create(:user, role_ids: [organizer_role.id]) }
|
||||
|
||||
scenario 'Add a lodging', feature: true, js: true do
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ feature Program do
|
|||
|
||||
let!(:conference) { create(:conference) }
|
||||
let!(:program) { conference.program }
|
||||
let!(:organizer_role) { create(:organizer_role, resource: conference) }
|
||||
let!(:organizer_role) { Role.find_by(name: 'organizer', resource: conference) }
|
||||
let!(:organizer) { create(:user, role_ids: [organizer_role.id]) }
|
||||
|
||||
describe 'edit program' do
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ require 'spec_helper'
|
|||
feature Event do
|
||||
let!(:conference) { create(:conference) }
|
||||
let!(:cfp) { create(:cfp, program_id: conference.program.id) }
|
||||
let!(:organizer_role) { create(:organizer_role, resource: conference) }
|
||||
let!(:organizer_role) { Role.find_by(name: 'organizer', resource: conference) }
|
||||
let!(:organizer) { create(:user, email: 'admin@example.com', role_ids: [organizer_role.id]) }
|
||||
let!(:participant) { create(:user) }
|
||||
let!(:participant_without_bio) { create(:user, biography: '') }
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ feature RegistrationPeriod do
|
|||
|
||||
# It is necessary to use bang version of let to build roles before user
|
||||
let!(:conference) { create(:conference) }
|
||||
let!(:organizer_role) { create(:organizer_role, resource: conference) }
|
||||
let!(:organizer_role) { Role.find_by(name: 'organizer', resource: conference) }
|
||||
let!(:organizer) { create(:user, email: 'admin@example.com', role_ids: [organizer_role.id]) }
|
||||
|
||||
shared_examples 'successfully' do
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ require 'spec_helper'
|
|||
feature Room do
|
||||
let!(:conference) { create(:conference) }
|
||||
let!(:venue) { create(:venue, conference: conference) }
|
||||
let!(:organizer_role) { create(:organizer_role, resource: conference) }
|
||||
let!(:organizer_role) { Role.find_by(name: 'organizer', resource: conference) }
|
||||
let!(:organizer) { create(:user, role_ids: [organizer_role.id]) }
|
||||
|
||||
shared_examples 'rooms' do
|
||||
|
|
|
|||
|
|
@ -4,9 +4,9 @@ feature Splashpage do
|
|||
|
||||
# It is necessary to use bang version of let to build roles before user
|
||||
let!(:conference) { create(:conference) }
|
||||
let!(:organizer_role) { create(:organizer_role, resource: conference) }
|
||||
let!(:organizer_role) { Role.find_by(name: 'organizer', resource: conference) }
|
||||
let!(:organizer) { create(:user, email: 'admin@example.com', role_ids: [organizer_role.id]) }
|
||||
let!(:participant) { create(:user, biography: '') }
|
||||
let!(:participant) { create(:user, biography: '', is_admin: false) }
|
||||
|
||||
scenario 'create a valid splashpage', js: true do
|
||||
sign_in organizer
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ require 'spec_helper'
|
|||
|
||||
feature Sponsor do
|
||||
let!(:conference) { create(:conference) }
|
||||
let!(:organizer_role) { create(:organizer_role, resource: conference) }
|
||||
let!(:organizer_role) { Role.find_by(name: 'organizer', resource: conference) }
|
||||
let!(:organizer) { create(:user, role_ids: [organizer_role.id]) }
|
||||
|
||||
shared_examples 'sponsors' do
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ require 'spec_helper'
|
|||
|
||||
feature SponsorshipLevel do
|
||||
let!(:conference) { create(:conference) }
|
||||
let!(:organizer_role) { create(:organizer_role, resource: conference) }
|
||||
let!(:organizer_role) { Role.find_by(name: 'organizer', resource: conference) }
|
||||
let!(:organizer) { create(:user, role_ids: [organizer_role.id]) }
|
||||
|
||||
shared_examples 'sponsorship_levels' do
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ require 'spec_helper'
|
|||
|
||||
feature Ticket do
|
||||
let!(:conference) { create(:conference, title: 'ExampleCon') }
|
||||
let!(:organizer_role) { create(:organizer_role, resource: conference) }
|
||||
let!(:organizer_role) { Role.find_by(name: 'organizer', resource: conference) }
|
||||
let!(:organizer) { create(:user, email: 'admin@example.com', role_ids: [organizer_role.id]) }
|
||||
|
||||
context 'as a organizer' do
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ require 'spec_helper'
|
|||
|
||||
feature Track do
|
||||
let!(:conference) { create(:conference) }
|
||||
let!(:organizer_role) { create(:organizer_role, resource: conference) }
|
||||
let!(:organizer_role) { Role.find_by(name: 'organizer', resource: conference) }
|
||||
let!(:organizer) { create(:user, role_ids: [organizer_role.id]) }
|
||||
|
||||
shared_examples 'tracks' do
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ require 'spec_helper'
|
|||
|
||||
feature Conference do
|
||||
let!(:conference) { create(:conference) }
|
||||
let!(:organizer_role) { create(:organizer_role, resource: conference) }
|
||||
let!(:organizer_role) { Role.find_by(name: 'organizer', resource: conference) }
|
||||
let!(:organizer) { create(:user, role_ids: [organizer_role.id]) }
|
||||
|
||||
shared_examples 'venue' do
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ require 'spec_helper'
|
|||
|
||||
feature Conference do
|
||||
let!(:conference) { create(:conference) }
|
||||
let!(:organizer_role) { create(:organizer_role, resource: conference) }
|
||||
let!(:organizer_role) { Role.find_by(name: 'organizer', resource: conference) }
|
||||
let!(:organizer) { create(:user, role_ids: [organizer_role.id]) }
|
||||
|
||||
shared_examples 'volunteer' do
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue