commit
53b0e0e7d9
19 changed files with 341 additions and 0 deletions
@ -0,0 +1,8 @@ |
||||
#!/usr/bin/perl -w |
||||
|
||||
use esmith::Build::CreateLinks qw(:all); |
||||
|
||||
foreach my $event (qw/webapps-update ipasserelle-update bootstrap-ldap-save/){ |
||||
event_link("ipasserelle-webapps-init-domains", "$event", "55"); |
||||
} |
||||
|
@ -0,0 +1,69 @@ |
||||
Summary: iPasserelle web applications |
||||
%define name ipasserelle-webapps |
||||
Name: %{name} |
||||
%define version 0.2.0 |
||||
%define release 1 |
||||
Version: %{version} |
||||
Release: %{release}%{?dist} |
||||
License: GPL |
||||
URL: http://www.ipasserelle.com/ |
||||
Group: SMEserver/addon |
||||
Source: %{name}-%{version}.tar.gz |
||||
|
||||
BuildArch: noarch |
||||
BuildRoot: /var/tmp/%{name}-%{version} |
||||
|
||||
Requires: ipasserelle-base >= 0.1-14 |
||||
Requires: smeserver-openupload |
||||
Requires: smeserver-tt-rss |
||||
Requires: smeserver-ajaxplorer |
||||
Requires: smeserver-dokuwiki |
||||
Requires: dokuwiki-plugins |
||||
|
||||
BuildRequires: e-smith-devtools |
||||
|
||||
%description |
||||
Integrate commonly used web applications |
||||
|
||||
%changelog |
||||
* Thu Oct 17 2012 Daniel Berteaud <daniel@firewall-services.com> 0.2.0-1 |
||||
- Import in GIT |
||||
|
||||
* Wed Nov 24 2011 Daniel Berteaud <daniel@firewall-services.com> 0.1-3 |
||||
- Set ajaxplorer LogoutUrl to LL::NG portal address |
||||
- Use more friendly names in LL::NG portal |
||||
|
||||
* Tue Oct 11 2011 Daniel Berteaud <daniel@firewall-services.com> 0.1-2 |
||||
- Fix dokuwiki domain in LL::NG menu |
||||
|
||||
* Wed Jun 28 2011 Daniel Berteaud <daniel@firewall-services.com> 0.1-1 |
||||
- initial release |
||||
|
||||
|
||||
%prep |
||||
%setup |
||||
|
||||
%build |
||||
perl createlinks |
||||
|
||||
%install |
||||
rm -rf $RPM_BUILD_ROOT |
||||
(cd root ; find . -depth -print | cpio -dump $RPM_BUILD_ROOT) |
||||
rm -f %{name}-%{version}-filelist |
||||
/sbin/e-smith/genfilelist $RPM_BUILD_ROOT > %{name}-%{version}-filelist |
||||
|
||||
%clean |
||||
cd .. |
||||
rm -rf %{name}-%{version} |
||||
|
||||
%pre |
||||
|
||||
%preun |
||||
|
||||
%post |
||||
|
||||
%postun |
||||
|
||||
%files -f %{name}-%{version}-filelist |
||||
%defattr(-,root,root) |
||||
|
@ -0,0 +1 @@ |
||||
disabled |
@ -0,0 +1 @@ |
||||
LemonLDAP |
@ -0,0 +1 @@ |
||||
fr |
@ -0,0 +1 @@ |
||||
iPasserelle |
@ -0,0 +1 @@ |
||||
Firewall-Services: la sécurité des réseaux |
@ -0,0 +1 @@ |
||||
disabled |
@ -0,0 +1 @@ |
||||
LemonLDAP |
@ -0,0 +1 @@ |
||||
disabled |
@ -0,0 +1 @@ |
||||
LemonLDAP |
@ -0,0 +1 @@ |
||||
disabled |
@ -0,0 +1,11 @@ |
||||
{ |
||||
my $rec = $DB->get('ajaxplorer') |
||||
|| $DB->new_record('ajaxplorer', {type => 'webapp'}); |
||||
|
||||
my $url = $rec->prop('LogoutUrl'); |
||||
|
||||
if (not $url){ |
||||
$url = 'https://auth.' . $DomainName; |
||||
$rec->set_prop('LogoutUrl', $url); |
||||
} |
||||
} |
@ -0,0 +1,110 @@ |
||||
#!/usr/bin/perl -w |
||||
#---------------------------------------------------------------------- |
||||
# copyright (C) 2010-2011 Firewall-Services |
||||
# daniel@firewall-services.com |
||||
# |
||||
# This program is free software; you can redistribute it and/or modify |
||||
# it under the terms of the GNU General Public License as published by |
||||
# the Free Software Foundation; either version 2 of the License, or |
||||
# (at your option) any later version. |
||||
# |
||||
# This program is distributed in the hope that it will be useful, |
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
# GNU General Public License for more details. |
||||
# |
||||
# You should have received a copy of the GNU General Public License |
||||
# along with this program; if not, write to the Free Software |
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
||||
# |
||||
#---------------------------------------------------------------------- |
||||
|
||||
use strict; |
||||
use warnings; |
||||
use esmith::DomainsDB; |
||||
use esmith::ConfigDB; |
||||
|
||||
my $d = esmith::DomainsDB->open or die "Couldn't open DomainsDB\n"; |
||||
my $c = esmith::ConfigDB->open_ro() or die "Couldn't open ConfigDB\n"; |
||||
|
||||
my $domain = $c->get('DomainName')->value; |
||||
my $vhost; |
||||
|
||||
$vhost = $d->get("upload.$domain"); |
||||
|
||||
if (!$vhost){ |
||||
$d->new_record("upload.$domain",{ |
||||
type => 'domain', |
||||
Content => 'Primary', |
||||
Description => "OpenUpload", |
||||
Nameservers => 'internet', |
||||
TemplatePath => 'WebAppVirtualHost', |
||||
DocumentRoot => '/usr/share/openupload/www', |
||||
Removable => 'yes', |
||||
LemonLDAP => 'enabled' |
||||
}); |
||||
|
||||
unless ( system("/sbin/e-smith/signal-event", "domain-create", "upload.$domain") == 0 ){ |
||||
die "Failed to create domain upload.$domain\n"; |
||||
} |
||||
} |
||||
|
||||
$vhost = $d->get("rss.$domain"); |
||||
|
||||
if (!$vhost){ |
||||
$d->new_record("rss.$domain",{ |
||||
type => 'domain', |
||||
Content => 'Primary', |
||||
Description => "Tiny Tiny RSS", |
||||
Nameservers => 'internet', |
||||
TemplatePath => 'WebAppVirtualHost', |
||||
DocumentRoot => '/usr/share/tt-rss', |
||||
Removable => 'yes', |
||||
LemonLDAP => 'enabled' |
||||
}); |
||||
|
||||
unless ( system("/sbin/e-smith/signal-event", "domain-create", "rss.$domain") == 0 ){ |
||||
die "Failed to create domain rss.$domain\n"; |
||||
} |
||||
} |
||||
|
||||
$vhost = $d->get("echange.$domain"); |
||||
|
||||
if (!$vhost){ |
||||
$d->new_record("echange.$domain",{ |
||||
type => 'domain', |
||||
Content => 'Primary', |
||||
Description => "Ajaxplorer", |
||||
Nameservers => 'internet', |
||||
TemplatePath => 'WebAppVirtualHost', |
||||
DocumentRoot => '/usr/share/ajaxplorer', |
||||
Removable => 'yes', |
||||
LemonLDAP => 'enabled' |
||||
}); |
||||
|
||||
unless ( system("/sbin/e-smith/signal-event", "domain-create", "echange.$domain") == 0 ){ |
||||
die "Failed to create domain echange.$domain\n"; |
||||
} |
||||
} |
||||
|
||||
|
||||
$vhost = $d->get("wiki.$domain"); |
||||
|
||||
if (!$vhost){ |
||||
$d->new_record("wiki.$domain",{ |
||||
type => 'domain', |
||||
Content => 'Primary', |
||||
Description => "Dokuwiki", |
||||
Nameservers => 'internet', |
||||
TemplatePath => 'WebAppVirtualHost', |
||||
DocumentRoot => '/usr/share/dokuwiki', |
||||
Removable => 'yes', |
||||
LemonLDAP => 'enabled' |
||||
}); |
||||
|
||||
unless ( system("/sbin/e-smith/signal-event", "domain-create", "wiki.$domain") == 0 ){ |
||||
die "Failed to create domain wiki.$domain\n"; |
||||
} |
||||
} |
||||
|
||||
|
@ -0,0 +1,11 @@ |
||||
|
||||
# iPasserelle overrides |
||||
|
||||
$CONFIG['WWW_SERVER'] = 'http://upload.{"$DomainName";}'; |
||||
$CONFIG['WWW_ROOT'] = '/'; |
||||
|
||||
$CONFIG['site']['title'] = 'Hébergement de fichiers'; |
||||
$CONFIG['site']['footer'] = '<a href="http://www.ipasserelle.com">iPasserelle</a> © une solution <a href="http://www.firewall-services.com">Firewall-Services</a>'; |
||||
|
||||
$CONFIG['defaultlang'] = 'fr'; |
||||
|
@ -0,0 +1,32 @@ |
||||
{ |
||||
|
||||
$conf->{'exportedHeaders'}->{"upload.$domain"} = { |
||||
'Auth-User' => '$uid', |
||||
} unless ($conf->{'exportedHeaders'}->{"upload.$domain"}); |
||||
|
||||
$conf->{'locationRules'}->{"upload.$domain"} = { |
||||
'(?#21login)(a|action)=login' => "logout_app https://upload.$domain/", |
||||
'(?#13unprotect_captcha)^/plugins/captcha\\.php' => 'unprotect', |
||||
'(?#14unprotect_index)^/index\\.php$' => 'unprotect', |
||||
'(?#12unprotect_templates)^/templates/' => 'unprotect', |
||||
'(?#20logout)(a|action)=logout' => "logout_app https://auth.$domain", |
||||
'(?#10unprotect_dl)(a|action)=[dgr]' => 'unprotect', |
||||
'(?#01deny_double_action)(a|action)=.*(a|action)=.*' => 'deny', |
||||
'default' => '$groups =~ /\\b(equipe|admins)\\b/' |
||||
} unless ($conf->{'locationRules'}->{"upload.$domain"}); |
||||
|
||||
$conf->{'applicationList'}->{'010apps'}->{'openupload'} = { |
||||
'options' => { |
||||
'logo' => 'folder.png', |
||||
'name' => 'Fichiers temporaires', |
||||
'description' => 'Service d\'hébergement de fichiers temporaires', |
||||
'uri' => "https://upload.$domain", |
||||
'display' => 'auto' |
||||
}, |
||||
'type' => 'application' |
||||
} unless ($conf->{'applicationList'}->{'010apps'}->{'openupload'}); |
||||
|
||||
|
||||
$OUT = ''; |
||||
|
||||
} |
@ -0,0 +1,27 @@ |
||||
{ |
||||
|
||||
$conf->{'exportedHeaders'}->{"echange.$domain"} = { |
||||
'Auth-User' => '$uid' |
||||
} unless ($conf->{'exportedHeaders'}->{"echange.$domain"}); |
||||
|
||||
|
||||
# TODO: $localAcccess en fonction de access == (public|private) |
||||
$conf->{'locationRules'}->{"echange.$domain"} = { |
||||
'default' => 'accept' |
||||
} unless ($conf->{'locationRules'}->{"echange.$domain"}); |
||||
|
||||
|
||||
$conf->{'applicationList'}->{'010apps'}->{'ajaxplorer'} = { |
||||
'options' => { |
||||
'logo' => 'folder.png', |
||||
'name' => 'Gestion des fichiers', |
||||
'description' => 'Gestionnaire de fichiers web Ajaxplorer', |
||||
'uri' => "https://echange.$domain/", |
||||
'display' => 'auto' |
||||
}, |
||||
'type' => 'application' |
||||
} unless ($conf->{'applicationList'}->{'010apps'}->{'ajaxplorer'}); |
||||
|
||||
$OUT = ''; |
||||
|
||||
} |
@ -0,0 +1,30 @@ |
||||
{ |
||||
|
||||
$conf->{'exportedHeaders'}->{"rss.$domain"} = { |
||||
'User-Name' => '$cn', |
||||
'Auth-User' => '$uid', |
||||
'User-Mail' => '$mail' |
||||
} unless ($conf->{'exportedHeaders'}->{"rss.$domain"}); |
||||
|
||||
|
||||
$conf->{'locationRules'}->{"rss.$domain"} = { |
||||
'(?#10logout)^/logout\\.php' => 'logout_app', |
||||
'default' => '$groups =~ /\\b(equipe|admins)\\b/' |
||||
} unless ($conf->{'locationRules'}->{"rss.$domain"}); |
||||
|
||||
|
||||
$conf->{'applicationList'}->{'010apps'}->{'ttrss'} = { |
||||
'options' => { |
||||
'logo' => 'bookmark.png', |
||||
'name' => 'Lecteur de flux RSS', |
||||
'description' => 'Tiny Tiny RSS', |
||||
'uri' => "https://rss.$domain", |
||||
'display' => 'auto' |
||||
}, |
||||
'type' => 'application' |
||||
} unless ($conf->{'applicationList'}->{'010apps'}->{'ttrss'}); |
||||
|
||||
|
||||
$OUT = ''; |
||||
|
||||
} |
@ -0,0 +1,33 @@ |
||||
{ |
||||
|
||||
$conf->{'exportedHeaders'}->{"wiki.$domain"} = { |
||||
'User-Name' => '$cn', |
||||
'Auth-User' => '$uid', |
||||
'User-Mail' => '$mail', |
||||
'User-Groups' => '$groups', |
||||
} unless ($conf->{'exportedHeaders'}->{"wiki.$domain"}); |
||||
|
||||
|
||||
$conf->{'locationRules'}->{"wiki.$domain"} = { |
||||
'(?#02login)^/doku.php(/start)?\\?(.*)do=login' => '$groups =~ /\\b(equipe|admins)\\b/', |
||||
'default' => 'unprotect', |
||||
'(?#01data)^/data(.*)' => 'deny', |
||||
'(?#10logout)^/doku.php(/start)?\\?(.*)do=logout' => 'logout_app' |
||||
} unless ($conf->{'locationRules'}->{"wiki.$domain"}); |
||||
|
||||
|
||||
$conf->{'applicationList'}->{'010apps'}->{'dokuwiki'} = { |
||||
'options' => { |
||||
'logo' => 'help.png', |
||||
'name' => 'Wiki', |
||||
'description' => 'Site collaboratif', |
||||
'uri' => "https://wiki.$domain", |
||||
'display' => 'auto' |
||||
}, |
||||
'type' => 'application' |
||||
} unless ($conf->{'applicationList'}->{'010apps'}->{'dokuwiki'}); |
||||
|
||||
|
||||
$OUT = ''; |
||||
|
||||
} |
Loading…
Reference in new issue