Commit e31ddc3
Changed files (1)
bin
bin/rpc
@@ -5,6 +5,7 @@ require "bundler/inline"
gemfile do
source "https://rubygems.org"
+ gem "declarative_policy", "~> 1.0"
gem "grpc", "~> 1.0"
gem "grpc-tools", "~> 1.0"
gem "logger", "~> 1.0"
@@ -15,12 +16,27 @@ $LOAD_PATH.unshift(lib_path) unless $LOAD_PATH.include?(lib_path)
require 'ability_services_pb'
+class ProjectPolicy < DeclarativePolicy::Base
+ condition(:owner) { @subject.owner?(@user) }
+
+ rule { owner }.enable :create_project
+end
+
class AbilityHandler < ::Ability::Service
def allowed(request, _call)
puts [request, _call].inspect
- # TODO:: entrypoint to declarative policies
GRPC.logger.info([request, _call].inspect)
+
AllowReply.new(result: true)
+ # TODO:: entrypoint to declarative policies
+ # AllowReply.new(result: policy_for(request).can?(request.permission))
+ end
+
+ private
+
+ def policy_for(request)
+ # TODO:: convert subject in form of GlobalID to Resource Type
+ DeclarativePolicy.policy_for(request.subject, request.resource)
end
end