68 lines
927 B
Ruby

class TokenPolicy
attr_reader :user, :token
def initialize(user, token)
@user = user || User.new
@token = token
end
class Scope
def initialize(user, scope)
@user = user
@scope = scope
end
def resolve
if user.admin?
scope.all
else
scope.all
end
end
private
attr_reader :user, :scope
end
def index?
true
end
def show?
true
end
def create?
@user.admin? || @user.signed_in?
end
def new?
@user.admin? || @user.signed_in?
end
def add_existing?
new?
end
def edit?
@user.admin? || @token.ownable_id == @user.soft_token
end
def update?
@user.admin? || edit?
end
def destroy?
@user.admin? || @token.ownable_id == @user.soft_token
end
def refresh?
@token.canister_id.present?
end
def launch?
@user.admin? || @token.ownable_id == @user.soft_token
end
end