Beispiel #1
0
function muIsValidUser($str)
{
    if (yourls_is_API()) {
        return true;
    }
    return $str;
}
/**
 * Check if we'll need interface display function (ie not API or redirection)
 *
 */
function yourls_has_interface()
{
    yourls_deprecated_function(__FUNCTION__, '1.7.1');
    if (yourls_is_API() or yourls_is_GO()) {
        return false;
    }
    return true;
}
Beispiel #3
0
/**
 * Check for valid user via login form or stored cookie. Returns true or an error message
 *
 */
function yourls_is_valid_user()
{
    // Allow plugins to short-circuit the whole function
    $pre = yourls_apply_filter('shunt_is_valid_user', null);
    if (null !== $pre) {
        return $pre;
    }
    // $unfiltered_valid : are credentials valid? Boolean value. It's "unfiltered" to allow plugins to eventually filter it.
    $unfiltered_valid = false;
    // Logout request
    if (isset($_GET['action']) && $_GET['action'] == 'logout') {
        yourls_do_action('logout');
        yourls_store_cookie(null);
        return yourls__('Logged out successfully');
    }
    // Check cookies or login request. Login form has precedence.
    yourls_do_action('pre_login');
    // Determine auth method and check credentials
    if (yourls_is_API() && isset($_REQUEST['timestamp']) && !empty($_REQUEST['timestamp']) && isset($_REQUEST['signature']) && !empty($_REQUEST['signature'])) {
        yourls_do_action('pre_login_signature_timestamp');
        $unfiltered_valid = yourls_check_signature_timestamp();
    } elseif (yourls_is_API() && !isset($_REQUEST['timestamp']) && isset($_REQUEST['signature']) && !empty($_REQUEST['signature'])) {
        yourls_do_action('pre_login_signature');
        $unfiltered_valid = yourls_check_signature();
    } elseif (isset($_REQUEST['username']) && isset($_REQUEST['password']) && !empty($_REQUEST['username']) && !empty($_REQUEST['password'])) {
        yourls_do_action('pre_login_username_password');
        $unfiltered_valid = yourls_check_username_password();
    } elseif (!yourls_is_API() && isset($_COOKIE[yourls_cookie_name()])) {
        yourls_do_action('pre_login_cookie');
        $unfiltered_valid = yourls_check_auth_cookie();
    }
    // Regardless of validity, allow plugins to filter the boolean and have final word
    $valid = yourls_apply_filter('is_valid_user', $unfiltered_valid);
    // Login for the win!
    if ($valid) {
        yourls_do_action('login');
        // (Re)store encrypted cookie if needed
        if (!yourls_is_API()) {
            yourls_store_cookie(YOURLS_USER);
            // Login form : redirect to requested URL to avoid re-submitting the login form on page reload
            if (isset($_REQUEST['username']) && isset($_REQUEST['password']) && isset($_SERVER['REQUEST_URI'])) {
                $url = $_SERVER['REQUEST_URI'];
                yourls_redirect($url);
            }
        }
        // Login successful
        return true;
    }
    // Login failed
    yourls_do_action('login_failed');
    if (isset($_REQUEST['username']) || isset($_REQUEST['password'])) {
        return yourls__('Invalid username or password');
    } else {
        return yourls__('Please log in');
    }
}
Beispiel #4
0
/**
 * Check for valid user. Returns true or an error message
 *
 */
