function vc_bc_access_rule_48_shortcodes_rule($value, $role, $rule)
{
    if (!$role) {
        return $value;
    }
    if (!vc_bc_access_get_shortcodes_state_is_set($role)) {
        if (preg_match('/_edit$/', $rule)) {
            return false;
        }
        $group_access_settings = vc_settings()->get('groups_access_rules');
        if (isset($group_access_settings[$role->name]['shortcodes']) && !empty($group_access_settings[$role->name]['shortcodes'])) {
            $rule = preg_replace('/_all$/', '', $rule);
            return 'vc_row' === $rule || isset($group_access_settings[$role->name]['shortcodes'][$rule]) && 1 === (int) $group_access_settings[$role->name]['shortcodes'][$rule];
        } else {
            return true;
        }
    }
    return $value;
}
Beispiel #2
0
<script type="text/javascript" id="vc_role_access_manager_script">
	(function ( $ ) {
		var _localCapabilities, _check, _groupAccessRules, _shortcodesPartSet, _mergedCaps;
		_localCapabilities = <?php 
echo json_encode(vc_user_roles_get_all());
?>
;
		_shortcodesPartSet = <?php 
echo vc_bc_access_get_shortcodes_state_is_set(vc_user_access()->part('shortcodes')->getRole()) ? 'true' : 'false';
?>
;
		_groupAccessRules = <?php 
echo json_encode(array_merge(array('current_user' => wp_get_current_user()->roles), (array) vc_settings()->get('groups_access_rules')));
?>
;
		_mergedCaps = <?php 
echo json_encode(vc_user_access()->part('shortcodes')->getMergedCaps());
?>
;
		_check = function ( part, rule, custom, not_check_state ) {
			var state, partObj, findRule;

			partObj = _.isUndefined( _localCapabilities[ part ] ) ? {} : _localCapabilities[ part ];
			rule = vc_user_access().updateMergedCaps(rule);
			if ( ! not_check_state ) {
				state = _.isUndefined( partObj.state ) ? false : partObj.state; // if we don't have state it is incorrect part
				if ( null === state ) {
					return true;
				} else if ( _.isBoolean( state ) ) {
					return state;
				}