travis-api/lib/travis/model/permission.rb
Aakriti Gupta 65f1a29d86 Move travis-core files from /vendor to /lib.
- Re-factor
- Remove code for notifications
- Remove addons
- Remove travis-core gem.
- Ignore logs directory only
- Move core tests to spec/lib
2016-07-20 11:22:25 +02:00

27 lines
554 B
Ruby

require 'core_ext/active_record/none_scope'
require 'travis/model'
class Permission < Travis::Model
ROLES = %w(admin push pull)
class << self
def by_roles(roles)
roles = Array(roles).select { |role| ROLES.include?(role.to_s) }
roles.empty? ? none : where(has_roles(roles))
end
def has_roles(roles)
roles.inject(has_role(roles.shift)) do |sql, role|
sql.or(has_role(role))
end
end
def has_role(role)
arel_table[role].eq(true)
end
end
belongs_to :user
belongs_to :repository
end