def user_can(user, item, method_name):
    """When custom methods are required"""
    if user.is_superuser:
        return True
    if user.is_anonymous:
        return False
    method = getattr(item, method_name)
    if callable(method):
        return method(user)
    return False
