'Do a direct check against a lockstring (\'atype:func()..\'),
without any intermediary storage on the accessed object.
Args:
accessing_obj (object or None): The object seeking access.
Importantly, this can be left unset if the lock functions
don\'t access it, no updating or storage of locks are made
against this object in this method.
lockstring (str): Lock string to check, on the form
`"access_type:lock_definition"` where the `access_type`
part can potentially be set to a dummy value to just check
a lock condition.
no_superuser_bypass  (bool, optional): Force superusers to heed lock.
default (bool, optional): Fallback result to use if `access_type` is set
but no such `access_type` is found in the given `lockstring`.
access_type (str, bool): If set, only this access_type will be looked up
among the locks defined by `lockstring`.
Return:
access (bool): If check is passed or not.'

def check_lockstring(self, accessing_obj, lockstring, no_superuser_bypass=False, default=False, access_type=None):

    try:
        if (accessing_obj.locks.lock_bypass and (not no_superuser_bypass)):
            return True
    except AttributeError:
        if (no_superuser_bypass and ((hasattr(accessing_obj, 'is_superuser') and accessing_obj.is_superuser) or (hasattr(accessing_obj, 'player') and hasattr(accessing_obj.player, 'is_superuser') and accessing_obj.player.is_superuser) or (hasattr(accessing_obj, 'get_player') and ((not accessing_obj.get_player()) or accessing_obj.get_player().is_superuser)))):
            return True
    if (not (':' in lockstring)):
        lockstring = ('%s:%s' % ('_dummy', lockstring))
    locks = self._parse_lockstring(lockstring)
    if access_type:
        if (not (access_type in locks)):
            return default
        else:
            return self._eval_access_type(accessing_obj, locks, access_type)
    else:
        return all((self._eval_access_type(accessing_obj, locks, access_type) for access_type in locks))
