Commit 90eea7db authored by Franco Fichtner's avatar Franco Fichtner

acl: mostly merge rework from master

Keep two names intact that were broken on master for the sake
of simplicity: legacy map stays in place for these two.

(cherry picked from commit 4763373d)
(cherry picked from commit 9ad060f6)
(cherry picked from commit a90efa28)
(cherry picked from commit d83563fa)
(cherry picked from commit 4b99ff9f)
(cherry picked from commit 9205427c)
(cherry picked from commit 40879017)
(cherry picked from commit ffbbfc96)
(cherry picked from commit a674b5e0)
parent 58a8f00e
...@@ -428,6 +428,7 @@ ...@@ -428,6 +428,7 @@
/usr/local/opnsense/mvc/app/models/OPNsense/CaptivePortal/Menu/Menu.xml /usr/local/opnsense/mvc/app/models/OPNsense/CaptivePortal/Menu/Menu.xml
/usr/local/opnsense/mvc/app/models/OPNsense/CaptivePortal/Migrations/M1_0_0.php /usr/local/opnsense/mvc/app/models/OPNsense/CaptivePortal/Migrations/M1_0_0.php
/usr/local/opnsense/mvc/app/models/OPNsense/Core/ACL.php /usr/local/opnsense/mvc/app/models/OPNsense/Core/ACL.php
/usr/local/opnsense/mvc/app/models/OPNsense/Core/ACL/ACL.xml
/usr/local/opnsense/mvc/app/models/OPNsense/Core/ACL_Legacy_Page_Map.json /usr/local/opnsense/mvc/app/models/OPNsense/Core/ACL_Legacy_Page_Map.json
/usr/local/opnsense/mvc/app/models/OPNsense/Cron/ACL/ACL.xml /usr/local/opnsense/mvc/app/models/OPNsense/Cron/ACL/ACL.xml
/usr/local/opnsense/mvc/app/models/OPNsense/Cron/Cron.php /usr/local/opnsense/mvc/app/models/OPNsense/Cron/Cron.php
...@@ -444,6 +445,10 @@ ...@@ -444,6 +445,10 @@
/usr/local/opnsense/mvc/app/models/OPNsense/IDS/IDS.xml /usr/local/opnsense/mvc/app/models/OPNsense/IDS/IDS.xml
/usr/local/opnsense/mvc/app/models/OPNsense/IDS/Menu/Menu.xml /usr/local/opnsense/mvc/app/models/OPNsense/IDS/Menu/Menu.xml
/usr/local/opnsense/mvc/app/models/OPNsense/IDS/Migrations/M1_0_0.php /usr/local/opnsense/mvc/app/models/OPNsense/IDS/Migrations/M1_0_0.php
/usr/local/opnsense/mvc/app/models/OPNsense/IGMPProxy/ACL/ACL.xml
/usr/local/opnsense/mvc/app/models/OPNsense/IGMPProxy/Menu/Menu.xml
/usr/local/opnsense/mvc/app/models/OPNsense/Ntpd/ACL/ACL.xml
/usr/local/opnsense/mvc/app/models/OPNsense/Ntpd/Menu/Menu.xml
/usr/local/opnsense/mvc/app/models/OPNsense/Proxy/ACL/ACL.xml /usr/local/opnsense/mvc/app/models/OPNsense/Proxy/ACL/ACL.xml
/usr/local/opnsense/mvc/app/models/OPNsense/Proxy/Menu/Menu.xml /usr/local/opnsense/mvc/app/models/OPNsense/Proxy/Menu/Menu.xml
/usr/local/opnsense/mvc/app/models/OPNsense/Proxy/Migrations/M1_0_0.php /usr/local/opnsense/mvc/app/models/OPNsense/Proxy/Migrations/M1_0_0.php
...@@ -451,6 +456,8 @@ ...@@ -451,6 +456,8 @@
/usr/local/opnsense/mvc/app/models/OPNsense/Proxy/Proxy.xml /usr/local/opnsense/mvc/app/models/OPNsense/Proxy/Proxy.xml
/usr/local/opnsense/mvc/app/models/OPNsense/Relayd/ACL/ACL.xml /usr/local/opnsense/mvc/app/models/OPNsense/Relayd/ACL/ACL.xml
/usr/local/opnsense/mvc/app/models/OPNsense/Relayd/Menu/Menu.xml /usr/local/opnsense/mvc/app/models/OPNsense/Relayd/Menu/Menu.xml
/usr/local/opnsense/mvc/app/models/OPNsense/SNMP/ACL/ACL.xml
/usr/local/opnsense/mvc/app/models/OPNsense/SNMP/Menu/Menu.xml
/usr/local/opnsense/mvc/app/models/OPNsense/TrafficShaper/ACL/ACL.xml /usr/local/opnsense/mvc/app/models/OPNsense/TrafficShaper/ACL/ACL.xml
/usr/local/opnsense/mvc/app/models/OPNsense/TrafficShaper/Menu/Menu.xml /usr/local/opnsense/mvc/app/models/OPNsense/TrafficShaper/Menu/Menu.xml
/usr/local/opnsense/mvc/app/models/OPNsense/TrafficShaper/Migrations/M1_0_0.php /usr/local/opnsense/mvc/app/models/OPNsense/TrafficShaper/Migrations/M1_0_0.php
...@@ -458,6 +465,8 @@ ...@@ -458,6 +465,8 @@
/usr/local/opnsense/mvc/app/models/OPNsense/TrafficShaper/TrafficShaper.xml /usr/local/opnsense/mvc/app/models/OPNsense/TrafficShaper/TrafficShaper.xml
/usr/local/opnsense/mvc/app/models/OPNsense/UPnP/ACL/ACL.xml /usr/local/opnsense/mvc/app/models/OPNsense/UPnP/ACL/ACL.xml
/usr/local/opnsense/mvc/app/models/OPNsense/UPnP/Menu/Menu.xml /usr/local/opnsense/mvc/app/models/OPNsense/UPnP/Menu/Menu.xml
/usr/local/opnsense/mvc/app/models/OPNsense/WOL/ACL/ACL.xml
/usr/local/opnsense/mvc/app/models/OPNsense/WOL/Menu/Menu.xml
/usr/local/opnsense/mvc/app/views/OPNsense/CaptivePortal/clients.volt /usr/local/opnsense/mvc/app/views/OPNsense/CaptivePortal/clients.volt
/usr/local/opnsense/mvc/app/views/OPNsense/CaptivePortal/index.volt /usr/local/opnsense/mvc/app/views/OPNsense/CaptivePortal/index.volt
/usr/local/opnsense/mvc/app/views/OPNsense/CaptivePortal/vouchers.volt /usr/local/opnsense/mvc/app/views/OPNsense/CaptivePortal/vouchers.volt
......
...@@ -252,21 +252,6 @@ ...@@ -252,21 +252,6 @@
<Lookup order="40" url="/diag_dns.php"/> <Lookup order="40" url="/diag_dns.php"/>
<LogFile order="100" VisibleName="Log File" url="/diag_logs_resolver.php"/> <LogFile order="100" VisibleName="Log File" url="/diag_logs_resolver.php"/>
</DNSTools> </DNSTools>
<IGMPProxy VisibleName="IGMP Proxy" url="/services_igmpproxy.php" cssClass="fa fa-map-signs fa-fw">
<Edit url="/services_igmpproxy_edit.php" visibility="hidden"/>
</IGMPProxy>
<NTP VisibleName="Network Time" cssClass="fa fa-clock-o fa-fw">
<General order="10" url="/services_ntpd.php"/>
<GPS order="20" url="/services_ntpd_gps.php"/>
<PPS order="30" url="/services_ntpd_pps.php"/>
<Status order="40" url="/status_ntpd.php"/>
<Log order="50" VisibleName="Log File" url="/diag_logs_ntpd.php"/>
</NTP>
<SNMP url="/services_snmp.php" cssClass="fa fa-database fa-fw"/>
<WoL VisibleName="Wake on LAN" url="/services_wol.php" cssClass="fa fa-power-off fa-fw">
<WoLEdit url="/services_wol_edit.php*" visibility="hidden"/>
<Wol url="/services_wol.php*" visibility="hidden"/>
</WoL>
<Diagnostics order="900" cssClass="fa fa-medkit fa-fw" url="/status_services.php"> <Diagnostics order="900" cssClass="fa fa-medkit fa-fw" url="/status_services.php">
<All url="/status_services.php?*" visibility="hidden"/> <All url="/status_services.php?*" visibility="hidden"/>
</Diagnostics> </Diagnostics>
......
<acl> <acl>
<!-- unique acl key, must be globally unique for all acl's -->
<page-services-captiveportal> <page-services-captiveportal>
<name>WebCfg - Services: Captive Portal</name> <name>Services: Captive Portal</name>
<description>Allow access to the 'Services: Captive Portal' page.</description>
<patterns> <patterns>
<pattern>ui/captiveportal/*</pattern> <pattern>ui/captiveportal/*</pattern>
<pattern>api/captiveportal/*</pattern> <pattern>api/captiveportal/*</pattern>
......
...@@ -112,10 +112,6 @@ class ACL ...@@ -112,10 +112,6 @@ class ACL
if (isset($ACLnode->name)) { if (isset($ACLnode->name)) {
$aclPayload = array(); $aclPayload = array();
$aclPayload['name'] = (string)$ACLnode->name; $aclPayload['name'] = (string)$ACLnode->name;
if (isset($ACLnode->description)) {
// rename internal tag for backward compat.
$aclPayload['descr'] = (string)$ACLnode->description;
}
if (isset($ACLnode->patterns->pattern)) { if (isset($ACLnode->patterns->pattern)) {
// rename pattern to match for internal usage, old code did use match and // rename pattern to match for internal usage, old code did use match and
// to avoid duplicate conversion let's do this only on input. // to avoid duplicate conversion let's do this only on input.
...@@ -267,8 +263,8 @@ class ACL ...@@ -267,8 +263,8 @@ class ACL
foreach ($this->ACLtags as $aclKey => $aclItem) { foreach ($this->ACLtags as $aclKey => $aclItem) {
$priv_list[$aclKey] = array(); $priv_list[$aclKey] = array();
foreach ($aclItem as $propName => $propValue) { foreach ($aclItem as $propName => $propValue) {
if ($propName == 'name' || $propName == 'descr') { if ($propName == 'name') {
// translate name and description tags // translate name tag
$priv_list[$aclKey][$propName] = gettext($propValue); $priv_list[$aclKey][$propName] = gettext($propValue);
} else { } else {
$priv_list[$aclKey][$propName] = $propValue; $priv_list[$aclKey][$propName] = $propValue;
......
This diff is collapsed.
<acl> <acl>
<!-- unique acl key, must be globally unique for all acl's -->
<page-system-cron> <page-system-cron>
<name>WebCfg - System: Settings: Cron page</name> <name>System: Settings: Cron</name>
<description>Allow access to the 'System: Settings: Cron' page.</description>
<patterns> <patterns>
<pattern>ui/cron/*</pattern> <pattern>ui/cron/*</pattern>
<pattern>api/cron/*</pattern> <pattern>api/cron/*</pattern>
......
<acl> <acl>
<!-- unique acl key, must be globally unique for all acl's -->
<page-diagnostics-arptable> <page-diagnostics-arptable>
<name>WebCfg - Diagnostics: ARP Table page</name> <name>Diagnostics: ARP Table</name>
<description>Allow access to the 'Diagnostics: ARP Table' page.</description>
<patterns> <patterns>
<pattern>ui/diagnostics/interface/arp/*</pattern> <pattern>ui/diagnostics/interface/arp/*</pattern>
<pattern>api/diagnostics/interface/getArp*</pattern> <pattern>api/diagnostics/interface/getArp*</pattern>
</patterns> </patterns>
</page-diagnostics-arptable> </page-diagnostics-arptable>
<page-diagnostics-ndptable> <page-diagnostics-ndptable>
<name>Webcfg - Diagnostics: NDP Table page</name> <name>Diagnostics: NDP Table</name>
<description>Allow access to the 'Diagnostics: NDP Table' page.</description>
<patterns> <patterns>
<pattern>ui/diagnostics/interface/ndp/*</pattern> <pattern>ui/diagnostics/interface/ndp/*</pattern>
<pattern>api/diagnostics/interface/getNdp*</pattern> <pattern>api/diagnostics/interface/getNdp*</pattern>
</patterns> </patterns>
</page-diagnostics-ndptable> </page-diagnostics-ndptable>
<page-diagnostics-routingtables> <page-diagnostics-routingtables>
<name>WebCfg - Diagnostics: Routing tables page</name> <name>Diagnostics: Routing tables</name>
<description>Allow access to the 'Diagnostics: Routing tables' page.</description>
<patterns> <patterns>
<pattern>ui/diagnostics/interface/routes/*</pattern> <pattern>ui/diagnostics/interface/routes/*</pattern>
<pattern>api/diagnostics/interface/getRoutes*</pattern> <pattern>api/diagnostics/interface/getRoutes*</pattern>
</patterns> </patterns>
</page-diagnostics-routingtables> </page-diagnostics-routingtables>
<page-diagnostics-system-activity> <page-diagnostics-system-activity>
<name>WebCfg - Diagnostics: System Activity</name> <name>Diagnostics: System Activity</name>
<description>Allows access to the 'Diagnostics: System Activity' page</description>
<patterns> <patterns>
<pattern>ui/diagnostics/activity/*</pattern> <pattern>ui/diagnostics/activity/*</pattern>
<pattern>api/diagnostics/activity/*</pattern> <pattern>api/diagnostics/activity/*</pattern>
</patterns> </patterns>
</page-diagnostics-system-activity> </page-diagnostics-system-activity>
<page-diagnostics-health> <page-diagnostics-health>
<name>WebCfg - Diagnostics: System Health</name> <name>Diagnostics: System Health</name>
<description>Allows access to the 'Diagnostics: System Health' page</description>
<patterns> <patterns>
<pattern>ui/diagnostics/systemhealth/*</pattern> <pattern>ui/diagnostics/systemhealth/*</pattern>
<pattern>api/diagnostics/systemhealth/*</pattern> <pattern>api/diagnostics/systemhealth/*</pattern>
...@@ -42,16 +36,14 @@ ...@@ -42,16 +36,14 @@
</patterns> </patterns>
</page-diagnostics-health> </page-diagnostics-health>
<page-diagnostics-networkinsight> <page-diagnostics-networkinsight>
<name>WebCfg - Diagnostics: Network Insight</name> <name>Diagnostics: Network Insight</name>
<description>Allows access to the 'Diagnostics: Network Insight' page</description>
<patterns> <patterns>
<pattern>ui/diagnostics/networkinsight/*</pattern> <pattern>ui/diagnostics/networkinsight/*</pattern>
<pattern>api/diagnostics/networkinsight/*</pattern> <pattern>api/diagnostics/networkinsight/*</pattern>
</patterns> </patterns>
</page-diagnostics-networkinsight> </page-diagnostics-networkinsight>
<page-diagnostics-netflow> <page-diagnostics-netflow>
<name>WebCfg - Diagnostics: Netflow configuration</name> <name>Diagnostics: Netflow configuration</name>
<description>Allows access to the Netflow configuration</description>
<patterns> <patterns>
<pattern>ui/diagnostics/netflow/*</pattern> <pattern>ui/diagnostics/netflow/*</pattern>
<pattern>api/diagnostics/netflow/*</pattern> <pattern>api/diagnostics/netflow/*</pattern>
......
<acl> <acl>
<!-- unique acl key, must be globally unique for all acl's -->
<page-services-ids> <page-services-ids>
<name>WebCfg - Services: Intrusion Detection page</name> <name>Services: Intrusion Detection</name>
<description>Allow access to the 'Services: Intrusion Detection' page.</description>
<patterns> <patterns>
<pattern>ui/ids/*</pattern> <pattern>ui/ids/*</pattern>
<pattern>api/ids/*</pattern> <pattern>api/ids/*</pattern>
......
<acl>
<page-services-igmpproxy>
<name>Services: IGMP Proxy</name>
<patterns>
<pattern>services_igmpproxy.php*</pattern>
</patterns>
</page-services-igmpproxy>
<page-services-igmpproxy-edit>
<name>Services: IGMP Proxy: Edit</name>
<patterns>
<pattern>services_igmpproxy_edit.php*</pattern>
</patterns>
</page-services-igmpproxy-edit>
</acl>
<menu>
<Services>
<IGMPProxy VisibleName="IGMP Proxy" url="/services_igmpproxy.php" cssClass="fa fa-map-signs fa-fw">
<Edit url="/services_igmpproxy_edit.php" visibility="hidden"/>
</IGMPProxy>
</Services>
</menu>
<acl>
<page-services-ntpd>
<name>Services: NTP</name>
<patterns>
<pattern>services_ntpd.php*</pattern>
</patterns>
</page-services-ntpd>
<page-services-ntp-gps>
<name>Status: NTP GPS</name>
<patterns>
<pattern>status_ntpd_gps.php*</pattern>
</patterns>
</page-services-ntp-gps>
<page-status-ntp>
<name>Status: NTP</name>
<patterns>
<pattern>status_ntpd.php*</pattern>
</patterns>
</page-status-ntp>
<page-services-ntp-pps>
<name>Status: NTP PPS</name>
<patterns>
<pattern>status_ntpd_pps.php*</pattern>
</patterns>
</page-services-ntp-pps>
<page-status-systemlogs-ntpd>
<name>Status: System logs: NTP</name>
<patterns>
<pattern>diag_logs_ntpd.php*</pattern>
</patterns>
</page-status-systemlogs-ntpd>
</acl>
<menu>
<Services>
<NTP VisibleName="Network Time" cssClass="fa fa-clock-o fa-fw">
<General order="10" url="/services_ntpd.php"/>
<GPS order="20" url="/services_ntpd_gps.php"/>
<PPS order="30" url="/services_ntpd_pps.php"/>
<Status order="40" url="/status_ntpd.php"/>
<Log order="50" VisibleName="Log File" url="/diag_logs_ntpd.php"/>
</NTP>
</Services>
</menu>
<acl> <acl>
<!-- unique acl key, must be globally unique for all acl's -->
<page-services-proxy> <page-services-proxy>
<name>WebCfg - Services: Proxy page</name> <name>Services: Proxy</name>
<description>Allow access to the 'Services: Proxy' page.</description>
<patterns> <patterns>
<pattern>ui/proxy/*</pattern> <pattern>ui/proxy/*</pattern>
<pattern>api/proxy/*</pattern> <pattern>api/proxy/*</pattern>
......
<acl> <acl>
<page-services-loadbalancer-monitor-edit> <page-services-loadbalancer-monitor-edit>
<name>WebCfg - Services: Load Balancer: Monitor: Edit page</name> <name>Services: Load Balancer: Monitor: Edit</name>
<description>Allow access to the 'Services: Load Balancer: Monitor: Edit' page.</description>
<patterns> <patterns>
<pattern>load_balancer_monitor_edit.php*</pattern> <pattern>load_balancer_monitor_edit.php*</pattern>
</patterns> </patterns>
</page-services-loadbalancer-monitor-edit> </page-services-loadbalancer-monitor-edit>
<page-services-loadbalancer-monitor> <page-services-loadbalancer-monitor>
<name>WebCfg - Services: Load Balancer: Monitors page</name> <name>Services: Load Balancer: Monitors</name>
<description>Allow access to the 'Services: Load Balancer: Monitors' page.</description>
<patterns> <patterns>
<pattern>load_balancer_monitor.php*</pattern> <pattern>load_balancer_monitor.php*</pattern>
</patterns> </patterns>
</page-services-loadbalancer-monitor> </page-services-loadbalancer-monitor>
<page-services-loadbalancer-setting> <page-services-loadbalancer-setting>
<name>WebCfg - Services: Load Balancer: setting page</name> <name>Services: Load Balancer: setting</name>
<description>Allow access to the 'Settings: Load Balancer: Settings' page.</description>
<patterns> <patterns>
<pattern>load_balancer_setting.php*</pattern> <pattern>load_balancer_setting.php*</pattern>
</patterns> </patterns>
</page-services-loadbalancer-setting> </page-services-loadbalancer-setting>
<page-services-loadbalancer-virtualservers> <page-services-loadbalancer-virtualservers>
<name>WebCfg - Services: Load Balancer: Virtual Servers page</name> <name>Services: Load Balancer: Virtual Servers</name>
<description>Allow access to the 'Services: Load Balancer: Virtual Servers' page.</description>
<patterns> <patterns>
<pattern>load_balancer_virtual_server.php*</pattern> <pattern>load_balancer_virtual_server.php*</pattern>
</patterns> </patterns>
</page-services-loadbalancer-virtualservers> </page-services-loadbalancer-virtualservers>
<page-status-loadbalancer-pool> <page-status-loadbalancer-pool>
<name>WebCfg - Status: Load Balancer: Pool page</name> <name>Status: Load Balancer: Pool</name>
<description>Allow access to the 'Status: Load Balancer: Pool' page.</description>
<patterns> <patterns>
<pattern>status_lb_pool.php*</pattern> <pattern>status_lb_pool.php*</pattern>
</patterns> </patterns>
</page-status-loadbalancer-pool> </page-status-loadbalancer-pool>
<page-status-loadbalancer-virtualserver> <page-status-loadbalancer-virtualserver>
<name>WebCfg - Status: Load Balancer: Virtual Server page</name> <name>Status: Load Balancer: Virtual Server</name>
<description>Allow access to the 'Status: Load Balancer: Virtual Server' page.</description>
<patterns> <patterns>
<pattern>status_lb_vs.php*</pattern> <pattern>status_lb_vs.php*</pattern>
</patterns> </patterns>
</page-status-loadbalancer-virtualserver> </page-status-loadbalancer-virtualserver>
<page-status-systemlogs-loadbalancer> <page-status-systemlogs-loadbalancer>
<name>WebCfg - Status: System logs: Load Balancer page</name> <name>Status: System logs: Load Balancer</name>
<description>Allow access to the 'Status: System logs: Load Balancer' page.</description>
<patterns> <patterns>
<pattern>diag_logs_relayd.php*</pattern> <pattern>diag_logs_relayd.php*</pattern>
</patterns> </patterns>
</page-status-systemlogs-loadbalancer> </page-status-systemlogs-loadbalancer>
<page-loadbalancer-pool> <page-loadbalancer-pool>
<name>WebCfg - Load Balancer: Pool page</name> <name>Load Balancer: Pool</name>
<description>Allow access to the 'Load Balancer: Pool' page.</description>
<patterns> <patterns>
<pattern>load_balancer_pool.php*</pattern> <pattern>load_balancer_pool.php*</pattern>
</patterns> </patterns>
</page-loadbalancer-pool> </page-loadbalancer-pool>
<page-loadbalancer-pool-edit> <page-loadbalancer-pool-edit>
<name>WebCfg - Load Balancer: Pool: Edit page</name> <name>Load Balancer: Pool: Edit</name>
<description>Allow access to the 'Load Balancer: Pool: Edit' page.</description>
<patterns> <patterns>
<pattern>load_balancer_pool_edit.php*</pattern> <pattern>load_balancer_pool_edit.php*</pattern>
</patterns> </patterns>
</page-loadbalancer-pool-edit> </page-loadbalancer-pool-edit>
<page-loadbalancer-virtualserver-edit> <page-loadbalancer-virtualserver-edit>
<name>WebCfg - Load Balancer: Virtual Server: Edit page</name> <name>Load Balancer: Virtual Server: Edit</name>
<description>Allow access to the 'Load Balancer: Virtual Server: Edit' page.</description>
<patterns> <patterns>
<pattern>load_balancer_virtual_server_edit.php*</pattern> <pattern>load_balancer_virtual_server_edit.php*</pattern>
</patterns> </patterns>
......
<acl>
<page-services-snmp>
<name>Services: SNMP</name>
<patterns>
<pattern>services_snmp.php*</pattern>
</patterns>
</page-services-snmp>
</acl>
<menu>
<Services>
<SNMP url="/services_snmp.php" cssClass="fa fa-database fa-fw"/>
</Services>
</menu>
<acl> <acl>
<!-- unique acl key, must be globally unique for all acl's -->
<page-firewall-trafficshaper> <page-firewall-trafficshaper>
<name>WebCfg - Firewall: Traffic Shaper page</name> <name>Firewall: Traffic Shaper</name>
<description>Allow access to the 'Firewall: Traffic Shaper' page.</description>
<patterns> <patterns>
<pattern>ui/trafficshaper/*</pattern> <pattern>ui/trafficshaper/*</pattern>
<pattern>api/trafficshaper/*</pattern> <pattern>api/trafficshaper/*</pattern>
......
<acl> <acl>
<page-service-upnp> <page-service-upnp>
<name>WebCfg - Service: Universal Plug and Play page</name> <name>Service: Universal Plug and Play</name>
<description>Allow access to the 'Service: Universal Plug and Play' page.</description>
<patterns> <patterns>
<pattern>services_upnp.php*</pattern> <pattern>services_upnp.php*</pattern>
</patterns> </patterns>
</page-service-upnp> </page-service-upnp>
<page-status-upnpstatus> <page-status-upnpstatus>
<name>WebCfg - Status: Universal Plug and Play page</name> <name>Status: Universal Plug and Play</name>
<description>Allow access to the 'Status: Universal Plug and Play' page.</description>
<patterns> <patterns>
<pattern>status_upnp.php*</pattern> <pattern>status_upnp.php*</pattern>
</patterns> </patterns>
......
<acl>
<page-services-wakeonlan>
<name>Services: Wake on LAN</name>
<patterns>
<pattern>services_wol.php*</pattern>
</patterns>
</page-services-wakeonlan>
<page-services-wakeonlan-edit>
<name>Services: Wake on LAN: Edit</name>
<patterns>
<pattern>services_wol_edit.php*</pattern>
</patterns>
</page-services-wakeonlan-edit>
</acl>
<menu>
<Services>
<WoL VisibleName="Wake on LAN" url="/services_wol.php" cssClass="fa fa-power-off fa-fw">
<WoLEdit url="/services_wol_edit.php*" visibility="hidden"/>
<Wol url="/services_wol.php*" visibility="hidden"/>
</WoL>
</Services>
</menu>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment