function updateRemote() { global $wgUser, $wgVanillaDB; try { $db = new Database($wgVanillaDB['host'], $wgVanillaDB['user'], $wgVanillaDB['password'], $wgVanillaDB['dbname']); $oldignore = $db->ignoreErrors(true); // get vanilla user id $vid = $db->selectField('GDN_UserAuthentication', array('UserID'), array('ForeignUserKey' => $wgUser->getID())); if (!$vid) { return true; } $photo = Avatar::getAvatarURL($wgUser->getName()); $updates = array("Photo" => $photo, "Email" => $wgUser->getEmail()); if (in_array('bureaucrat', $wgUser->getGroups())) { $updates["Admin"] = 1; } else { $updates["Admin"] = 0; } $opts = array('UserID' => $vid); $db->update('GDN_User', $updates, $opts); if (self::isUserBlocked()) { $db->update('GDN_UserRole', array('RoleID = 1'), $opts); } else { if (in_array('bureaucrat', $wgUser->getGroups())) { $db->update('GDN_UserRole', array('RoleID = 16'), $opts); } else { if (in_array('sysop', $wgUser->getGroups())) { $db->update("GDN_User", array('Permissions' => 'a:14:{i:0;s:19:"Garden.SignIn.Allow";i:1;s:22:"Garden.Activity.Delete";i:2;s:25:"Vanilla.Categories.Manage";i:3;s:19:"Vanilla.Spam.Manage";s:24:"Vanilla.Discussions.View";a:6:{i:0;s:1:"1";i:1;s:1:"4";i:2;s:1:"5";i:3;s:1:"7";i:4;s:1:"8";i:5;s:1:"9";}s:23:"Vanilla.Discussions.Add";a:6:{i:0;s:1:"1";i:1;s:1:"4";i:2;s:1:"5";i:3;s:1:"7";i:4;s:1:"8";i:5;s:1:"9";}s:24:"Vanilla.Discussions.Edit";a:6:{i:0;s:1:"1";i:1;s:1:"4";i:2;s:1:"5";i:3;s:1:"7";i:4;s:1:"8";i:5;s:1:"9";}s:28:"Vanilla.Discussions.Announce";a:6:{i:0;s:1:"1";i:1;s:1:"4";i:2;s:1:"5";i:3;s:1:"7";i:4;s:1:"8";i:5;s:1:"9";}s:24:"Vanilla.Discussions.Sink";a:6:{i:0;s:1:"1";i:1;s:1:"4";i:2;s:1:"5";i:3;s:1:"7";i:4;s:1:"8";i:5;s:1:"9";}s:25:"Vanilla.Discussions.Close";a:6:{i:0;s:1:"1";i:1;s:1:"4";i:2;s:1:"5";i:3;s:1:"7";i:4;s:1:"8";i:5;s:1:"9";}s:26:"Vanilla.Discussions.Delete";a:6:{i:0;s:1:"1";i:1;s:1:"4";i:2;s:1:"5";i:3;s:1:"7";i:4;s:1:"8";i:5;s:1:"9";}s:20:"Vanilla.Comments.Add";a:6:{i:0;s:1:"1";i:1;s:1:"4";i:2;s:1:"5";i:3;s:1:"7";i:4;s:1:"8";i:5;s:1:"9";}s:21:"Vanilla.Comments.Edit";a:6:{i:0;s:1:"1";i:1;s:1:"4";i:2;s:1:"5";i:3;s:1:"7";i:4;s:1:"8";i:5;s:1:"9";}s:23:"Vanilla.Comments.Delete";a:6:{i:0;s:1:"1";i:1;s:1:"4";i:2;s:1:"5";i:3;s:1:"7";i:4;s:1:"8";i:5;s:1:"9";}}'), $opts); $db->update('GDN_UserRole', array('RoleID = 32'), $opts); } else { $db->update("GDN_User", array('Permissions' => 'a:4:{i:0;s:19:"Garden.SignIn.Allow";s:24:"Vanilla.Discussions.View";a:6:{i:0;s:1:"1";i:1;s:1:"4";i:2;s:1:"5";i:3;s:1:"7";i:4;s:1:"8";i:5;s:1:"9";}s:23:"Vanilla.Discussions.Add";a:6:{i:0;s:1:"1";i:1;s:1:"4";i:2;s:1:"5";i:3;s:1:"7";i:4;s:1:"8";i:5;s:1:"9";}s:20:"Vanilla.Comments.Add";a:6:{i:0;s:1:"1";i:1;s:1:"4";i:2;s:1:"5";i:3;s:1:"7";i:4;s:1:"8";i:5;s:1:"9";}}'), $opts); $db->update('GDN_UserRole', array('RoleID = 8'), $opts); print $db->lastQuery(); } } } $db->ignoreErrors($oldignore); } catch (Exception $e) { print "oops {$e->getMessage()}\n"; } return true; }
/** * Performs the request query as a prepared statement and returns the results in the format constant specified: * DB_QQ_FULL Returns an indexed array of column named arrays for all rows returned. * DB_QQ_SINGLE_ROW Returns a column named array of the first row returned * DB_QQ_SINGLE_COLUMN Returns an indexed array of all row results in the first column * DB_QQ_SINGLE_CELL Returns a string containing the first column of the first row * * @param string $query The SQL query to perform. * @param array $data Array containing the bound parameters * @param integer $mode Format to return the requested data as. * @return array|string * @static */ public static function PreparedQuery($query, $data, $mode = DB_QQ_FULL) { $pdo = self::Link(); self::$lastQuery = $query; if (self::$query_callback && is_callable(self::$query_callback)) { call_user_func(self::$query_callback, $query); } self::$lastResult = $pdo->prepare($query); self::$lastResult->execute($data); $c = self::TotalResults(); switch ((int) $mode) { case DB_QQ_NONE: return $c; case DB_QQ_SINGLE_ROW: return $c ? self::$lastResult->fetch(PDO::FETCH_ASSOC) : array(); case DB_QQ_SINGLE_COLUMN: return $c ? self::$lastResult->fetchAll(PDO::FETCH_COLUMN, 0) : array(); case DB_QQ_SINGLE_CELL: if ($c) { $row = self::$lastResult->fetch(PDO::FETCH_NUM); return $row[0]; } else { return null; } case DB_QQ_FULL: default: return $c ? self::$lastResult->fetchAll(PDO::FETCH_ASSOC) : array(); } }