itizawa 5 лет назад
Родитель
Сommit
7b3f9bf264

+ 49 - 12
src/client/js/components/Admin/App/AwsSetting.jsx

@@ -12,6 +12,41 @@ function AwsSetting(props) {
 
   return (
     <React.Fragment>
+
+      <div className="row form-group my-3">
+        <label
+          className="text-left text-md-right col-md-3 col-form-label"
+        >
+          内部のファイル
+        </label>
+        <div className="col-md-6 py-1">
+          <div className="custom-control custom-checkbox custom-checkbox-info">
+            <input
+              type="checkbox"
+              id="cbS3IsEnabledInternalStreamSystem"
+              className="custom-control-input"
+              name="changeS3IsEnabledInternalStreamSystem"
+              checked={adminAppContainer.state.s3IsEnabledInternalStreamSystem}
+              onChange={(e) => {
+                adminAppContainer.changeS3IsEnabledInternalStreamSystem(e.target.checked);
+              }}
+            />
+            <label
+              className="custom-control-label"
+              htmlFor="cbS3IsEnabledInternalStreamSystem"
+            >
+              {/* {t('admin:app_setting.enable_files_except_image')} */}
+              hoge
+            </label>
+          </div>
+
+          <p className="form-text text-muted">
+            explane
+            {/* {t('admin:app_setting.attach_enable')} */}
+          </p>
+        </div>
+      </div>
+
       <div className="row form-group">
         <label className="text-left text-md-right col-md-3 col-form-label">
           {t('admin:app_setting.region')}
@@ -22,8 +57,8 @@ function AwsSetting(props) {
             placeholder={`${t('eg')} ap-northeast-1`}
             defaultValue={adminAppContainer.state.s3Region || ''}
             onChange={(e) => {
-                adminAppContainer.changeS3Region(e.target.value);
-              }}
+              adminAppContainer.changeS3Region(e.target.value);
+            }}
           />
         </div>
       </div>
@@ -39,8 +74,8 @@ function AwsSetting(props) {
             placeholder={`${t('eg')} http://localhost:9000`}
             defaultValue={adminAppContainer.state.s3CustomEndpoint || ''}
             onChange={(e) => {
-                adminAppContainer.changeS3CustomEndpoint(e.target.value);
-              }}
+              adminAppContainer.changeS3CustomEndpoint(e.target.value);
+            }}
           />
           <p className="form-text text-muted">{t('admin:app_setting.custom_endpoint_change')}</p>
         </div>
@@ -57,15 +92,15 @@ function AwsSetting(props) {
             placeholder={`${t('eg')} crowi`}
             defaultValue={adminAppContainer.state.s3Bucket || ''}
             onChange={(e) => {
-                adminAppContainer.changeS3Bucket(e.target.value);
-              }}
+              adminAppContainer.changeS3Bucket(e.target.value);
+            }}
           />
         </div>
       </div>
 
       <div className="row form-group">
         <label className="text-left text-md-right col-md-3 col-form-label">
-            Access key ID
+          Access key ID
         </label>
         <div className="col-md-6">
           <input
@@ -73,15 +108,15 @@ function AwsSetting(props) {
             type="text"
             defaultValue={adminAppContainer.state.s3AccessKeyId || ''}
             onChange={(e) => {
-                adminAppContainer.changeS3AccessKeyId(e.target.value);
-              }}
+              adminAppContainer.changeS3AccessKeyId(e.target.value);
+            }}
           />
         </div>
       </div>
 
       <div className="row form-group">
         <label className="text-left text-md-right col-md-3 col-form-label">
-            Secret access key
+          Secret access key
         </label>
         <div className="col-md-6">
           <input
@@ -89,11 +124,13 @@ function AwsSetting(props) {
             type="text"
             defaultValue={adminAppContainer.state.s3SecretAccessKey || ''}
             onChange={(e) => {
-                adminAppContainer.changeS3SecretAccessKey(e.target.value);
-              }}
+              adminAppContainer.changeS3SecretAccessKey(e.target.value);
+            }}
           />
         </div>
       </div>
+
+
     </React.Fragment>
   );
 }

+ 36 - 0
src/client/js/components/Admin/App/GcsSettings.jsx

