I'm trying to install a couple custom FreePBX modules that I've used with older Issabel and Elastix installations. This is the first time I've tried using with the current version of Issabel (20200102).
Usually I run the command
/var/lib/asterisk/bin/module_admin install <module> from bash to install it. Now when I do that it appears to work but when I try load https://pbx.local/?menu=pbxconfig&type=setup&display=<module> I see the menus but no module content. I have to go to Unembedded FreePBX to see the module content.
I tried using Unembedded FreePBX to install it, but the result is the same.
After digging through the code a bit, I found a function called
getContent() in /var/www/html/modules/pbxadmin/libs/contentIssabelPBX.php which is meant to render the module content. But that function calls
hasModulePrivilege() in /var/www/html/libs/paloSantoACL.class.php to see if I have permission to access the content, which I apparently don't, even though I'm using the admin account. It seems that the core FreePBX modules get ACL entries in an acl_module_privileges table in the /var/www/db/acl.db SQLite database but my modules don't whether I install via module_admin or Unembedded FreePBX.
The core modules don't seem to have anything in their module.xml related to privileges. They have a guimodule.php which I didn't see in older versions, but created that for my module made no difference. So I'm not sure what to try next other than directly modifying the ACL database which seems risky, especially since I want to automate the installation on multiple PBXs.
So, what's the correct way to install a FreePBX module and be able to access it from Issabel's web interface instead of resorting to using Unembedded FreePBX?