FIX: guardian always got user but sometimes it is anonymous (#9342)

* FIX: guardian always got user but sometimes it is anonymous

```
  def initialize(user = nil, request = nil)
    @user = user.presence || AnonymousUser.new
    @request = request
  end
```

AnonymouseUser defines `blank?` method
```
  class AnonymousUser
    def blank?
      true
    end
    ...
  end
```
so if we would use @user.present? it would be correct, however, just @user is always true
This commit is contained in:
Krzysztof Kotlarek
2020-04-06 09:56:47 +10:00
committed by GitHub
parent f8ec5f309a
commit ce00da3bcd
2 changed files with 7 additions and 2 deletions

View File

@ -2743,6 +2743,7 @@ describe Guardian do
end
describe '#can_export_entity?' do
let(:anonymous_guardian) { Guardian.new }
let(:user_guardian) { Guardian.new(user) }
let(:moderator_guardian) { Guardian.new(moderator) }
let(:admin_guardian) { Guardian.new(admin) }
@ -2758,6 +2759,10 @@ describe Guardian do
expect(moderator_guardian.can_export_entity?('staff_action')).to be_truthy
expect(admin_guardian.can_export_entity?('staff_action')).to be_truthy
end
it 'does not allow anonymous to export' do
expect(anonymous_guardian.can_export_entity?('user_archive')).to be_falsey
end
end
describe '#can_ignore_user?' do