function yourls_is_valid_user()
{
    static $valid = false;
    if ($valid) {
        return true;
    }
    $unfiltered_valid = false;
    // Logout request
    if (isset($_GET['action']) && $_GET['action'] == 'logout') {
        yourls_do_action('logout');
        yourls_store_cookie(null);
        return yourls__('Logged out successfully');
    }
    // Check cookies or login request. Login form has precedence.
    global $yourls_user_passwords;
    yourls_do_action('pre_login');
    // Determine auth method and check credentials
    if (yourls_is_API() && isset($_REQUEST['timestamp']) && !empty($_REQUEST['timestamp']) && isset($_REQUEST['signature']) && !empty($_REQUEST['signature'])) {
        yourls_do_action('pre_login_signature_timestamp');
        $unfiltered_valid = yourls_check_signature_timestamp();
    } elseif (yourls_is_API() && !isset($_REQUEST['timestamp']) && isset($_REQUEST['signature']) && !empty($_REQUEST['signature'])) {
        yourls_do_action('pre_login_signature');
        $unfiltered_valid = yourls_check_signature();
    } elseif (isset($_REQUEST['username']) && isset($_REQUEST['password']) && !empty($_REQUEST['username']) && !empty($_REQUEST['password'])) {
        yourls_do_action('pre_login_username_password');
        $unfiltered_valid = yourls_check_username_password();
    } elseif (!yourls_is_API() && isset($_COOKIE['yourls_username']) && isset($_COOKIE['yourls_password'])) {
        yourls_do_action('pre_login_cookie');
        $unfiltered_valid = yourls_check_auth_cookie();
    }
    $valid = yourls_apply_filter('is_valid_user', $unfiltered_valid);
    // Login for the win!
    if ($valid) {
        yourls_do_action('login');
        // (Re)store encrypted cookie if needed and tell it's ok
        if (!yourls_is_API() && $unfiltered_valid) {
            yourls_store_cookie(YOURLS_USER);
        }
        return true;
    }
    // Login failed
    yourls_do_action('login_failed');
    if (isset($_REQUEST['username']) || isset($_REQUEST['password'])) {
        return yourls__('Invalid username or password');
    } else {
        return yourls__('Please log in');
    }
}
Beispiel #5
0
function yourls_is_valid_user()
{
    static $valid = false;
    if ($valid) {
        return true;
    }
    // Logout request
    if (isset($_GET['mode']) && $_GET['mode'] == 'logout') {
        yourls_store_cookie(null);
        return 'Logged out successfully';
    }
    // Check cookies or login request. Login form has precedence.
    global $yourls_user_passwords;
    // In the future maybe I'll implement nonces like in WP. Will be something like
    // ?nonce=fn(login,pwd,action)
    // Determine auth method and check credentials
    if (yourls_is_API() && isset($_REQUEST['timestamp']) && !empty($_REQUEST['timestamp']) && isset($_REQUEST['signature']) && !empty($_REQUEST['signature'])) {
        $valid = yourls_check_signature_timestamp();
    } elseif (yourls_is_API() && !isset($_REQUEST['timestamp']) && isset($_REQUEST['signature']) && !empty($_REQUEST['signature'])) {
        $valid = yourls_check_signature();
    } elseif (isset($_REQUEST['username']) && isset($_REQUEST['password']) && !empty($_REQUEST['username']) && !empty($_REQUEST['password'])) {
        $valid = yourls_check_username_password();
    } elseif (!yourls_is_API() && isset($_COOKIE['yourls_username']) && isset($_COOKIE['yourls_password'])) {
        $valid = yourls_check_auth_cookie();
    }
    // Login for the win!
    if ($valid) {
        // (Re)store encrypted cookie and tell it's ok
        if (!yourls_is_API()) {
            // No need to store a cookie when used in API mode.
            yourls_store_cookie(YOURLS_USER);
        }
        return true;
    }
    // Login failed
    if (isset($_REQUEST['username']) || isset($_REQUEST['password'])) {
        return 'Invalid username or password';
    } else {
        return 'Please log in';
    }
}
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
 * IN THE SOFTWARE.
 *
 * @category    laemmi-yourls-comment-label
 * @package     plugin.php
 * @author      Michael Lämmlein <*****@*****.**>
 * @copyright   ©2015 laemmi
 * @license     http://www.opensource.org/licenses/mit-license.php MIT-License
 * @version     1.0.0
 * @since       23.10.15
 */
// No direct call
if (!defined('YOURLS_ABSPATH')) {
    die;
}
if (!yourls_is_API()) {
    // Check if AbstractDefault class exists
    if (class_exists('Laemmi\\Yourls\\Plugin\\AbstractDefault')) {
        require_once 'lib/Laemmi/Yourls/Plugin/CommentLabel/Plugin.php';
        new Laemmi\Yourls\Plugin\CommentLabel\Plugin(['db' => $ydb, 'allowed_groups' => defined('LAEMMI_EASY_LDAP_ALLOWED_GROUPS') ? json_decode(LAEMMI_EASY_LDAP_ALLOWED_GROUPS, true) : []]);
    } else {
        if ('activate' === (isset($_GET['action']) ? $_GET['action'] : null) && 'laemmi-yourls-comment-label' === $_GET['plugin']) {
            echo 'Please install "laemmi-yourls-default-tools" first!';
        }
    }
}
Beispiel #7
0
<?php

// No direct call
if (!defined('YOURLS_ABSPATH')) {
    die;
}
$auth = yourls_is_valid_user();
if ($auth !== true) {
    // API mode,
    if (yourls_is_API()) {
        $format = isset($_REQUEST['format']) ? $_REQUEST['format'] : 'xml';
        $callback = isset($_REQUEST['callback']) ? $_REQUEST['callback'] : '';
        yourls_api_output($format, array('simple' => $auth, 'message' => $auth, 'errorCode' => 403, 'callback' => $callback));
        // Regular mode
    } else {
        yourls_login_screen($auth);
    }
    die;
}
yourls_do_action('auth_successful');
Beispiel #8
0
/**
 * Check if we'll need interface display function (ie not API or redirection)
 *
 */
function yourls_has_interface()
{
    if (yourls_is_API() or yourls_is_GO()) {
        return false;
    }
    return true;
}
Beispiel #9
0
function authmgr_check_apiuser_capability($original, $capability)
{
    // Shortcut - trust approval given by earlier filters
    if ($original === true) {
        return true;
    }
    // In API mode and not using user/path authn? Let it go.
    if (yourls_is_API() && !isset($_REQUEST['username'])) {
        return true;
    }
    // TODO: add controls for actions, like
    // shorturl, stats, db-stats, url-stats, expand
    return $original;
}
Beispiel #10
0
/**
 * Allow several short URLs for the same long URL ?
 *
 */
function yourls_allow_duplicate_longurls()
{
    // special treatment if API to check for WordPress plugin requests
    if (yourls_is_API()) {
        if (isset($_REQUEST['source']) && $_REQUEST['source'] == 'plugin') {
            return false;
        }
    }
    return defined('YOURLS_UNIQUE_URLS') && YOURLS_UNIQUE_URLS == false;
}