PermissionModel::getAllowedPermissionNamespaces PHP Method

getAllowedPermissionNamespaces() public method

Returns a complete list of all enabled applications & plugins. This list can act as a namespace list for permissions.
    public function getAllowedPermissionNamespaces()
    {
        $ApplicationManager = Gdn::applicationManager();
        $EnabledApplications = $ApplicationManager->EnabledApplications();
        $PluginNamespaces = array();
        foreach (Gdn::pluginManager()->EnabledPlugins() as $Plugin) {
            if (!array_key_exists('RegisterPermissions', $Plugin) || !is_array($Plugin['RegisterPermissions'])) {
                continue;
            }
            foreach ($Plugin['RegisterPermissions'] as $Index => $PermissionName) {
                if (is_string($Index)) {
                    $PermissionName = $Index;
                }
                $Namespace = substr($PermissionName, 0, strrpos($PermissionName, '.'));
                $PluginNamespaces[$Namespace] = true;
            }
        }
        $Result = array_merge(array_keys($EnabledApplications), array_keys($PluginNamespaces));
        if (in_array('Dashboard', $Result)) {
            $Result[] = 'Garden';
        }
        return $Result;
    }