/** * Returns users with duplicated emails * * @return array An array of User */ public function getWrongEmailUsers() { if (version_compare($this->appbox->get_version(), '3.9', '>=')) { return []; } $builder = $this->appbox->get_connection()->createQueryBuilder(); /** @var Statement $stmt */ $stmt = $builder->select('u.usr_mail', 'u.usr_id', 'u.last_conn', 'u.usr_login')->from($this->table, 'u')->where($builder->expr()->isNotNull('u.usr_mail'))->execute(); $rs = $stmt->fetchAll(\PDO::FETCH_ASSOC); $stmt->closeCursor(); $users = []; foreach ($rs as $row) { if (!isset($users[$row['usr_mail']])) { $users[$row['usr_mail']] = []; } $users[$row['usr_mail']][] = $row; } $badUsers = []; foreach ($users as $email => $usrs) { if (count($usrs) > 1) { $badUsers[$email] = []; foreach ($usrs as $usrInfo) { $badUsers[$email][$usrInfo['usr_id']] = $usrInfo; } } } unset($users); return $badUsers; }
public static function create(appbox $appbox, $type, array $data) { $sql = 'INSERT INTO api_webhooks (id, `type`, `data`, created) VALUES (null, :type, :data, NOW())'; $stmt = $appbox->get_connection()->prepare($sql); $stmt->execute(['type' => $type, 'data' => json_encode($data)]); $stmt->closeCursor(); return new API_Webhook($appbox, $appbox->get_connection()->lastInsertId()); }
/** * * @param string $key * @return string */ public function delete($key) { $return_value = $this->get($key); $sql = 'DELETE FROM bridge_account_settings WHERE account_id = :account_id AND `key` = :key'; $params = [':account_id' => $this->account->get_id(), ':key' => $key]; $stmt = $this->appbox->get_connection()->prepare($sql); $stmt->execute($params); $stmt->closeCursor(); return $return_value; }
public static function deleteInsertedRow(\appbox $appbox, \API_OAuth2_Application $app) { $conn = $appbox->get_connection(); $sql = ' DELETE FROM api_applications WHERE application_id = :id '; $t = [':id' => $app->get_id()]; $stmt = $conn->prepare($sql); $stmt->execute($t); $sql = ' DELETE FROM api_accounts WHERE api_account_id = :id '; $acc = self::getAccount(); $t = [':id' => $acc->get_id()]; $stmt = $conn->prepare($sql); $stmt->execute($t); }
/** * * @param appbox $appbox * @param API_OAuth2_Account $account * @param string $scope * @return API_OAuth2_Token */ public static function create(appbox $appbox, API_OAuth2_Account $account, $scope = null) { $sql = 'INSERT INTO api_oauth_tokens (oauth_token, session_id, api_account_id, expires, scope) VALUES (:token, null, :account_id, :expire, :scope)'; $expires = new \DateTime('+1 hour'); $params = [':token' => self::generate_token(), ':account_id' => $account->get_id(), ':expire' => $expires->format(DATE_ISO8601), ':scope' => $scope]; $stmt = $appbox->get_connection()->prepare($sql); $stmt->execute($params); $stmt->closeCursor(); return new API_OAuth2_Token($appbox, $account); }
public static function create(Application $app, databox $databox, appbox $appbox, $name, User $user = null) { $sbas_id = $databox->get_sbas_id(); $connbas = $databox->get_connection(); $conn = $appbox->get_connection(); $new_bas = false; $prefs = '<?xml version="1.0" encoding="UTF-8"?> <baseprefs> <status>0</status> <sugestedValues> </sugestedValues> </baseprefs>'; $sql = "INSERT INTO coll (coll_id, asciiname, prefs, logo)\n VALUES (null, :name, :prefs, '')"; $params = [':name' => $name, 'prefs' => $prefs]; $stmt = $connbas->prepare($sql); $stmt->execute($params); $stmt->closeCursor(); $new_id = (int) $connbas->lastInsertId(); $sql = "INSERT INTO bas (base_id, active, ord, server_coll_id, sbas_id, aliases)\n VALUES\n (null, 1, :ord, :server_coll_id, :sbas_id, '')"; $stmt = $conn->prepare($sql); $stmt->execute([':server_coll_id' => $new_id, ':sbas_id' => $sbas_id, ':ord' => self::getNewOrder($conn, $sbas_id)]); $stmt->closeCursor(); $new_bas = $conn->lastInsertId(); $databox->delete_data_from_cache(databox::CACHE_COLLECTIONS); $appbox->delete_data_from_cache(appbox::CACHE_LIST_BASES); cache_databox::update($app, $sbas_id, 'structure'); phrasea::reset_baseDatas($appbox); $collection = self::get_from_coll_id($app, $databox, $new_id); if (null !== $user) { $collection->set_admin($new_bas, $user); } return $collection; }