[MM-61756] Attribute Based Access Control - Phase 1 (#30785)
Attribute Based Access Control - Base * MM-63662 * MM-63919 * MM-63954 * MM-63955 * MM-63425 * MM-63426 * MM-63458 * MM-63459 * MM-63603 * MM-63845 * MM-64146 * MM-64199 * MM-64201 * MM-64233 * MM-64247 * MM-64268 --------- Co-authored-by: Harshil Sharma <harshilsharma63@gmail.com> Co-authored-by: Pablo Andrés Vélez Vidal <pablovv2012@gmail.com> Co-authored-by: abhijit-singh <abhijitsingh0702@gmail.com> Co-authored-by: Harrison Healey <harrisonmhealey@gmail.com>
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
4b445cbf16
Коммит
a344b3225b
@@ -11,10 +11,30 @@ type Subject struct {
|
||||
ID string `json:"id"`
|
||||
// Type specifies the type of the Subject, eg. user, bot, etc.
|
||||
Type string `json:"type"`
|
||||
// Properties are the key-value pairs assicuated with the subject.
|
||||
// Attributes are the key-value pairs assicuated with the subject.
|
||||
// An attribute may be single-valued or multi-valued and can be a primitive type
|
||||
// (string, boolean, number) or a complex type like a JSON object or array.
|
||||
Properties map[string]any `json:"properties"`
|
||||
Attributes map[string]any `json:"attributes"`
|
||||
}
|
||||
|
||||
type SubjectSearchOptions struct {
|
||||
Term string `json:"term"`
|
||||
TeamID string `json:"team_id"`
|
||||
// Query and Args should be generated within the Access Control Service
|
||||
// and passed here wrt database driver
|
||||
Query string `json:"query"`
|
||||
Args []any `json:"args"`
|
||||
Limit int `json:"limit"`
|
||||
Cursor SubjectCursor `json:"cursor"`
|
||||
AllowInactive bool `json:"allow_inactive"`
|
||||
IgnoreCount bool `json:"ignore_count"`
|
||||
// ExcludeChannelMembers is used to exclude members from the search results
|
||||
// specifically used when syncing channel members
|
||||
ExcludeChannelMembers string `json:"exclude_members"`
|
||||
}
|
||||
|
||||
type SubjectCursor struct {
|
||||
TargetID string `json:"target_id"`
|
||||
}
|
||||
|
||||
// Resource is the target of an access request.
|
||||
@@ -41,3 +61,10 @@ type AccessDecision struct {
|
||||
Decision bool `json:"decision"`
|
||||
Context map[string]any `json:"context,omitempty"`
|
||||
}
|
||||
|
||||
type QueryExpressionParams struct {
|
||||
Expression string `json:"expression"`
|
||||
Term string `json:"term"`
|
||||
Limit int `json:"limit"`
|
||||
After string `json:"after"`
|
||||
}
|
||||
|
||||
Ссылка в новой задаче
Block a user