update rolify
This commit is contained in:
parent
3dc7aaf4ea
commit
786d2c7985
7 changed files with 24 additions and 24 deletions
|
|
@ -92,7 +92,7 @@ GEM
|
||||||
byebug (3.1.2)
|
byebug (3.1.2)
|
||||||
columnize (~> 0.8)
|
columnize (~> 0.8)
|
||||||
debugger-linecache (~> 1.2)
|
debugger-linecache (~> 1.2)
|
||||||
cancancan (1.8.4)
|
cancancan (1.13.1)
|
||||||
capybara (2.2.1)
|
capybara (2.2.1)
|
||||||
mime-types (>= 1.16)
|
mime-types (>= 1.16)
|
||||||
nokogiri (>= 1.3.3)
|
nokogiri (>= 1.3.3)
|
||||||
|
|
@ -331,7 +331,7 @@ GEM
|
||||||
sprockets-rails
|
sprockets-rails
|
||||||
rails-assets-date.format (1.2.3)
|
rails-assets-date.format (1.2.3)
|
||||||
rails-assets-holderjs (2.9.1)
|
rails-assets-holderjs (2.9.1)
|
||||||
rails-assets-jquery (2.2.0)
|
rails-assets-jquery (2.2.1)
|
||||||
rails-assets-jquery-smooth-scroll (1.7.2)
|
rails-assets-jquery-smooth-scroll (1.7.2)
|
||||||
rails-assets-jquery (>= 1.4.2)
|
rails-assets-jquery (>= 1.4.2)
|
||||||
rails-assets-leaflet (0.7.7)
|
rails-assets-leaflet (0.7.7)
|
||||||
|
|
@ -376,7 +376,7 @@ GEM
|
||||||
rest-client (1.7.3)
|
rest-client (1.7.3)
|
||||||
mime-types (>= 1.16, < 3.0)
|
mime-types (>= 1.16, < 3.0)
|
||||||
netrc (~> 0.7)
|
netrc (~> 0.7)
|
||||||
rolify (3.4.0)
|
rolify (5.0.0)
|
||||||
rspec (3.0.0)
|
rspec (3.0.0)
|
||||||
rspec-core (~> 3.0.0)
|
rspec-core (~> 3.0.0)
|
||||||
rspec-expectations (~> 3.0.0)
|
rspec-expectations (~> 3.0.0)
|
||||||
|
|
@ -561,6 +561,3 @@ DEPENDENCIES
|
||||||
web-console (~> 2.0)
|
web-console (~> 2.0)
|
||||||
webmock
|
webmock
|
||||||
whenever
|
whenever
|
||||||
|
|
||||||
BUNDLED WITH
|
|
||||||
1.11.2
|
|
||||||
|
|
|
||||||
|
|
@ -217,8 +217,8 @@ module Admin
|
||||||
def get_users(role_name)
|
def get_users(role_name)
|
||||||
@role_users = {}
|
@role_users = {}
|
||||||
# Initialize @role variable, so that view can show the role description
|
# Initialize @role variable, so that view can show the role description
|
||||||
@role = Role.where(name: role_name, resource: @conference)
|
@role = Role.find_by(name: role_name, resource: @conference) || []
|
||||||
@role.blank? ? @role_users[role_name] = @role : @role_users[role_name] = @role.first.users
|
@role.blank? ? @role_users[role_name] = [] : (@role_users[role_name] = (User.with_role @role.name, @role.resource).to_a)
|
||||||
|
|
||||||
@role_users
|
@role_users
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
class Role < ActiveRecord::Base
|
class Role < ActiveRecord::Base
|
||||||
has_and_belongs_to_many :users
|
has_and_belongs_to_many :users, join_table: :users_roles
|
||||||
belongs_to :resource, polymorphic: true
|
belongs_to :resource, polymorphic: true
|
||||||
|
|
||||||
scopify
|
scopify
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,6 @@ class User < ActiveRecord::Base
|
||||||
|
|
||||||
devise(*devise_modules)
|
devise(*devise_modules)
|
||||||
|
|
||||||
has_and_belongs_to_many :roles
|
|
||||||
has_many :openids
|
has_many :openids
|
||||||
|
|
||||||
attr_accessor :login
|
attr_accessor :login
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,5 @@
|
||||||
|
class RenameRolesUsersToUsersRoles < ActiveRecord::Migration
|
||||||
|
def change
|
||||||
|
rename_table :roles_users, :users_roles
|
||||||
|
end
|
||||||
|
end
|
||||||
16
db/schema.rb
16
db/schema.rb
|
|
@ -11,7 +11,7 @@
|
||||||
#
|
#
|
||||||
# It's strongly recommended that you check this file into your version control system.
|
# It's strongly recommended that you check this file into your version control system.
|
||||||
|
|
||||||
ActiveRecord::Schema.define(version: 20160201221411) do
|
ActiveRecord::Schema.define(version: 20160226133808) do
|
||||||
|
|
||||||
create_table "ahoy_events", force: :cascade do |t|
|
create_table "ahoy_events", force: :cascade do |t|
|
||||||
t.uuid "visit_id", limit: 16
|
t.uuid "visit_id", limit: 16
|
||||||
|
|
@ -355,13 +355,6 @@ ActiveRecord::Schema.define(version: 20160201221411) do
|
||||||
add_index "roles", ["name", "resource_type", "resource_id"], name: "index_roles_on_name_and_resource_type_and_resource_id"
|
add_index "roles", ["name", "resource_type", "resource_id"], name: "index_roles_on_name_and_resource_type_and_resource_id"
|
||||||
add_index "roles", ["name"], name: "index_roles_on_name"
|
add_index "roles", ["name"], name: "index_roles_on_name"
|
||||||
|
|
||||||
create_table "roles_users", id: false, force: :cascade do |t|
|
|
||||||
t.integer "role_id"
|
|
||||||
t.integer "user_id"
|
|
||||||
end
|
|
||||||
|
|
||||||
add_index "roles_users", ["user_id", "role_id"], name: "index_roles_users_on_user_id_and_role_id"
|
|
||||||
|
|
||||||
create_table "rooms", force: :cascade do |t|
|
create_table "rooms", force: :cascade do |t|
|
||||||
t.string "guid", null: false
|
t.string "guid", null: false
|
||||||
t.string "name", null: false
|
t.string "name", null: false
|
||||||
|
|
@ -498,6 +491,13 @@ ActiveRecord::Schema.define(version: 20160201221411) do
|
||||||
add_index "users", ["reset_password_token"], name: "index_users_on_reset_password_token", unique: true
|
add_index "users", ["reset_password_token"], name: "index_users_on_reset_password_token", unique: true
|
||||||
add_index "users", ["username"], name: "index_users_on_username", unique: true
|
add_index "users", ["username"], name: "index_users_on_username", unique: true
|
||||||
|
|
||||||
|
create_table "users_roles", id: false, force: :cascade do |t|
|
||||||
|
t.integer "role_id"
|
||||||
|
t.integer "user_id"
|
||||||
|
end
|
||||||
|
|
||||||
|
add_index "users_roles", ["user_id", "role_id"], name: "index_users_roles_on_user_id_and_role_id"
|
||||||
|
|
||||||
create_table "vchoices", force: :cascade do |t|
|
create_table "vchoices", force: :cascade do |t|
|
||||||
t.integer "vday_id"
|
t.integer "vday_id"
|
||||||
t.integer "vposition_id"
|
t.integer "vposition_id"
|
||||||
|
|
|
||||||
|
|
@ -7,8 +7,8 @@ describe Admin::ConferenceController do
|
||||||
let!(:first_user) { create(:user) }
|
let!(:first_user) { create(:user) }
|
||||||
let!(:organizer_role) { create(:role, name: 'organizer', resource: conference) }
|
let!(:organizer_role) { create(:role, name: 'organizer', resource: conference) }
|
||||||
|
|
||||||
let(:organizer) { create(:user, role_ids: organizer_role.id) }
|
let!(:organizer) { create(:user, role_ids: organizer_role.id) }
|
||||||
let(:organizer2) { create(:user, email: 'organizer2@email.osem', role_ids: organizer_role.id) }
|
let!(:organizer2) { create(:user, email: 'organizer2@email.osem', role_ids: organizer_role.id) }
|
||||||
let(:participant) { create(:user) }
|
let(:participant) { create(:user) }
|
||||||
|
|
||||||
shared_examples 'access as organizer' do
|
shared_examples 'access as organizer' do
|
||||||
|
|
@ -214,7 +214,7 @@ describe Admin::ConferenceController do
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'finds the correct role' do
|
it 'finds the correct role' do
|
||||||
expect(assigns(:role)).to eq([organizer_role])
|
expect(assigns(:role)).to eq(organizer_role)
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'properly assigns role_users hash' do
|
it 'properly assigns role_users hash' do
|
||||||
|
|
@ -237,8 +237,7 @@ describe Admin::ConferenceController do
|
||||||
|
|
||||||
it 'sets role variable' do
|
it 'sets role variable' do
|
||||||
post :roles, id: conference.short_title, user: { roles: 'Organizer' }
|
post :roles, id: conference.short_title, user: { roles: 'Organizer' }
|
||||||
role = Role.where(name: 'organizer', resource: conference)
|
expect(assigns(:role)).to eq(organizer_role)
|
||||||
expect(assigns(:role)).to eq(role)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'sets role variable (returns blank for nil role)' do
|
it 'sets role variable (returns blank for nil role)' do
|
||||||
|
|
@ -271,7 +270,7 @@ describe Admin::ConferenceController do
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'sets role_users variable' do
|
it 'sets role_users variable' do
|
||||||
expect(assigns(:role_users)).to eq('organizer' => organizer_role.users)
|
expect(assigns(:role_users)).to eq('organizer' => [organizer, organizer2, @new_user])
|
||||||
|
|
||||||
post :add_user, id: conference.short_title, user: { email: 'new_user@email.osem' }, role: 'cfp'
|
post :add_user, id: conference.short_title, user: { email: 'new_user@email.osem' }, role: 'cfp'
|
||||||
expect(assigns(:role_users)).to eq('cfp' => [@new_user])
|
expect(assigns(:role_users)).to eq('cfp' => [@new_user])
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue