From f0ddfe656547b8373b7119a85e75c6565c61a49b Mon Sep 17 00:00:00 2001 From: epriestley Date: Mon, 17 Jun 2013 10:49:18 -0700 Subject: [PATCH] Add PhabricatorAuthProviderConfigQuery Summary: Ref T1536. See D6196. Code not called yet. Test Plan: Static checks only. Reviewers: btrahan Reviewed By: btrahan CC: aran Maniphest Tasks: T1536 Differential Revision: https://secure.phabricator.com/D6197 --- src/__phutil_library_map__.php | 10 ++- .../PhabricatorAuthProviderConfigQuery.php | 86 +++++++++++++++++++ ...atorAuthProviderConfigTransactionQuery.php | 10 +++ .../storage/PhabricatorAuthProviderConfig.php | 26 +++++- 4 files changed, 130 insertions(+), 2 deletions(-) create mode 100644 src/applications/auth/query/PhabricatorAuthProviderConfigQuery.php create mode 100644 src/applications/auth/query/PhabricatorAuthProviderConfigTransactionQuery.php diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php index f36f09ee20..d686c825ad 100644 --- a/src/__phutil_library_map__.php +++ b/src/__phutil_library_map__.php @@ -822,7 +822,9 @@ phutil_register_library_map(array( 'PhabricatorAuthLoginController' => 'applications/auth/controller/PhabricatorAuthLoginController.php', 'PhabricatorAuthProvider' => 'applications/auth/provider/PhabricatorAuthProvider.php', 'PhabricatorAuthProviderConfig' => 'applications/auth/storage/PhabricatorAuthProviderConfig.php', + 'PhabricatorAuthProviderConfigQuery' => 'applications/auth/query/PhabricatorAuthProviderConfigQuery.php', 'PhabricatorAuthProviderConfigTransaction' => 'applications/auth/storage/PhabricatorAuthProviderConfigTransaction.php', + 'PhabricatorAuthProviderConfigTransactionQuery' => 'applications/auth/query/PhabricatorAuthProviderConfigTransactionQuery.php', 'PhabricatorAuthProviderLDAP' => 'applications/auth/provider/PhabricatorAuthProviderLDAP.php', 'PhabricatorAuthProviderOAuth' => 'applications/auth/provider/PhabricatorAuthProviderOAuth.php', 'PhabricatorAuthProviderOAuthDisqus' => 'applications/auth/provider/PhabricatorAuthProviderOAuthDisqus.php', @@ -2688,8 +2690,14 @@ phutil_register_library_map(array( 'PhabricatorAuthDAO' => 'PhabricatorLiskDAO', 'PhabricatorAuthLinkController' => 'PhabricatorAuthController', 'PhabricatorAuthLoginController' => 'PhabricatorAuthController', - 'PhabricatorAuthProviderConfig' => 'PhabricatorAuthDAO', + 'PhabricatorAuthProviderConfig' => + array( + 0 => 'PhabricatorAuthDAO', + 1 => 'PhabricatorPolicyInterface', + ), + 'PhabricatorAuthProviderConfigQuery' => 'PhabricatorCursorPagedPolicyAwareQuery', 'PhabricatorAuthProviderConfigTransaction' => 'PhabricatorApplicationTransaction', + 'PhabricatorAuthProviderConfigTransactionQuery' => 'PhabricatorApplicationTransactionQuery', 'PhabricatorAuthProviderLDAP' => 'PhabricatorAuthProvider', 'PhabricatorAuthProviderOAuth' => 'PhabricatorAuthProvider', 'PhabricatorAuthProviderOAuthDisqus' => 'PhabricatorAuthProviderOAuth', diff --git a/src/applications/auth/query/PhabricatorAuthProviderConfigQuery.php b/src/applications/auth/query/PhabricatorAuthProviderConfigQuery.php new file mode 100644 index 0000000000..451956edb9 --- /dev/null +++ b/src/applications/auth/query/PhabricatorAuthProviderConfigQuery.php @@ -0,0 +1,86 @@ +phids = $phids; + return $this; + } + + public function withIDs(array $ids) { + $this->ids = $ids; + return $this; + } + + public function withStatus($status) { + $this->status = $status; + return $this; + } + + public static function getStatusOptions() { + return array( + self::STATUS_ALL => pht('All Providers'), + self::STATUS_ENABLED => pht('Enabled Providers'), + ); + } + + protected function loadPage() { + $table = new PhabricatorAuthProviderConfig(); + $conn_r = $table->establishConnection('r'); + + $data = queryfx_all( + $conn_r, + 'SELECT * FROM %T %Q %Q %Q', + $table->getTableName(), + $this->buildWhereClause($conn_r), + $this->buildOrderClause($conn_r), + $this->buildLimitClause($conn_r)); + + return $table->loadAllFromArray($data); + } + + protected function buildWhereClause(AphrontDatabaseConnection $conn_r) { + $where = array(); + + if ($this->ids) { + $where[] = qsprintf( + $conn_r, + 'id IN (%Ld)', + $this->ids); + } + + if ($this->phids) { + $where[] = qsprintf( + $conn_r, + 'phid IN (%Ls)', + $this->phids); + } + + $status = $this->status; + switch ($status) { + case self::STATUS_ALL: + break; + case self::STATUS_ENABLED: + $where[] = qsprintf( + $conn_r, + 'isEnabled = 1'); + break; + default: + throw new Exception("Unknown status '{$status}'!"); + } + + $where[] = $this->buildPagingClause($conn_r); + + return $this->formatWhereClause($where); + } + +} diff --git a/src/applications/auth/query/PhabricatorAuthProviderConfigTransactionQuery.php b/src/applications/auth/query/PhabricatorAuthProviderConfigTransactionQuery.php new file mode 100644 index 0000000000..e1deaed04e --- /dev/null +++ b/src/applications/auth/query/PhabricatorAuthProviderConfigTransactionQuery.php @@ -0,0 +1,10 @@ +