diff options
| author | Chris Lu <chrislusf@users.noreply.github.com> | 2021-10-13 15:29:53 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-10-13 15:29:53 -0700 |
| commit | b693a8d6b95ad70cfa2e0943f1ff78bd8776fcd9 (patch) | |
| tree | b6d4d96fd9b5d53307a79154658414f6d3674c44 /weed/s3api/auth_credentials.go | |
| parent | 7700bf62f0cedf38e4f53d497845fde919418245 (diff) | |
| parent | 9d6ffa0ea157259b813faeb5b1805df31fdcb69b (diff) | |
| download | seaweedfs-b693a8d6b95ad70cfa2e0943f1ff78bd8776fcd9.tar.xz seaweedfs-b693a8d6b95ad70cfa2e0943f1ff78bd8776fcd9.zip | |
Merge pull request #2380 from kmlebedev/bucket_policy
Bucket policy
Diffstat (limited to 'weed/s3api/auth_credentials.go')
| -rw-r--r-- | weed/s3api/auth_credentials.go | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/weed/s3api/auth_credentials.go b/weed/s3api/auth_credentials.go index 44c3f7aa7..cd1b3adfb 100644 --- a/weed/s3api/auth_credentials.go +++ b/weed/s3api/auth_credentials.go @@ -37,6 +37,31 @@ type Credential struct { SecretKey string } +func (action Action) isAdmin() bool { + return strings.HasPrefix(string(action), s3_constants.ACTION_ADMIN) +} + +func (action Action) isOwner(bucket string) bool { + return string(action) == s3_constants.ACTION_ADMIN+":"+bucket +} + +func (action Action) overBucket(bucket string) bool { + return strings.HasSuffix(string(action), ":"+bucket) || strings.HasSuffix(string(action), ":*") +} + +func (action Action) getPermission() Permission { + switch act := strings.Split(string(action), ":")[0]; act { + case s3_constants.ACTION_ADMIN: + return Permission("FULL_CONTROL") + case s3_constants.ACTION_WRITE: + return Permission("WRITE") + case s3_constants.ACTION_READ: + return Permission("READ") + default: + return Permission("") + } +} + func NewIdentityAccessManagement(option *S3ApiServerOption) *IdentityAccessManagement { iam := &IdentityAccessManagement{ domain: option.DomainName, |
