1.20.x file.install file_update_1007()

Grant the admin role permission to manage files and file types.

File

modules/file/file.install, line 1152
Install, update and uninstall functions for File module.

Code

function file_update_1007() {
  $admin_role = config_get('system.core', 'user_admin_role');

  $config = config('user.role.' . $admin_role);
  $permissions = $config->get('permissions');
  if ($permissions) {
    // Add the new permissions.
    $new_permissions = array(
      'bypass file access',
      'administer file types',
      'create files',
      'view own private files',
      'view own files',
      'view private files',
      'view files',
    );
    // Permissions for each file type.
    $config_file_names = config_get_names_with_prefix('file.type.');
    foreach ($config_file_names as $config_file_name) {
      $file_type = str_replace('file.type.', '', $config_file_name);
      $new_permissions[] = "edit own $file_type files";
      $new_permissions[] = "edit any $file_type files";
      $new_permissions[] = "delete own $file_type files";
      $new_permissions[] = "delete any $file_type files";
      $new_permissions[] = "download own $file_type files";
      $new_permissions[] = "download any $file_type files";
    }
    foreach ($new_permissions as $new_permission) {
      if (!in_array($new_permission, $permissions)) {
        $permissions[] = $new_permission;
      }
    }

    // Save the role.
    $config->set('permissions', $permissions);
    $config->save();
  }
}