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:
Stella 2015-01-12 23:13:10 +02:00 committed by Stella Rouzi
parent eda5c2bc07
commit ccd7ecbb90
59 changed files with 618 additions and 356 deletions

View file

@ -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)

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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) }

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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: '') }

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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