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 @@ +