diff --git a/filefield_role_limit.module b/filefield_role_limit.module
index 62d1b4d..aabaffd 100644
--- a/filefield_role_limit.module
+++ b/filefield_role_limit.module
@@ -9,6 +9,19 @@
  * file extension types per user.
  */
 
+define('MAX_UPLOAD_SIZE_REDUCED', '24 MB');
+
+/**
+ * Implements hook_permission().
+ */
+function filefield_role_limit_permission() {
+  return array(
+    'privileged max upload size' =>  array(
+      'title' => t('Use privileged max upload size'),
+    ),
+  );
+}
+
 /**
  * Implements hook_help().
  */
@@ -52,56 +65,8 @@ function filefield_role_limit_field_widget_media_generic_form_alter(&$element, &
   // Altering 'media_generic' widget.
   $max_upload_size_plain = _filefield_role_limit_get_element_max_size($context, NULL, 'file', TRUE);
   $type_upload = _filefield_role_limit_get_element_type($context);
-  $element['#media_options']['global']['max_filesize'] = $max_upload_size_plain;
-  $element['#media_options']['global']['file_extensions'] = $type_upload;
-}
-
-/**
- * Implements hook_form_BASE_FORM_ID_alter() for field_ui_field_edit_form().
- */
-function filefield_role_limit_form_field_ui_field_edit_form_alter(&$form, &$form_state, $form_id) {
-  if (isset($form['instance']['widget']['type']['#value'])
-    && in_array($form['instance']['widget']['type']['#value'], _filefield_role_limit_supported_widgets())) {
-    $roles = user_roles();
-    if (!empty($roles)) {
-      $current_maxsize = format_size(file_upload_max_size());
-      $perfile_description = t('Specify the size limit that applies to each file separately for users for each role.');
-      $perfile_description .= ' ' . t('Enter a value like "512" (bytes), "80 KB" (kilobytes) or "50 MB" (megabytes) in order to restrict the allowed file size.');
-      $perfile_description .= ' ' . t("If you leave this empty the file sizes will be limited only by PHP's maximum post and file upload sizes");
-      $perfile_description .= ' ' . t('(current limit <strong>%limit</strong>).', array('%limit' => $current_maxsize));
-      $perfile_description .= ' ' . t('Also specify the allowable filetype extensions: separate extensions with a space or comma and do not include the leading dot.');
-      $form['instance']['settings']['filefield_role_limit_file_per_role'] = array(
-        '#type' => 'fieldset',
-        '#title' => t('File upload restrictions per role'),
-        '#description' => $perfile_description,
-        '#collapsible' => TRUE,
-        '#collapsed' => TRUE,
-        '#weight' => $form['instance']['settings']['max_filesize']['#weight'] + 1,
-      );
-      foreach ($roles as $rid => $role) {
-        $default_max_value = '';
-        $default_type_value = '';
-        if (isset($form['#instance']['settings']['filefield_role_limit_file_per_role']['max_filesize_per_file_role_' . $rid])) {
-          $default_max_value = $form['#instance']['settings']['filefield_role_limit_file_per_role']['max_filesize_per_file_role_' . $rid];
-        }
-        if (isset($form['#instance']['settings']['filefield_role_limit_file_per_role']['filetypes_per_file_role_' . $rid])) {
-          $default_type_value = $form['#instance']['settings']['filefield_role_limit_file_per_role']['filetypes_per_file_role_' . $rid];
-        }
-        $form['instance']['settings']['filefield_role_limit_file_per_role']['max_filesize_per_file_role_' . $rid] = array(
-          '#type' => 'textfield',
-          '#title' => t('Maximum upload size per file for role %role', array('%role' => $role)),
-          '#default_value' => $default_max_value,
-          '#element_validate' => array('_filefield_role_limit_widget_settings_max_filesize_per_file_validate'),
-        );
-        $form['instance']['settings']['filefield_role_limit_file_per_role']['filetypes_per_file_role_' . $rid] = array(
-          '#type' => 'textfield',
-          '#title' => t('Allowed file extensions for role %role', array('%role' => $role)),
-          '#default_value' => $default_type_value,
-          '#element_validate' => array('_file_generic_settings_extensions'),
-        );
-      }
-    }
-  }
+  $element[0]['#media_options']['global']['max_filesize'] = $max_upload_size_plain;
+  $element[0]['#media_options']['global']['file_extensions'] = $type_upload;
 }
 
 /**
@@ -258,6 +223,9 @@ function _filefield_role_limit_get_element_max_size($instance, $account = NULL,
       $max_upload_size = file_upload_max_size();
     }
   }
+  if (!user_access('privileged max upload size')) {
+    $max_upload_size = MAX_UPLOAD_SIZE_REDUCED;
+  }
   $limits[$instance['instance']['field_name']][$type][$account->uid]['raw'] = $max_upload_size;
   $limits[$instance['instance']['field_name']][$type][$account->uid]['parsed'] = parse_size($max_upload_size);
   if ($is_raw) {
@@ -272,7 +240,7 @@ function _filefield_role_limit_get_element_max_size($instance, $account = NULL,
  * Each user role could have a different allowable file type.
  * If user has a blank entry for allowable file type for a role,
  * then the default it used.
- * 
+ *
  * @param array $instance
  *   A field element instance as array.
  * @param object|null $account
