Skip to content

Commit

Permalink
Merge branch 'master' into master
Browse files Browse the repository at this point in the history
  • Loading branch information
EppO authored Feb 27, 2019
2 parents db0ebec + bb3d445 commit 4a185e7
Show file tree
Hide file tree
Showing 17 changed files with 59 additions and 185 deletions.
76 changes: 25 additions & 51 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,60 +11,34 @@ script: bundle exec rake
after_success:
- bundle exec codeclimate-test-reporter

matrix:
include:
- rvm: 2.5.1
gemfile: gemfiles/activerecord_4.gemfile
env: ADAPTER=active_record
- rvm: 2.4.4
gemfile: gemfiles/activerecord_4.gemfile
env: ADAPTER=active_record
- rvm: 2.3.7
gemfile: gemfiles/activerecord_4.gemfile
env: ADAPTER=active_record
- rvm: 2.2.10
gemfile: gemfiles/activerecord_4.gemfile
env: ADAPTER=active_record
rvm:
- 2.6.1
- 2.5.3
- 2.4.5
- 2.3.8

gemfile:
- gemfiles/activerecord_4.gemfile
- gemfiles/activerecord_5.gemfile
- gemfiles/mongoid_6.gemfile
- gemfiles/mongoid_7.gemfile

env:
- ADAPTER=active_record
- ADAPTER=mongoid

- rvm: 2.5.1
gemfile: gemfiles/activerecord_5.gemfile
env: ADAPTER=active_record
- rvm: 2.4.4
gemfile: gemfiles/activerecord_5.gemfile
env: ADAPTER=active_record
- rvm: 2.3.7
gemfile: gemfiles/activerecord_5.gemfile
env: ADAPTER=active_record
- rvm: 2.2.10
gemfile: gemfiles/activerecord_5.gemfile
env: ADAPTER=active_record

- rvm: 2.5.1
gemfile: gemfiles/mongoid_4.gemfile
env: ADAPTER=mongoid
- rvm: 2.4.4
gemfile: gemfiles/mongoid_4.gemfile
env: ADAPTER=mongoid
- rvm: 2.3.7
gemfile: gemfiles/mongoid_4.gemfile
env: ADAPTER=mongoid
- rvm: 2.2.10
gemfile: gemfiles/mongoid_4.gemfile
env: ADAPTER=mongoid

- rvm: 2.5.1
gemfile: gemfiles/mongoid_5.gemfile
env: ADAPTER=mongoid
- rvm: 2.4.4
gemfile: gemfiles/mongoid_5.gemfile
env: ADAPTER=mongoid
- rvm: 2.3.7
gemfile: gemfiles/mongoid_5.gemfile
matrix:
exclude:
- gemfile: gemfiles/activerecord_4.gemfile
env: ADAPTER=mongoid
- rvm: 2.2.10
gemfile: gemfiles/mongoid_5.gemfile
- gemfile: gemfiles/activerecord_5.gemfile
env: ADAPTER=mongoid

- gemfile: gemfiles/mongoid_6.gemfile
env: ADAPTER=active_record
- gemfile: gemfiles/mongoid_7.gemfile
env: ADAPTER=active_record
allow_failures:
- env: ADAPTER=mongoid

services: mongodb

Expand Down
14 changes: 7 additions & 7 deletions Appraisals
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
appraise 'mongoid-4' do
gem "mongoid", "~> 4"
appraise 'mongoid-6' do
gem "mongoid", "~> 6"
gem "bson_ext", :platform => "ruby"
end

appraise 'mongoid-5' do
gem "mongoid", "~> 5"
appraise 'mongoid-7' do
gem "mongoid", "~> 7"
gem "bson_ext", :platform => "ruby"
end

appraise 'activerecord-4' do
gem "sqlite3", :platform => "ruby"
gem "activerecord", "~> 4.2.5", :require => "active_record"
gem "sqlite3", "~> 1.3.6", :platform => "ruby"
gem "activerecord", "~> 4.2.11", :require => "active_record"
end

appraise 'activerecord-5' do
gem "sqlite3", :platform => "ruby"
gem "sqlite3", "~> 1.3.6", :platform => "ruby"
gem "activerecord", ">= 5.2.0", :require => "active_record"

# Ammeter dependencies:
Expand Down
13 changes: 12 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# rolify [![Gem Version](https://badge.fury.io/rb/rolify.svg)](http://badge.fury.io/rb/rolify) [![build status](https://secure.travis-ci.org/RolifyCommunity/rolify.png)](http://travis-ci.org/RolifyCommunity/rolify) [![Dependency Status](https://gemnasium.com/RolifyCommunity/rolify.svg)](https://gemnasium.com/RolifyCommunity/rolify) [![Code Climate](https://codeclimate.com/github/RolifyCommunity/rolify.png)](https://codeclimate.com/github/RolifyCommunity/rolify) [![Coverage Status](https://coveralls.io/repos/RolifyCommunity/rolify/badge.svg?branch=master&service=github)](https://coveralls.io/github/RolifyCommunity/rolify?branch=master)
# rolify [![Gem Version](https://badge.fury.io/rb/rolify.svg)](http://badge.fury.io/rb/rolify) [![build status](https://secure.travis-ci.org/RolifyCommunity/rolify.png)](http://travis-ci.org/RolifyCommunity/rolify) [![Code Climate](https://codeclimate.com/github/RolifyCommunity/rolify.png)](https://codeclimate.com/github/RolifyCommunity/rolify) [![Coverage Status](https://coveralls.io/repos/RolifyCommunity/rolify/badge.svg?branch=master&service=github)](https://coveralls.io/github/RolifyCommunity/rolify?branch=master)

