当前位置: 首页>>代码示例>>PHP>>正文


PHP Authenticate::isUserInRole方法代码示例

本文整理汇总了PHP中Authenticate::isUserInRole方法的典型用法代码示例。如果您正苦于以下问题:PHP Authenticate::isUserInRole方法的具体用法?PHP Authenticate::isUserInRole怎么用?PHP Authenticate::isUserInRole使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Authenticate的用法示例。


在下文中一共展示了Authenticate::isUserInRole方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: securityAction

/**
 * Security action checks that the caller has the credentials to run the remote methods
 */
function securityAction(&$amfbody)
{
    $check = true;
    if (!$amfbody->noExec) {
        $classConstruct =& $amfbody->getClassConstruct();
        $methodName = $amfbody->methodName;
        $className = $amfbody->className;
        if ($methodName == "_authenticate") {
            if (method_exists($classConstruct, "_authenticate")) {
                $credentials = $amfbody->getValue();
                //Fix for error in _authenticate
                //Pass throught the executive
                $roles = Executive::doMethodCall($amfbody, $classConstruct, '_authenticate', array($credentials['userid'], $credentials['password']));
                if ($roles !== '__amfphp_error' && $roles !== false && $roles !== "") {
                    Authenticate::login($credentials['userid'], $roles);
                    return false;
                } else {
                    Authenticate::logout();
                    return false;
                }
            } else {
                $ex = new AMFException(E_USER_ERROR, "The _authenticate method was not found in the " . $className . " class", __FILE__, __LINE__, "AMFPHP_AUTHENTICATE_NOT_FOUND");
                AMFException::throwException($amfbody, $ex);
                return false;
            }
        }
        //else
        //Check for gateway restrictions
        $methodRecord = $classConstruct->methodTable[$methodName];
        // create a shortcut for the ugly path
        $instanceName = $GLOBALS['amfphp']['instanceName'];
        if (isset($instanceName) && isset($methodRecord['instance'])) {
            // see if we have an instance defined
            if ($instanceName != $methodRecord['instance']) {
                // if the names don't match die
                $ex = new AMFException(E_USER_ERROR, "The method {" . $methodName . "} instance name does not match this gateway's instance name.", __FILE__, __LINE__, "AMFPHP_INSTANCE_NAME_MISMATCH");
                AMFException::throwException($amfbody, $ex);
                return false;
            }
        } else {
            if (isset($methodRecord['instance'])) {
                // see if the method has an instance defined
                if ($instanceName != $methodRecord['instance']) {
                    // if the names don't match die
                    $ex = new AMFException(E_USER_ERROR, "The restricted method {" . $methodName . "} is not allowed through a non-restricted gateway.", __FILE__, __LINE__, "AMFPHP_INSTANCE_NAME_RESTRICTION");
                    AMFException::throwException($amfbody, $ex);
                    return false;
                }
            }
        }
        if (!isset($methodRecord['access']) || strtolower($methodRecord['access']) != "remote") {
            // make sure we can remotely call it
            $ex = new AMFException(E_USER_ERROR, "ACCESS DENIED: The method {" . $methodName . "} has not been declared a remote method.", __FILE__, __LINE__, "AMFPHP_METHOD_NOT_REMOTE");
            AMFException::throwException($amfbody, $ex);
            return false;
        }
        if (isset($methodRecord['roles']) && !Authenticate::isUserInRole($methodRecord['roles'])) {
            $ex = new AMFException(E_USER_ERROR, "This user is not does not have access to {" . $methodName . "}.", __FILE__, __LINE__, "AMFPHP_AUTH_MISMATCH");
            AMFException::throwException($amfbody, $ex);
            return false;
        }
    }
    return true;
}
开发者ID:ksecor,项目名称:civicrm,代码行数:67,代码来源:Actions.php


注:本文中的Authenticate::isUserInRole方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。