Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Check whether a relation exists to any object #555

Closed
zepatrik opened this issue Apr 21, 2021 · 2 comments
Closed

Check whether a relation exists to any object #555

zepatrik opened this issue Apr 21, 2021 · 2 comments
Assignees
Labels
feat New feature or request. rfc A request for comments to discuss and share ideas. stale Feedback from one or more authors is required to proceed.

Comments

@zepatrik
Copy link
Member

Is your feature request related to a problem? Please describe.

In some cases you might want to check whether a relation exists on some object to any random subject.
Example: check if the object is payed for by any subscription.

Describe the solution you'd like

A best practice & guide to handle this case, or native support for such cases.

Proposal
One solution might be to use a kind of "identity relation" that maps all objects of one type (e.g. subscriptions) to a transaction subject. It can then be used as an alias for all subjects.

func NewSubscriptionPaysForProjectRelationTuples(subscription, project uuid.UUID) []*acl.RelationTuple {
	return []*acl.RelationTuple{
	{
		Namespace: ProjectNamespace,
		Object:    project.String(),
		Relation:  SubscriptionPaysForRelation,
		Subject: &acl.Subject{
			Ref: &acl.Subject_Set{Set: &acl.SubjectSet{
				Namespace: SubscriptionNamespace,
				Object:    subscription.String(),
				Relation:  SubscriptionIdentityRelation,
			}},
		},
	},
	{
		Namespace: SubscriptionNamespace,
		Object:    subscription.String(),
		Relation:  SubscriptionIdentityRelation,
		Subject: &acl.Subject{
			Ref: &acl.Subject_Id{Id: SubscriptionsIdentitySubject},
		},
	},
	}
}

Later, to see if the project is paid, I can use

func (s *Service) IsProjectPaid(ctx context.Context, projectID uuid.UUID) error {
	cl := acl.NewCheckServiceClient(s.getReadConnection(ctx))
	resp, err := cl.Check(ctx, &acl.CheckRequest{
		Namespace: relationtuples.ProjectNamespace,
		Object:    projectID.String(),
		Relation:  relationtuples.SubscriptionPaysForRelation,
		Subject: &acl.Subject{
			Ref: &acl.Subject_Id{Id: relationtuples.SubscriptionsIdentitySubject},
		},
	})
	...
}
@zepatrik zepatrik added feat New feature or request. docs rfc A request for comments to discuss and share ideas. labels Apr 21, 2021
@zepatrik zepatrik self-assigned this Apr 21, 2021
@github-actions github-actions bot removed the docs label Jan 6, 2022
@github-actions
Copy link

github-actions bot commented Jan 7, 2023

Hello contributors!

I am marking this issue as stale as it has not received any engagement from the community or maintainers for a year. That does not imply that the issue has no merit! If you feel strongly about this issue

  • open a PR referencing and resolving the issue;
  • leave a comment on it and discuss ideas on how you could contribute towards resolving it;
  • leave a comment and describe in detail why this issue is critical for your use case;
  • open a new issue with updated details and a plan for resolving the issue.

Throughout its lifetime, Ory has received over 10.000 issues and PRs. To sustain that growth, we need to prioritize and focus on issues that are important to the community. A good indication of importance, and thus priority, is activity on a topic.

Unfortunately, burnout has become a topic of concern amongst open-source projects.

It can lead to severe personal and health issues as well as opening catastrophic attack vectors.

The motivation for this automation is to help prioritize issues in the backlog and not ignore, reject, or belittle anyone.

If this issue was marked as stale erroneously you can exempt it by adding the backlog label, assigning someone, or setting a milestone for it.

Thank you for your understanding and to anyone who participated in the conversation! And as written above, please do participate in the conversation if this topic is important to you!

Thank you 🙏✌️

@github-actions github-actions bot added the stale Feedback from one or more authors is required to proceed. label Jan 7, 2023
@zepatrik zepatrik removed the stale Feedback from one or more authors is required to proceed. label Jan 10, 2023
Copy link

Hello contributors!

I am marking this issue as stale as it has not received any engagement from the community or maintainers for a year. That does not imply that the issue has no merit! If you feel strongly about this issue

  • open a PR referencing and resolving the issue;
  • leave a comment on it and discuss ideas on how you could contribute towards resolving it;
  • leave a comment and describe in detail why this issue is critical for your use case;
  • open a new issue with updated details and a plan for resolving the issue.

Throughout its lifetime, Ory has received over 10.000 issues and PRs. To sustain that growth, we need to prioritize and focus on issues that are important to the community. A good indication of importance, and thus priority, is activity on a topic.

Unfortunately, burnout has become a topic of concern amongst open-source projects.

It can lead to severe personal and health issues as well as opening catastrophic attack vectors.

The motivation for this automation is to help prioritize issues in the backlog and not ignore, reject, or belittle anyone.

If this issue was marked as stale erroneously you can exempt it by adding the backlog label, assigning someone, or setting a milestone for it.

Thank you for your understanding and to anyone who participated in the conversation! And as written above, please do participate in the conversation if this topic is important to you!

Thank you 🙏✌️

@github-actions github-actions bot added the stale Feedback from one or more authors is required to proceed. label Jan 11, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feat New feature or request. rfc A request for comments to discuss and share ideas. stale Feedback from one or more authors is required to proceed.
Projects
None yet
Development

No branches or pull requests

1 participant