Very simple Roles library without any authorization enforcement supporting scope on resource object.

Expand Down Expand Up @@ -181,6 +181,17 @@ user.has_role? :moderator, Forum.last
=> true
```

To check if a user has the exact role scoped to a resource class:

```ruby
user = User.find(5)
user.add_role :moderator # sets a global role
user.has_role? :moderator, Forum.first
=> true
user.has_strict_role? :moderator, Forum.last
=> false
```

### 6. Resource roles querying

Starting from rolify 3.0, you can search roles on instance level or class level resources.
Expand Down
33 changes: 0 additions & 33 deletions gemfiles/Gemfile.rails-4.0

This file was deleted.

33 changes: 0 additions & 33 deletions gemfiles/Gemfile.rails-4.1

This file was deleted.

33 changes: 0 additions & 33 deletions gemfiles/Gemfile.rails-4.2

This file was deleted.

4 changes: 2 additions & 2 deletions gemfiles/activerecord_4.gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

source "https://rubygems.org"

gem "sqlite3", platform: "ruby"
gem "activerecord", "~> 4.2.5", require: "active_record"
gem "sqlite3", "~> 1.3.6", platform: "ruby"
gem "activerecord", "~> 4.2.11", require: "active_record"

group :test do
gem "appraisal"
Expand Down
2 changes: 1 addition & 1 deletion gemfiles/activerecord_5.gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

source "https://rubygems.org"

gem "sqlite3", platform: "ruby"
gem "sqlite3", "~> 1.3.6", platform: "ruby"
gem "activerecord", ">= 5.2.0", require: "active_record"
gem "actionpack", ">= 5.2.0"
gem "activemodel", ">= 5.2.0"
Expand Down
2 changes: 1 addition & 1 deletion gemfiles/mongoid_5.gemfile → gemfiles/mongoid_6.gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

source "https://rubygems.org"

gem "mongoid", "~> 5"
gem "mongoid", "~> 6"
gem "bson_ext", platform: "ruby"

group :test do
Expand Down
2 changes: 1 addition & 1 deletion gemfiles/mongoid_4.gemfile → gemfiles/mongoid_7.gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

source "https://rubygems.org"

gem "mongoid", "~> 4"
gem "mongoid", "~> 7"
gem "bson_ext", platform: "ruby"

group :test do
Expand Down
2 changes: 1 addition & 1 deletion lib/rolify/adapters/active_record/resource_adapter.rb
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ def applied_roles(relation, children)

def all_except(resource, excluded_obj)
prime_key = resource.primary_key.to_sym
resource.where(prime_key => (resource.all - excluded_obj).map(&prime_key))
resource.where.not(prime_key => excluded_obj.pluck(prime_key))
end

private
Expand Down
10 changes: 2 additions & 8 deletions lib/rolify/adapters/active_record/role_adapter.rb
Original file line number Diff line number Diff line change
Expand Up @@ -68,19 +68,13 @@ def exists?(relation, column)
end

def scope(relation, conditions)
if Rails.version < "4.0"
query = relation.scoped
else
query = relation.all
end
query = query.joins(:roles)
query = relation.joins(:roles)
query = where(query, conditions)
query
end

def all_except(user, excluded_obj)
prime_key = user.primary_key.to_sym
user.where(prime_key => (user.all - excluded_obj).map(&prime_key))
user.where.not(user.primary_key => excluded_obj)
end

private
Expand Down
2 changes: 1 addition & 1 deletion lib/rolify/role.rb
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ def remove_role(role_name, resource = nil)
deprecate :has_no_role, :remove_role

def roles_name
self.roles.select(:name).map { |r| r.name }
self.roles.pluck(:name)
end

def method_missing(method, *args, &block)
Expand Down
8 changes: 4 additions & 4 deletions rolify.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,10 @@ Gem::Specification.new do |s|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
s.require_paths = ['lib']

s.required_ruby_version = '>= 2.2'
s.required_ruby_version = '>= 2.3'

s.add_development_dependency 'ammeter', '~> 1.1' # Spec generator
s.add_development_dependency 'bundler', '~> 1.13' # packaging feature
s.add_development_dependency 'rake', '~> 11.3' # Tasks manager
s.add_development_dependency 'rspec-rails', '~> 3.4'
s.add_development_dependency 'bundler', '~> 2.0' # packaging feature
s.add_development_dependency 'rake', '~> 12.3' # Tasks manager
s.add_development_dependency 'rspec-rails', '~> 3.8'
end
6 changes: 0 additions & 6 deletions spec/support/adapters/mongoid_4.yml

This file was deleted.

File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
test:
sessions:
clients:
default:
database: godfather
hosts:
- localhost:27017
- localhost:27017

0 comments on commit 4a185e7

Please sign in to comment.