[#170] acl: Document package functionality

Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
This commit is contained in:
Pavel Karpy 2021-03-22 11:24:57 +03:00 committed by Alex Vanin
parent 030bbce2cf
commit 58d4f4a55f
2 changed files with 42 additions and 0 deletions

40
acl/doc.go Normal file
View file

@ -0,0 +1,40 @@
/*
Package acl provides primitives to perform handling basic ACL management in NeoFS.
BasicACL type provides functionality for managing container basic access-control list.
For example, setting public basic ACL that could not be extended with any eACL rules:
import "github.com/nspcc-dev/neofs-sdk-go/container"
...
c := container.New()
c.SetBasicACL(acl.PublicBasicRule)
Using package types in an application is recommended to potentially work with
different protocol versions with which these types are compatible.
Basic ACL bits meaning:
31302928272625242322212019181716 <- Bit
RANGEHASH RANGE SEARCH <- Object service method
X F U S O B U S O B U S O B <- Rule
15141312111009080706050403020100 <- Bit
DELETE PUT HEAD GET <- Object service method
U S O B U S O B U S O B U S O B <- Rule
U - Allows access to the owner of the container.
S - Allows access to Inner Ring and container nodes in the current version of network map.
O - Clients that do not match any of the categories above.
B - Allows using Bear Token ACL rules to replace eACL rules.
F - Flag denying Extended ACL. If set Extended ACL is ignored.
X - Flag denying different owners of the request and the object.
Remaining bits are reserved and are not used.
*/
package acl

View file

@ -9,6 +9,8 @@ import (
// BasicACL is Access Control List that defines who can interact with containers and what exactly they can do. // BasicACL is Access Control List that defines who can interact with containers and what exactly they can do.
type BasicACL uint32 type BasicACL uint32
// String returns BasicACL string representation
// in hexadecimal form with 0x prefix.
func (a BasicACL) String() string { func (a BasicACL) String() string {
return fmt.Sprintf("0x%08x", uint32(a)) return fmt.Sprintf("0x%08x", uint32(a))
} }