You are here

function _s3fs_cors_admin_form_submit in S3 File System CORS Upload 7

Enables CORS on the configured bucket when the form is submitted.

1 string reference to '_s3fs_cors_admin_form_submit'
s3fs_cors_admin_form in ./s3fs_cors.admin.inc
Builds the Admin form.

File

./s3fs_cors.admin.inc, line 34
Administration form setup for S3 File System CORS Upload.

Code

function _s3fs_cors_admin_form_submit($form, &$form_state) {
  $config = _s3fs_get_config();
  $s3 = _s3fs_get_amazons3_client($config);
  if (!empty($form_state['values']['s3fs_cors_origin'])) {
    $cors_origin = $form_state['values']['s3fs_cors_origin'];
    $s3
      ->putBucketCors(array(
      'Bucket' => $config['bucket'],
      'CORSRules' => array(
        array(
          'AllowedHeaders' => array(
            '*',
          ),
          'ExposeHeaders' => array(
            'x-amz-version-id',
          ),
          'AllowedMethods' => array(
            'POST',
          ),
          'MaxAgeSeconds' => 3000,
          'AllowedOrigins' => array(
            "http://{$cors_origin}",
            "https://{$cors_origin}",
          ),
        ),
        array(
          'AllowedMethods' => array(
            'GET',
          ),
          'AllowedOrigins' => array(
            '*',
          ),
        ),
      ),
    ));
  }
  else {

    // If $form_state['values']['s3fs_cors_origin'] is empty, that means we
    // need to delete their bucket's CORS config.
    $s3
      ->deleteBucketCors(array(
      'Bucket' => $config['bucket'],
    ));
  }
}