3 * StatusNet, the distributed open-source microblogging tool
5 * Base class for API actions that require "bare auth". Bare auth means
6 * authentication is required only if the action is called without an argument
7 * or query param specifying user id.
11 * LICENCE: This program is free software: you can redistribute it and/or modify
12 * it under the terms of the GNU Affero General Public License as published by
13 * the Free Software Foundation, either version 3 of the License, or
14 * (at your option) any later version.
16 * This program is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU Affero General Public License for more details.
21 * You should have received a copy of the GNU Affero General Public License
22 * along with this program. If not, see <http://www.gnu.org/licenses/>.
26 * @author Adrian Lang <mail@adrianlang.de>
27 * @author Brenda Wallace <shiny@cpan.org>
28 * @author Craig Andrews <candrews@integralblue.com>
29 * @author Dan Moore <dan@moore.cx>
30 * @author Evan Prodromou <evan@status.net>
31 * @author mEDI <medi@milaro.net>
32 * @author Sarven Capadisli <csarven@status.net>
33 * @author Zach Copley <zach@status.net>
34 * @copyright 2009 StatusNet, Inc.
35 * @copyright 2009 Free Software Foundation, Inc http://www.fsf.org
36 * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
37 * @link http://status.net/
40 if (!defined('STATUSNET')) {
45 * Actions extending this class will require auth unless a target
46 * user ID has been specified
50 * @author Adrian Lang <mail@adrianlang.de>
51 * @author Brenda Wallace <shiny@cpan.org>
52 * @author Craig Andrews <candrews@integralblue.com>
53 * @author Dan Moore <dan@moore.cx>
54 * @author Evan Prodromou <evan@status.net>
55 * @author mEDI <medi@milaro.net>
56 * @author Sarven Capadisli <csarven@status.net>
57 * @author Zach Copley <zach@status.net>
58 * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
59 * @link http://status.net/
61 class ApiBareAuthAction extends ApiAuthAction
64 * Does this API resource require authentication?
66 * @return boolean true or false
68 function requiresAuth()
70 // If the site is "private", all API methods except statusnet/config
71 // need authentication
72 if (common_config('site', 'private')) {
76 // check whether a user has been specified somehow
77 $id = $this->arg('id');
78 $user_id = $this->arg('user_id');
79 $screen_name = $this->arg('screen_name');
81 if (empty($id) && empty($user_id) && empty($screen_name)) {