Browse code

Allow --acl-grant on AWS groups e.g.

s3cmd --acl-grant=all:"http://acs.amazonaws.com/groups/global/AuthenticatedUsers" setacl FILENAME

Dale Lovelace authored on 2013/10/03 03:10:27
Showing 1 changed files
... ...
@@ -146,7 +146,6 @@ class ACL(object):
146 146
         if self.hasGrant(name, permission):
147 147
             return
148 148
 
149
-        name = name.lower()
150 149
         permission = permission.upper()
151 150
 
152 151
         if "ALL" == permission:
... ...
@@ -159,12 +158,17 @@ class ACL(object):
159 159
         grantee.name = name
160 160
         grantee.permission = permission
161 161
 
162
-        if  name.find('@') <= -1: # ultra lame attempt to differenciate emails id from canonical ids
163
-            grantee.xsi_type = "CanonicalUser"
164
-            grantee.tag = "ID"
165
-        else:
162
+        if  name.find('@') > -1:
163
+            grantee.name = grantee.name.lower
166 164
             grantee.xsi_type = "AmazonCustomerByEmail"
167 165
             grantee.tag = "EmailAddress"
166
+        elif name.find('http://acs.amazonaws.com/groups/') > -1:
167
+            grantee.xsi_type = "Group"
168
+            grantee.tag = "URI"
169
+        else:
170
+            grantee.name = grantee.name.lower
171
+            grantee.xsi_type = "CanonicalUser"
172
+            grantee.tag = "ID"
168 173
 
169 174
         self.appendGrantee(grantee)
170 175