Exemplo n.º 1
0
 /**
  * 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;
 }
Exemplo n.º 2
0
 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());
 }
Exemplo n.º 3
0
 /**
  *
  * @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;
 }
Exemplo n.º 4
0
 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);
 }
Exemplo n.º 5
0
 /**
  *
  * @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);
 }
Exemplo n.º 6
0
 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;
 }