FreeRADIUS is configured to use a combination of unlang and a Perl module to formulate the reply to an Access Request that a RADIUS Client will sent to the FreeRADIUS server.
The Perl module will look for any entries in the profile_fup_components DB table that is associated with the RADIUS Profile.
It will then try and determine which restriction to apply, if any.
The Perl module can be found in /etc/freeradius/3.0/mods-config/perl/fup.pl
It connects to the database and the credentials to connect with to the database is also specified inside this file.
Should there a FUP component to be applied to a user, we will keep track of it in the applied_fup_components table.
We then run a cron script cd /var/www/html/cake4/rd_cake && bin/cake fup that will compare the applied FUP component with the current active FUP component.
If they are different we send a disconnect request to all the RADIUS Clients for that username (All the RADIUS Clients where the user might be connected to)
This should initiate a re-authentication which will bring the applied FUP component in sync with the current active FUP component.