execute(array($value, $id2)); AddToLog('User ID: '.$id2. ' changed '.$id1.' to '.$value, 'auth'); ok(); } catch (PDOException $ex) { // Duplicate email or username? fail(); } case 'user_gedcom_setting': ////////////////////////////////////////////////////////////////////////////// // Table name: WT_USER_GEDCOM_SETTING // ID format: user_gedcom_setting-{user_id}-{gedcom_id}-{setting_name} ////////////////////////////////////////////////////////////////////////////// // Authorisation if (!(WT_USER_IS_ADMIN || userGedcomAdmin($id2, $id3))) { fail(); } // Validation switch($id3) { case 'rootid': case 'gedcomid': case 'canedit': case 'RELATIONSHIP_PATH_LENGTH': break; default: // An unrecognised setting fail(); } // Authorised and valid - make update set_user_gedcom_setting($id1, $id2, $id3, $value); ok(); case 'user_setting': ////////////////////////////////////////////////////////////////////////////// // Table name: WT_USER_SETTING // ID format: user_setting-{user_id}-{setting_name} ////////////////////////////////////////////////////////////////////////////// // Authorisation if (!(WT_USER_IS_ADMIN || WT_USER_ID && get_user_setting($id1, 'editaccount') && _array($id2, array('language','visible_online','contact_method')))) { fail(); } // Validation switch ($id2) { case 'canadmin': // Cannot change our own admin status - either to add it or remove it if (WT_USER_ID==$id1) { fail(); } break; case 'auto_accept': case 'editaccount': case 'verified': case 'verified_by_admin': case 'visibleonline': case 'max_relation_path': $value=(int)$value; break; case 'contactmethod': case 'comment': case 'language': case 'theme': break; default: // An unrecognised setting fail(); } // Authorised and valid - make update set_user_setting($id1, $id2, $value); ok(); case 'module': ////////////////////////////////////////////////////////////////////////////// // Table name: WT_MODULE // ID format: module-{column}-{module_name} ////////////////////////////////////////////////////////////////////////////// // Authorisation if (!WT_USER_IS_ADMIN) { fail(); } switch($id1) { case 'status': case 'tab_order': case 'menu_order': case 'sidebar_order': WT_DB::prepare("UPDATE `##module` SET {$id1}=? WHERE module_name=?") ->execute(array($value, $id2)); ok(); default: fail(); } default: // An unrecognised table fail(); }