eliminated naming clash with Sorcery
This commit is contained in:
@ -26,7 +26,7 @@ class SessionsController < ApplicationController
|
||||
end
|
||||
|
||||
def destroy
|
||||
if current_user.external?
|
||||
if current_user.external_user?
|
||||
clear_lti_session_data
|
||||
else
|
||||
logout
|
||||
|
@ -16,12 +16,8 @@ module User
|
||||
define_method("#{role}?") { try(:role) == role }
|
||||
end
|
||||
|
||||
def external?
|
||||
is_a?(ExternalUser)
|
||||
end
|
||||
|
||||
def internal?
|
||||
is_a?(InternalUser)
|
||||
[ExternalUser, InternalUser].each do |klass|
|
||||
define_method("#{klass.name.underscore}?") { is_a?(klass) }
|
||||
end
|
||||
|
||||
def to_s
|
||||
|
@ -1,6 +1,6 @@
|
||||
class AdminOrAuthorPolicy < ApplicationPolicy
|
||||
[:create?, :index?, :new?].each do |action|
|
||||
define_method(action) { @user.internal? }
|
||||
define_method(action) { @user.internal_user? }
|
||||
end
|
||||
|
||||
[:destroy?, :edit?, :show?, :update?].each do |action|
|
||||
|
@ -21,7 +21,7 @@ class ExercisePolicy < AdminOrAuthorPolicy
|
||||
def resolve
|
||||
if @user.admin?
|
||||
@scope.all
|
||||
elsif @user.internal?
|
||||
elsif @user.internal_user?
|
||||
@scope.where("user_id = #{@user.id} OR public = TRUE OR (team_id IS NOT NULL AND team_id IN (SELECT t.id FROM teams t JOIN internal_users_teams iut ON t.id = iut.team_id WHERE iut.internal_user_id = #{@user.id}))")
|
||||
else
|
||||
@scope.none
|
||||
|
@ -1,6 +1,6 @@
|
||||
class TeamPolicy < ApplicationPolicy
|
||||
[:create?, :index?, :new?].each do |action|
|
||||
define_method(action) { @user.internal? }
|
||||
define_method(action) { @user.internal_user? }
|
||||
end
|
||||
|
||||
[:destroy?, :edit?, :show?, :update?].each do |action|
|
||||
|
@ -1,4 +1,4 @@
|
||||
- if current_user.try(:internal?)
|
||||
- if current_user.try(:internal_user?)
|
||||
ul.breadcrumb
|
||||
- if model = Kernel.const_get(controller_name.classify) rescue nil
|
||||
- object = model.find_by(id: params[:id])
|
||||
|
@ -1,4 +1,4 @@
|
||||
- if current_user.try(:internal?)
|
||||
- if current_user.try(:internal_user?)
|
||||
ul.nav.navbar-nav
|
||||
li.dropdown
|
||||
a.dropdown-toggle data-toggle='dropdown' href='#'
|
||||
|
@ -1,5 +1,5 @@
|
||||
- if current_user
|
||||
- if current_user.internal?
|
||||
- if current_user.internal_user?
|
||||
li.dropdown
|
||||
a.dropdown-toggle data-toggle='dropdown' href='#'
|
||||
i.glyphicon.glyphicon-user
|
||||
|
@ -129,7 +129,7 @@ describe SessionsController do
|
||||
|
||||
context 'with an internal user' do
|
||||
before(:each) do
|
||||
allow(user).to receive(:external?).and_return(false)
|
||||
allow(user).to receive(:external_user?).and_return(false)
|
||||
allow(user).to receive(:forget_me!)
|
||||
delete :destroy
|
||||
end
|
||||
@ -146,7 +146,7 @@ describe SessionsController do
|
||||
|
||||
context 'with an external user' do
|
||||
before(:each) do
|
||||
allow(user).to receive(:external?).and_return(true)
|
||||
allow(user).to receive(:external_user?).and_return(true)
|
||||
delete :destroy
|
||||
end
|
||||
|
||||
|
@ -17,6 +17,18 @@ describe ExternalUser do
|
||||
end
|
||||
end
|
||||
|
||||
describe '#external_user?' do
|
||||
it 'is true' do
|
||||
expect(user.external_user?).to be true
|
||||
end
|
||||
end
|
||||
|
||||
describe '#internal_user?' do
|
||||
it 'is false' do
|
||||
expect(user.internal_user?).to be false
|
||||
end
|
||||
end
|
||||
|
||||
describe '#teacher?' do
|
||||
it 'is false' do
|
||||
expect(FactoryGirl.build(:external_user).teacher?).to be false
|
||||
|
@ -56,6 +56,18 @@ describe InternalUser do
|
||||
end
|
||||
end
|
||||
|
||||
describe '#external_user?' do
|
||||
it 'is false' do
|
||||
expect(user.external_user?).to be false
|
||||
end
|
||||
end
|
||||
|
||||
describe '#internal_user?' do
|
||||
it 'is true' do
|
||||
expect(user.internal_user?).to be true
|
||||
end
|
||||
end
|
||||
|
||||
describe '#teacher?' do
|
||||
it 'is only true for teachers' do
|
||||
expect(FactoryGirl.build(:admin).teacher?).to be false
|
||||
|
Reference in New Issue
Block a user