def find_allowed_vlans_for_user_on_netbox( account: profiles.Account, netbox: manage.Netbox, handler: ManagementHandler = None) -> List[FantasyVlan]: """Finds allowed vlans for this user on this netbox""" netbox_vlans = find_vlans_on_netbox(netbox, handler=handler) if CONFIG.is_vlan_authorization_enabled(): if is_admin(account): allowed_vlans = netbox_vlans else: all_allowed_vlans = find_allowed_vlans_for_user(account) allowed_vlans = intersect(all_allowed_vlans, netbox_vlans) else: allowed_vlans = netbox_vlans return sorted(allowed_vlans, key=attrgetter('vlan'))
def find_allowed_vlans_for_user_on_netbox(account, netbox, factory=None): """Find allowed vlans for this user on this netbox ::returns list of Fantasyvlans """ netbox_vlans = find_vlans_on_netbox(netbox, factory=factory) if CONFIG.is_vlan_authorization_enabled(): if is_admin(account): allowed_vlans = netbox_vlans else: all_allowed_vlans = find_allowed_vlans_for_user(account) allowed_vlans = intersect(all_allowed_vlans, netbox_vlans) else: allowed_vlans = netbox_vlans return sorted(allowed_vlans, key=attrgetter('vlan'))
def should_check_access_rights(account): """Return boolean indicating that this user is restricted""" return (CONFIG.is_vlan_authorization_enabled() and not is_admin(account))