Merge "Replace Pakaran with Punjabi"
[lhc/web/wiklou.git] / includes / api / ApiOptions.php
index faebcdc..b5aec77 100644 (file)
@@ -25,9 +25,9 @@
  */
 
 /**
-* API module that facilitates the changing of user's preferences.
-* Requires API write mode to be enabled.
-*
+ * API module that facilitates the changing of user's preferences.
+ * Requires API write mode to be enabled.
+ *
  * @ingroup API
  */
 class ApiOptions extends ApiBase {
@@ -42,6 +42,10 @@ class ApiOptions extends ApiBase {
                        $this->dieUsage( 'Anonymous users cannot change preferences', 'notloggedin' );
                }
 
+               if ( !$user->isAllowed( 'editmyoptions' ) ) {
+                       $this->dieUsage( 'You don\'t have permission to edit your options', 'permissiondenied' );
+               }
+
                $params = $this->extractRequestParams();
                $changed = false;
 
@@ -80,9 +84,10 @@ class ApiOptions extends ApiBase {
                                        $validation = $field->validate( $value, $user->getOptions() );
                                        break;
                                case 'registered-multiselect':
-                                       // A key for a multiselect option.
+                               case 'registered-checkmatrix':
+                                       // A key for a multiselect or checkmatrix option.
                                        $validation = true;
-                                       $value = $value !== null ? (bool) $value : null;
+                                       $value = $value !== null ? (bool)$value : null;
                                        break;
                                case 'userjs':
                                        // Allow non-default preferences prefixed with 'userjs-', to be set by user scripts