diff --git modules/user/views_plugin_argument_validate_user.inc modules/user/views_plugin_argument_validate_user.inc
index 0da1fa6..330acdd 100644
--- modules/user/views_plugin_argument_validate_user.inc
+++ modules/user/views_plugin_argument_validate_user.inc
@@ -12,6 +12,8 @@ class views_plugin_argument_validate_user extends views_plugin_argument_validate
   function option_definition() {
     $options = parent::option_definition();
     $options['type'] = array('default' => 'uid');
+    $options['restrict_user'] = array('default' => FALSE);
+    $options['restrict_user_perm'] = array('default' => '');
     $options['restrict_roles'] = array('default' => FALSE);
     $options['roles'] = array('default' => array());
 
@@ -30,6 +32,32 @@ class views_plugin_argument_validate_user extends views_plugin_argument_validate
       '#default_value' => $this->options['type'],
     );
 
+    $form['restrict_user'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Restrict to current user or with special permission'),
+      '#default_value' => $this->options['restrict_user'],
+    );
+
+    $perms = array();
+    // Get list of permissions
+    foreach (module_list(FALSE, FALSE, TRUE) as $module) {
+      if ($permissions = module_invoke($module, 'perm')) {
+        $perms[$module] = drupal_map_assoc($permissions);
+      }
+    }
+
+    $form['restrict_user_perm'] = array(
+      '#type' => 'select',
+      '#title' => t('Permission'),
+      '#description' => t('Select which permission is necesary to access to this view if the provided argument is not the current user name or the current user id.'),
+      '#options' => $perms,
+      '#default_value' => $this->options['restrict_user_perm'],
+      '#process' => array('views_process_dependency'),
+      '#dependency' => array(
+        'edit-options-argument-validate-user-restrict-user' => array(1),
+      ),
+    );
+
     $form['restrict_roles'] = array(
       '#type' => 'checkbox',
       '#title' => t('Restrict user based on role'),
@@ -99,6 +127,14 @@ class views_plugin_argument_validate_user extends views_plugin_argument_validate
       return FALSE;
     }
 
+    // Check if only the current user or with a special permission is allowed
+    if (!empty($this->options['restrict_user'])) {
+      $has_permission = user_access($this->options['restrict_user_perm'], $account);
+      if ($argument != $account->name && $argument != $account->uid && !$has_permission) {
+        return FALSE;
+      }
+    }
+
     // See if we're filtering users based on roles.
     if (!empty($this->options['restrict_roles']) && !empty($this->options['roles'])) {
       $roles = $this->options['roles'];
