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