aboutsummaryrefslogtreecommitdiff
path: root/weed/s3api/auth_credentials.go
diff options
context:
space:
mode:
authorChris Lu <chrislusf@users.noreply.github.com>2021-10-13 15:29:53 -0700
committerGitHub <noreply@github.com>2021-10-13 15:29:53 -0700
commitb693a8d6b95ad70cfa2e0943f1ff78bd8776fcd9 (patch)
treeb6d4d96fd9b5d53307a79154658414f6d3674c44 /weed/s3api/auth_credentials.go
parent7700bf62f0cedf38e4f53d497845fde919418245 (diff)
parent9d6ffa0ea157259b813faeb5b1805df31fdcb69b (diff)
downloadseaweedfs-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.go25
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,