Return-Path: X-Original-To: apmail-couchdb-commits-archive@www.apache.org Delivered-To: apmail-couchdb-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 28D219E90 for ; Tue, 21 Feb 2012 20:00:32 +0000 (UTC) Received: (qmail 72982 invoked by uid 500); 21 Feb 2012 20:00:32 -0000 Delivered-To: apmail-couchdb-commits-archive@couchdb.apache.org Received: (qmail 72938 invoked by uid 500); 21 Feb 2012 20:00:32 -0000 Mailing-List: contact commits-help@couchdb.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@couchdb.apache.org Delivered-To: mailing list commits@couchdb.apache.org Received: (qmail 72803 invoked by uid 99); 21 Feb 2012 20:00:31 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 21 Feb 2012 20:00:31 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.114] (HELO tyr.zones.apache.org) (140.211.11.114) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 21 Feb 2012 20:00:31 +0000 Received: by tyr.zones.apache.org (Postfix, from userid 65534) id DC5C7811E85; Tue, 21 Feb 2012 20:00:10 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: jan@apache.org To: commits@couchdb.apache.org X-Mailer: ASF-Git Admin Mailer Subject: [2/2] git commit: Make just /_users/_changes admin-only, not every _changes Message-Id: <20120221200010.DC5C7811E85@tyr.zones.apache.org> Date: Tue, 21 Feb 2012 20:00:10 +0000 (UTC) Make just /_users/_changes admin-only, not every _changes Project: http://git-wip-us.apache.org/repos/asf/couchdb/repo Commit: http://git-wip-us.apache.org/repos/asf/couchdb/commit/fd0ca45d Tree: http://git-wip-us.apache.org/repos/asf/couchdb/tree/fd0ca45d Diff: http://git-wip-us.apache.org/repos/asf/couchdb/diff/fd0ca45d Branch: refs/heads/master Commit: fd0ca45d2d63ae33cccf10eed024a219113a51d6 Parents: 6dc9424 Author: Jan Lehnardt Authored: Tue Feb 21 20:57:53 2012 +0100 Committer: Jan Lehnardt Committed: Tue Feb 21 20:57:53 2012 +0100 ---------------------------------------------------------------------- src/couchdb/couch_httpd_db.erl | 15 +++++++++++++-- 1 files changed, 13 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/couchdb/blob/fd0ca45d/src/couchdb/couch_httpd_db.erl ---------------------------------------------------------------------- diff --git a/src/couchdb/couch_httpd_db.erl b/src/couchdb/couch_httpd_db.erl index bba9b7c..981c6a1 100644 --- a/src/couchdb/couch_httpd_db.erl +++ b/src/couchdb/couch_httpd_db.erl @@ -63,8 +63,19 @@ handle_changes_req(#httpd{method='GET'}=Req, Db) -> handle_changes_req(#httpd{path_parts=[_,<<"_changes">>]}=Req, _Db) -> send_method_not_allowed(Req, "GET,HEAD,POST"). -handle_changes_req1(Req, Db) -> - ok = couch_db:check_is_admin(Db), +handle_changes_req1(Req, #db{name=DbName}=Db) -> + AuthDbName = ?l2b(couch_config:get("couch_httpd_auth", "authentication_db")), + case AuthDbName of + DbName -> + % in the authentication database, _changes is admin-only. + ok = couch_db:check_is_admin(Db); + _Else -> + % on other databases, _changes is free for all. + ok + end, + handle_changes_req2(Req, Db). + +handle_changes_req2(Req, Db) -> MakeCallback = fun(Resp) -> fun({change, Change, _}, "continuous") -> send_chunk(Resp, [?JSON_ENCODE(Change) | "\n"]);