summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMeiMei <30769358+mei23@users.noreply.github.com>2020-08-13 20:05:01 +0900
committerGitHub <noreply@github.com>2020-08-13 20:05:01 +0900
commitee0a44559040e83ce7d184bef57372f9c3602a75 (patch)
treefae0ffb3e17753ae1856bbc1751b7b1cc618abb4 /src
parentWIP: Improve admin dashboard (diff)
downloadsharkey-ee0a44559040e83ce7d184bef57372f9c3602a75.tar.gz
sharkey-ee0a44559040e83ce7d184bef57372f9c3602a75.tar.bz2
sharkey-ee0a44559040e83ce7d184bef57372f9c3602a75.zip
Option objectStorageSetPublicRead (#6645)
Diffstat (limited to 'src')
-rw-r--r--src/client/pages/instance/settings.vue4
-rw-r--r--src/models/entities/meta.ts5
-rw-r--r--src/server/api/endpoints/admin/update-meta.ts8
-rw-r--r--src/server/api/endpoints/meta.ts1
-rw-r--r--src/services/drive/add-file.ts1
5 files changed, 19 insertions, 0 deletions
diff --git a/src/client/pages/instance/settings.vue b/src/client/pages/instance/settings.vue
index 8318807d43..0c0e506ab8 100644
--- a/src/client/pages/instance/settings.vue
+++ b/src/client/pages/instance/settings.vue
@@ -161,6 +161,7 @@
</div>
<mk-switch v-model="objectStorageUseSSL" :disabled="!useObjectStorage">{{ $t('objectStorageUseSSL') }}<template #desc>{{ $t('objectStorageUseSSLDesc') }}</template></mk-switch>
<mk-switch v-model="objectStorageUseProxy" :disabled="!useObjectStorage">{{ $t('objectStorageUseProxy') }}<template #desc>{{ $t('objectStorageUseProxyDesc') }}</template></mk-switch>
+ <mk-switch v-model="objectStorageSetPublicRead" :disabled="!useObjectStorage">{{ $t('objectStorageSetPublicRead') }}</mk-switch>
</template>
</div>
<div class="_footer">
@@ -306,6 +307,7 @@ export default Vue.extend({
objectStorageSecretKey: null,
objectStorageUseSSL: false,
objectStorageUseProxy: false,
+ objectStorageSetPublicRead: false,
enableTwitterIntegration: false,
twitterConsumerKey: null,
twitterConsumerSecret: null,
@@ -373,6 +375,7 @@ export default Vue.extend({
this.objectStorageSecretKey = this.meta.objectStorageSecretKey;
this.objectStorageUseSSL = this.meta.objectStorageUseSSL;
this.objectStorageUseProxy = this.meta.objectStorageUseProxy;
+ this.objectStorageSetPublicRead = this.meta.objectStorageSetPublicRead;
this.enableTwitterIntegration = this.meta.enableTwitterIntegration;
this.twitterConsumerKey = this.meta.twitterConsumerKey;
this.twitterConsumerSecret = this.meta.twitterConsumerSecret;
@@ -522,6 +525,7 @@ export default Vue.extend({
objectStorageSecretKey: this.objectStorageSecretKey ? this.objectStorageSecretKey : null,
objectStorageUseSSL: this.objectStorageUseSSL,
objectStorageUseProxy: this.objectStorageUseProxy,
+ objectStorageSetPublicRead: this.objectStorageSetPublicRead,
enableTwitterIntegration: this.enableTwitterIntegration,
twitterConsumerKey: this.twitterConsumerKey,
twitterConsumerSecret: this.twitterConsumerSecret,
diff --git a/src/models/entities/meta.ts b/src/models/entities/meta.ts
index 622d28bead..d1eecf6277 100644
--- a/src/models/entities/meta.ts
+++ b/src/models/entities/meta.ts
@@ -370,4 +370,9 @@ export class Meta {
default: true,
})
public objectStorageUseProxy: boolean;
+
+ @Column('boolean', {
+ default: false,
+ })
+ public objectStorageSetPublicRead: boolean;
}
diff --git a/src/server/api/endpoints/admin/update-meta.ts b/src/server/api/endpoints/admin/update-meta.ts
index dffe7ffe7f..fea6cb539f 100644
--- a/src/server/api/endpoints/admin/update-meta.ts
+++ b/src/server/api/endpoints/admin/update-meta.ts
@@ -418,6 +418,10 @@ export const meta = {
objectStorageUseProxy: {
validator: $.optional.bool
+ },
+
+ objectStorageSetPublicRead: {
+ validator: $.optional.bool
}
}
};
@@ -673,6 +677,10 @@ export default define(meta, async (ps, me) => {
set.objectStorageUseProxy = ps.objectStorageUseProxy;
}
+ if (ps.objectStorageSetPublicRead !== undefined) {
+ set.objectStorageSetPublicRead = ps.objectStorageSetPublicRead;
+ }
+
await getConnection().transaction(async transactionalEntityManager => {
const meta = await transactionalEntityManager.findOne(Meta, {
order: {
diff --git a/src/server/api/endpoints/meta.ts b/src/server/api/endpoints/meta.ts
index eefc370124..f011a6751f 100644
--- a/src/server/api/endpoints/meta.ts
+++ b/src/server/api/endpoints/meta.ts
@@ -195,6 +195,7 @@ export default define(meta, async (ps, me) => {
response.objectStorageSecretKey = instance.objectStorageSecretKey;
response.objectStorageUseSSL = instance.objectStorageUseSSL;
response.objectStorageUseProxy = instance.objectStorageUseProxy;
+ response.objectStorageSetPublicRead = instance.objectStorageSetPublicRead;
}
return response;
diff --git a/src/services/drive/add-file.ts b/src/services/drive/add-file.ts
index 969dc04069..0e56d7a055 100644
--- a/src/services/drive/add-file.ts
+++ b/src/services/drive/add-file.ts
@@ -212,6 +212,7 @@ async function upload(key: string, stream: fs.ReadStream | Buffer, type: string,
} as S3.PutObjectRequest;
if (filename) params.ContentDisposition = contentDisposition('inline', filename);
+ if (meta.objectStorageSetPublicRead) params.ACL = 'public-read';
const s3 = getS3(meta);