@@ -15,6 +15,41 @@ function GcsSetting(props) {
 
   return (
     <>
+
+      <div className="row form-group my-3">
+        <label
+          className="text-left text-md-right col-md-3 col-form-label"
+        >
+          内部のファイル
+        </label>
+        <div className="col-md-6 py-1">
+          <div className="custom-control custom-checkbox custom-checkbox-info">
+            <input
+              type="checkbox"
+              id="cbGcsIsEnabledInternalStreamSystem"
+              className="custom-control-input"
+              name="cbGcsIsEnabledInternalStreamSystem"
+              checked={adminAppContainer.state.gcsIsEnabledInternalStreamSystem}
+              onChange={(e) => {
+                adminAppContainer.changeGcsIsEnabledInternalStreamSystem(e.target.checked);
+              }}
+            />
+            <label
+              className="custom-control-label"
+              htmlFor="cbGcsIsEnabledInternalStreamSystem"
+            >
+              {/* {t('admin:app_setting.enable_files_except_image')} */}
+              hoge
+            </label>
+          </div>
+
+          <p className="form-text text-muted">
+            explane
+            {/* {t('admin:app_setting.attach_enable')} */}
+          </p>
+        </div>
+      </div>
+
       {gcsUseOnlyEnvVars && (
         <p
           className="alert alert-info"
@@ -98,6 +133,7 @@ function GcsSetting(props) {
           </tr>
         </tbody>
       </table>
+
     </>
   );
 

+ 21 - 0
src/client/js/services/AdminAppContainer.js

@@ -46,12 +46,14 @@ export default class AdminAppContainer extends Container {
       envGcsBucket: '',
       gcsUploadNamespace: '',
       envGcsUploadNamespace: '',
+      gcsIsEnabledInternalStreamSystem: false,
 
       s3Region: '',
       s3CustomEndpoint: '',
       s3Bucket: '',
       s3AccessKeyId: '',
       s3SecretAccessKey: '',
+      s3IsEnabledInternalStreamSystem: false,
 
       isEnabledPlugins: true,
     };
@@ -99,10 +101,13 @@ export default class AdminAppContainer extends Container {
       s3Bucket: appSettingsParams.s3Bucket,
       s3AccessKeyId: appSettingsParams.s3AccessKeyId,
       s3SecretAccessKey: appSettingsParams.s3SecretAccessKey,
+      s3IsEnabledInternalStreamSystem: appSettingsParams.s3IsEnabledInternalStreamSystem,
+
       gcsUseOnlyEnvVars: appSettingsParams.gcsUseOnlyEnvVars,
       gcsApiKeyJsonPath: appSettingsParams.gcsApiKeyJsonPath,
       gcsBucket: appSettingsParams.gcsBucket,
       gcsUploadNamespace: appSettingsParams.gcsUploadNamespace,
+      gcsIsEnabledInternalStreamSystem: appSettingsParams.gcsUploadNamespace,
       envGcsApiKeyJsonPath: appSettingsParams.envGcsApiKeyJsonPath,
       envGcsBucket: appSettingsParams.envGcsBucket,
       envGcsUploadNamespace: appSettingsParams.envGcsUploadNamespace,
@@ -238,6 +243,13 @@ export default class AdminAppContainer extends Container {
     this.setState({ s3SecretAccessKey });
   }
 
+  /**
+   * Change s3IsEnabledInternalStreamSystem
+   */
+  changeS3IsEnabledInternalStreamSystem(s3IsEnabledInternalStreamSystem) {
+    this.setState({ s3IsEnabledInternalStreamSystem });
+  }
+
   /**
    * Change gcsApiKeyJsonPath
    */
@@ -259,6 +271,13 @@ export default class AdminAppContainer extends Container {
     this.setState({ gcsUploadNamespace });
   }
 
+  /**
+   * Change gcsIsEnabledInternalStreamSystem
+   */
+  changeGcsIsEnabledInternalStreamSystem(gcsIsEnabledInternalStreamSystem) {
+    this.setState({ gcsIsEnabledInternalStreamSystem });
+  }
+
   /**
    * Change secret key
    */
@@ -367,6 +386,7 @@ export default class AdminAppContainer extends Container {
       requestParams.gcsApiKeyJsonPath = this.state.gcsApiKeyJsonPath;
       requestParams.gcsBucket = this.state.gcsBucket;
       requestParams.gcsUploadNamespace = this.state.gcsUploadNamespace;
+      requestParams.gcsIsEnabledInternalStreamSystem = this.state.gcsIsEnabledInternalStreamSystem;
     }
 
     if (fileUploadType === 'aws') {
@@ -375,6 +395,7 @@ export default class AdminAppContainer extends Container {
       requestParams.s3Bucket = this.state.s3Bucket;
       requestParams.s3AccessKeyId = this.state.s3AccessKeyId;
       requestParams.s3SecretAccessKey = this.state.s3SecretAccessKey;
+      requestParams.s3IsEnabledInternalStreamSystem = this.state.s3IsEnabledInternalStreamSystem;
     }
 
     const response = await this.appContainer.apiv3.put('/app-settings/file-upload-setting', requestParams);

+ 4 - 0
src/server/routes/apiv3/app-settings.js

@@ -240,10 +240,14 @@ module.exports = (crowi) => {
       s3Bucket: crowi.configManager.getConfig('crowi', 'aws:s3Bucket'),
       s3AccessKeyId: crowi.configManager.getConfig('crowi', 'aws:s3AccessKeyId'),
       s3SecretAccessKey: crowi.configManager.getConfig('crowi', 'aws:s3SecretAccessKey'),
+      s3IsEnabledInternalStreamSystem: crowi.configManager.getConfig('crowi', 'aws:isEnabledInternalStreamSystem'),
+
       gcsUseOnlyEnvVars: crowi.configManager.getConfig('crowi', 'gcs:useOnlyEnvVarsForSomeOptions'),
       gcsApiKeyJsonPath: crowi.configManager.getConfig('crowi', 'gcs:apiKeyJsonPath'),
       gcsBucket: crowi.configManager.getConfig('crowi', 'gcs:bucket'),
       gcsUploadNamespace: crowi.configManager.getConfig('crowi', 'gcs:uploadNamespace'),
+      gcsIsEnabledInternalStreamSystem: crowi.configManager.getConfig('crowi', 'gcs:isEnabledInternalStreamSystem'),
+
       envGcsApiKeyJsonPath: crowi.configManager.getConfigFromEnvVars('crowi', 'gcs:apiKeyJsonPath'),
       envGcsBucket: crowi.configManager.getConfigFromEnvVars('crowi', 'gcs:bucket'),
       envGcsUploadNamespace: crowi.configManager.getConfigFromEnvVars('crowi', 'gcs:uploadNamespace'),