FreeRADIUS is configured to use a combination of unlang and a Perl module to formulate the response to an access request that a RADIUS client sends to the FreeRADIUS server.
The Perl module searches for all entries in the DB table profile_fup_components that are linked to the RADIUS profile.
It then attempts to determine which restriction, if any, should be applied.
The Perl module can be found in /etc/freeradius/3.0/mods-config/perl/fup.pl
It establishes a connection to the database and the login information with which the connection to the database is to be established is also specified in this file.
If there is an FBD component that is to be applied to a user, we record it in the applied_fup_components table.
We then run a cron script cd /var/www/html/cake4/rd_cake && bin/cake fup that compares the applied FBD component with the currently active FBD component.
If they are different, we send a disconnect request to all RADIUS clients for that username (all RADIUS clients the user might be connected to)
This should initiate a re-authentication that synchronizes the applied FBD component with the current active FBD component.