Class: Gitlab::Graphql::Authorize::ObjectAuthorization
- Inherits:
-
Object
- Object
- Gitlab::Graphql::Authorize::ObjectAuthorization
- Includes:
- Allowable
- Defined in:
- lib/gitlab/graphql/authorize/object_authorization.rb
Instance Attribute Summary collapse
-
#abilities ⇒ Object
readonly
Returns the value of attribute abilities.
-
#permitted_scopes ⇒ Object
readonly
Returns the value of attribute permitted_scopes.
Instance Method Summary collapse
- #any? ⇒ Boolean
-
#initialize(abilities, scopes = %i[api read_api])) ⇒ ObjectAuthorization
constructor
A new instance of ObjectAuthorization.
- #none? ⇒ Boolean
- #ok?(object, current_user, scope_validator:, skip_abilities: nil) ⇒ Boolean
Methods included from Allowable
Constructor Details
#initialize(abilities, scopes = %i[api read_api])) ⇒ ObjectAuthorization
Returns a new instance of ObjectAuthorization.
11 12 13 14 |
# File 'lib/gitlab/graphql/authorize/object_authorization.rb', line 11 def initialize(abilities, scopes = %i[api read_api]) @abilities = Array.wrap(abilities).flatten @permitted_scopes = Array.wrap(scopes) end |
Instance Attribute Details
#abilities ⇒ Object (readonly)
Returns the value of attribute abilities.
9 10 11 |
# File 'lib/gitlab/graphql/authorize/object_authorization.rb', line 9 def abilities @abilities end |
#permitted_scopes ⇒ Object (readonly)
Returns the value of attribute permitted_scopes.
9 10 11 |
# File 'lib/gitlab/graphql/authorize/object_authorization.rb', line 9 def permitted_scopes @permitted_scopes end |
Instance Method Details
#any? ⇒ Boolean
20 21 22 |
# File 'lib/gitlab/graphql/authorize/object_authorization.rb', line 20 def any? abilities.present? end |
#none? ⇒ Boolean
16 17 18 |
# File 'lib/gitlab/graphql/authorize/object_authorization.rb', line 16 def none? abilities.empty? end |
#ok?(object, current_user, scope_validator:, skip_abilities: nil) ⇒ Boolean
24 25 26 |
# File 'lib/gitlab/graphql/authorize/object_authorization.rb', line 24 def ok?(object, current_user, scope_validator:, skip_abilities: nil) scopes_ok?(scope_validator) && abilities_ok?(object, current_user, skip_abilities: skip_abilities) end |