diff -Nur -x '*.orig' -x '*.rej' smeserver-freepbx-0.1/createlinks mezzanine_patched_smeserver-freepbx-0.1/createlinks --- smeserver-freepbx-0.1/createlinks 2008-11-20 13:10:39.000000000 +0100 +++ mezzanine_patched_smeserver-freepbx-0.1/createlinks 2008-11-20 12:57:03.000000000 +0100 @@ -32,7 +32,7 @@ my $event = 'freepbx-update'; templates2events("/etc/amportal.conf", qw(freepbx-update post-upgrade)); templates2events("/etc/httpd/conf/httpd.conf", qw(freepbx-update post-upgrade)); -templates2events("/etc/httpd/fpbx-conf/httpd.conf", qw(freepbx-update post-upgrade)); +templates2events("/etc/httpd/fpbx-conf/httpd.conf", qw(freepbx-update post-upgrade conf-userpanel)); templates2events("/etc/e-smith/sql/init/freepbx.sql", qw(freepbx-update post-upgrade)); event_link("freepbx-checkinstall", $event, "10"); @@ -43,6 +43,8 @@ safe_symlink("sigusr1", "root/etc/e-smith/events/$event/services2adjust/httpd-e-smith"); safe_symlink("sigusr1", "root/etc/e-smith/events/$event/services2adjust/httpd-fpbx"); +safe_symlink("sigusr1", "root/etc/e-smith/events/conf-userpanel/services2adjust/httpd-fpbx"); + # Create empty files safe_touch("root/etc/e-smith/events/logrotate/logfiles2timestamp/var/log/httpd/fpbx_access_log"); safe_touch("root/etc/e-smith/events/logrotate/logfiles2timestamp/var/log/httpd/fpbx_error_log"); diff -Nur -x '*.orig' -x '*.rej' smeserver-freepbx-0.1/root/etc/e-smith/db/configuration/defaults/freepbx/AdminUsers mezzanine_patched_smeserver-freepbx-0.1/root/etc/e-smith/db/configuration/defaults/freepbx/AdminUsers --- smeserver-freepbx-0.1/root/etc/e-smith/db/configuration/defaults/freepbx/AdminUsers 2008-09-20 02:04:50.000000000 +0200 +++ mezzanine_patched_smeserver-freepbx-0.1/root/etc/e-smith/db/configuration/defaults/freepbx/AdminUsers 1970-01-01 01:00:00.000000000 +0100 @@ -1 +0,0 @@ - diff -Nur -x '*.orig' -x '*.rej' smeserver-freepbx-0.1/root/etc/e-smith/db/configuration/defaults/freepbx/FopUsers mezzanine_patched_smeserver-freepbx-0.1/root/etc/e-smith/db/configuration/defaults/freepbx/FopUsers --- smeserver-freepbx-0.1/root/etc/e-smith/db/configuration/defaults/freepbx/FopUsers 2008-09-20 02:04:44.000000000 +0200 +++ mezzanine_patched_smeserver-freepbx-0.1/root/etc/e-smith/db/configuration/defaults/freepbx/FopUsers 1970-01-01 01:00:00.000000000 +0100 @@ -1 +0,0 @@ - diff -Nur -x '*.orig' -x '*.rej' smeserver-freepbx-0.1/root/etc/e-smith/templates/etc/httpd/fpbx-conf/httpd.conf/00functions mezzanine_patched_smeserver-freepbx-0.1/root/etc/e-smith/templates/etc/httpd/fpbx-conf/httpd.conf/00functions --- smeserver-freepbx-0.1/root/etc/e-smith/templates/etc/httpd/fpbx-conf/httpd.conf/00functions 1970-01-01 01:00:00.000000000 +0100 +++ mezzanine_patched_smeserver-freepbx-0.1/root/etc/e-smith/templates/etc/httpd/fpbx-conf/httpd.conf/00functions 2008-11-20 13:00:36.000000000 +0100 @@ -0,0 +1,28 @@ +{ + +use esmith::AccountsDB; + +sub getUsersList ($){ + my ($panelName) = @_; + my $a = esmith::AccountsDB->open_ro || die "Error opening accounts db"; + my @users = $a->users(); + my @groups = $a->groups(); + my @fpbxUsers = (); + foreach my $user (@users){ + my $panels = $user->prop('AdminPanels') || ''; + push(@fpbxUsers,$user->key) if ($panels =~ /^(.*,)?$panelName(,.*)?$/); + } + foreach my $group (@groups){ + $panels = $group->prop('AdminPanels') || ''; + if ($panels =~ /^(.*,)?$panelName(,.*)?$/){ + my @members = split(/,/,($group->prop('Members') || '')); + push(@fpbxUsers,@members); + } + } + + my %seen = (); + my $u = join (' ', grep { ! $seen{ $_ }++ } @fpbxUsers); + return $u; +} +} + diff -Nur -x '*.orig' -x '*.rej' smeserver-freepbx-0.1/root/etc/e-smith/templates/etc/httpd/fpbx-conf/httpd.conf/90FreePBX30Admin mezzanine_patched_smeserver-freepbx-0.1/root/etc/e-smith/templates/etc/httpd/fpbx-conf/httpd.conf/90FreePBX30Admin --- smeserver-freepbx-0.1/root/etc/e-smith/templates/etc/httpd/fpbx-conf/httpd.conf/90FreePBX30Admin 2008-09-02 11:04:36.000000000 +0200 +++ mezzanine_patched_smeserver-freepbx-0.1/root/etc/e-smith/templates/etc/httpd/fpbx-conf/httpd.conf/90FreePBX30Admin 2008-11-20 12:55:21.000000000 +0100 @@ -9,7 +9,7 @@ php_admin_flag magic_quotes_gpc Off AuthType Basic TKTAuthLoginURL /server-common/cgi-bin/login - require user admin {my $users = ${'freepbx'}{'AdminUsers'} || ''; $users =~ s/[,;]/\ /g; return $users;} + require user admin {getUsersList('freepbx');} SetEnv IMGHDR_SRC "/server-common/server-manager.jpg" Satisfy all diff -Nur -x '*.orig' -x '*.rej' smeserver-freepbx-0.1/root/etc/e-smith/templates/etc/httpd/fpbx-conf/httpd.conf/90FreePBX40Panel mezzanine_patched_smeserver-freepbx-0.1/root/etc/e-smith/templates/etc/httpd/fpbx-conf/httpd.conf/90FreePBX40Panel --- smeserver-freepbx-0.1/root/etc/e-smith/templates/etc/httpd/fpbx-conf/httpd.conf/90FreePBX40Panel 2008-08-25 23:45:32.000000000 +0200 +++ mezzanine_patched_smeserver-freepbx-0.1/root/etc/e-smith/templates/etc/httpd/fpbx-conf/httpd.conf/90FreePBX40Panel 2008-11-20 12:55:47.000000000 +0100 @@ -2,7 +2,7 @@ AuthType Basic TKTAuthLoginURL /server-common/cgi-bin/login - require user admin {my $users = ${'freepbx'}{'FopUsers'} || ''; $users =~ s/[,;]/\ /g; return $users;} + require user admin {getUsersList('fop');} SetEnv IMGHDR_SRC "/server-common/server-manager.jpg" Satisfy all