@@ -30,144 +30,80 @@ import com.adobe.testing.s3mock.dto.Owner
3030 */
3131object CannedAclUtil {
3232 @JvmStatic
33- fun policyForCannedAcl (cannedAcl : ObjectCannedACL ): AccessControlPolicy {
34- return when (cannedAcl) {
33+ fun policyForCannedAcl (cannedAcl : ObjectCannedACL ): AccessControlPolicy =
34+ when (cannedAcl) {
3535 ObjectCannedACL .PRIVATE -> privateAcl()
3636 ObjectCannedACL .PUBLIC_READ -> publicReadAcl()
3737 ObjectCannedACL .PUBLIC_READ_WRITE -> publicReadWriteAcl()
3838 ObjectCannedACL .AWS_EXEC_READ -> awsExecReadAcl()
3939 ObjectCannedACL .AUTHENTICATED_READ -> authenticatedReadAcl()
4040 ObjectCannedACL .BUCKET_OWNER_READ -> bucketOwnerReadAcl()
41- ObjectCannedACL .BUCKET_OWNER_FULL_CONTROL -> bucketOwnerFulleControlAcl ()
41+ ObjectCannedACL .BUCKET_OWNER_FULL_CONTROL -> bucketOwnerFullControlAcl ()
4242 }
43- }
4443
45- private fun bucketOwnerFulleControlAcl (): AccessControlPolicy {
46- return AccessControlPolicy (
47- Owner .DEFAULT_OWNER ,
48- listOf<Grant >(
49- Grant (
50- CanonicalUser (
51- Owner .DEFAULT_OWNER .displayName, Owner .DEFAULT_OWNER .id
52- ),
53- Grant .Permission .FULL_CONTROL
54- ),
55- Grant (
56- CanonicalUser (
57- Owner .DEFAULT_OWNER_BUCKET .displayName, Owner .DEFAULT_OWNER_BUCKET .id
58- ),
59- Grant .Permission .READ
60- )
61- )
44+ private val defaultOwner = Owner .DEFAULT_OWNER
45+ private val defaultOwnerUser = CanonicalUser (defaultOwner.displayName, defaultOwner.id)
46+
47+ private fun policyWithOwner (vararg additionalGrants : Grant ): AccessControlPolicy =
48+ AccessControlPolicy (
49+ defaultOwner,
50+ listOf (Grant (defaultOwnerUser, Grant .Permission .FULL_CONTROL )) + additionalGrants
51+ )
52+
53+ private fun bucketOwnerFullControlAcl (): AccessControlPolicy =
54+ policyWithOwner(
55+ Grant (
56+ CanonicalUser (
57+ Owner .DEFAULT_OWNER_BUCKET .displayName,
58+ Owner .DEFAULT_OWNER_BUCKET .id
59+ ),
60+ Grant .Permission .READ
61+ )
6262 )
63- }
6463
65- private fun bucketOwnerReadAcl (): AccessControlPolicy {
66- return AccessControlPolicy (
67- Owner .DEFAULT_OWNER ,
68- listOf<Grant >(
69- Grant (
70- CanonicalUser (
71- Owner .DEFAULT_OWNER .displayName, Owner .DEFAULT_OWNER .id
72- ),
73- Grant .Permission .FULL_CONTROL
74- ),
75- Grant (
76- CanonicalUser (
77- Owner .DEFAULT_OWNER_BUCKET .displayName, Owner .DEFAULT_OWNER_BUCKET .id
78- ),
79- Grant .Permission .READ
80- )
81- )
64+ private fun bucketOwnerReadAcl (): AccessControlPolicy =
65+ policyWithOwner(
66+ Grant (
67+ CanonicalUser (
68+ Owner .DEFAULT_OWNER_BUCKET .displayName,
69+ Owner .DEFAULT_OWNER_BUCKET .id
70+ ),
71+ Grant .Permission .READ
72+ )
8273 )
83- }
8474
85- private fun authenticatedReadAcl (): AccessControlPolicy {
86- return AccessControlPolicy (
87- Owner .DEFAULT_OWNER ,
88- listOf<Grant >(
89- Grant (
90- CanonicalUser (
91- Owner .DEFAULT_OWNER .displayName, Owner .DEFAULT_OWNER .id
92- ),
93- Grant .Permission .FULL_CONTROL
94- ),
95- Grant (
96- Group (Group .AUTHENTICATED_USERS_URI ),
97- Grant .Permission .READ
98- )
99- )
75+ private fun authenticatedReadAcl (): AccessControlPolicy =
76+ policyWithOwner(
77+ Grant (
78+ Group (Group .AUTHENTICATED_USERS_URI ),
79+ Grant .Permission .READ
80+ )
10081 )
101- }
10282
10383 /* *
10484 * The documentation says that EC2 gets READ access. Not sure what to configure for that.
10585 */
106- private fun awsExecReadAcl (): AccessControlPolicy {
107- return AccessControlPolicy (
108- Owner .DEFAULT_OWNER ,
109- listOf<Grant >(
110- Grant (
111- CanonicalUser (
112- Owner .DEFAULT_OWNER .displayName, Owner .DEFAULT_OWNER .id
113- ),
114- Grant .Permission .FULL_CONTROL
115- )
116- )
117- )
118- }
86+ private fun awsExecReadAcl (): AccessControlPolicy = policyWithOwner()
11987
120- private fun publicReadWriteAcl (): AccessControlPolicy {
121- return AccessControlPolicy (
122- Owner .DEFAULT_OWNER ,
123- listOf<Grant >(
124- Grant (
125- CanonicalUser (
126- Owner .DEFAULT_OWNER .displayName, Owner .DEFAULT_OWNER .id
127- ),
128- Grant .Permission .FULL_CONTROL
129- ),
130- Grant (
131- Group (Group .ALL_USERS_URI ),
132- Grant .Permission .READ
133- ),
134- Grant (
135- Group (Group .ALL_USERS_URI ),
136- Grant .Permission .WRITE
137- )
138- )
88+ private fun publicReadWriteAcl (): AccessControlPolicy =
89+ policyWithOwner(
90+ Grant (
91+ Group (Group .ALL_USERS_URI ),
92+ Grant .Permission .READ
93+ ),
94+ Grant (
95+ Group (Group .ALL_USERS_URI ),
96+ Grant .Permission .WRITE
97+ )
13998 )
140- }
14199
142- private fun publicReadAcl (): AccessControlPolicy {
143- return AccessControlPolicy (
144- Owner .DEFAULT_OWNER ,
145- listOf<Grant >(
146- Grant (
147- CanonicalUser (
148- Owner .DEFAULT_OWNER .displayName, Owner .DEFAULT_OWNER .id
149- ),
150- Grant .Permission .FULL_CONTROL
151- ),
152- Grant (
153- Group (Group .ALL_USERS_URI ),
154- Grant .Permission .READ
155- )
156- )
100+ private fun publicReadAcl (): AccessControlPolicy =
101+ policyWithOwner(
102+ Grant (
103+ Group (Group .ALL_USERS_URI ),
104+ Grant .Permission .READ
105+ )
157106 )
158- }
159107
160- private fun privateAcl (): AccessControlPolicy {
161- return AccessControlPolicy (
162- Owner .DEFAULT_OWNER ,
163- listOf<Grant >(
164- Grant (
165- CanonicalUser (
166- Owner .DEFAULT_OWNER .displayName, Owner .DEFAULT_OWNER .id
167- ),
168- Grant .Permission .FULL_CONTROL
169- )
170- )
171- )
172- }
108+ private fun privateAcl (): AccessControlPolicy = policyWithOwner()
173109}
0 commit comments