Update upstream source from tag 'upstream/1.0.7'
Update to upstream version '1.0.7'
with Debian dir e4e789852b
This commit is contained in:
commit
2f8c0e05b5
45
.Jenkinsfile
Normal file
45
.Jenkinsfile
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
pipeline {
|
||||||
|
agent { label 'docker' }
|
||||||
|
stages {
|
||||||
|
stage('Build Debian package') {
|
||||||
|
agent {
|
||||||
|
docker {
|
||||||
|
image 'evolix/gbp:bullseye'
|
||||||
|
args '-u root --privileged'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
when {
|
||||||
|
branch 'debian'
|
||||||
|
}
|
||||||
|
steps {
|
||||||
|
script {
|
||||||
|
sh 'mk-build-deps --install --remove debian/control'
|
||||||
|
sh 'rm -rf {source,*.gz,*.bz2,*.xz,*.deb,*.dsc,*.changes,*.buildinfo,lintian.txt}'
|
||||||
|
sh "gbp clone --debian-branch=$GIT_BRANCH $GIT_URL source"
|
||||||
|
sh 'cd source && git checkout $GIT_BRANCH && gbp buildpackage -us -uc'
|
||||||
|
}
|
||||||
|
archiveArtifacts allowEmptyArchive: true, artifacts: '*.gz,*.bz2,*.xz,*.deb,*.dsc,*.changes,*.buildinfo,lintian.txt'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
stage('Upload Debian package') {
|
||||||
|
when {
|
||||||
|
branch 'debian'
|
||||||
|
}
|
||||||
|
steps {
|
||||||
|
script {
|
||||||
|
sh 'echo Dummy line to remove once something actually happens.'
|
||||||
|
/* No crendentials yet.
|
||||||
|
sh 'rsync -avP evoadmin-mail* droneci@pub.evolix.net:/home/droneci/evoadmin-mail/'
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
post {
|
||||||
|
// Clean after build
|
||||||
|
always {
|
||||||
|
cleanWs()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
22
.drone.yml
22
.drone.yml
|
@ -2,16 +2,18 @@ kind: pipeline
|
||||||
name: default
|
name: default
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
|
- name: fetch
|
||||||
|
image: alpine/git
|
||||||
|
commands:
|
||||||
|
- git fetch --tags
|
||||||
|
|
||||||
- name: build debian package
|
- name: build debian package
|
||||||
image: evolix/gbp:latest
|
image: evolix/gbp:bullseye
|
||||||
branches:
|
branches:
|
||||||
- debian
|
- debian
|
||||||
commands:
|
commands:
|
||||||
- mk-build-deps --install --remove debian/control
|
- mk-build-deps --install --remove debian/control
|
||||||
- gbp buildpackage
|
- gbp buildpackage -us -uc
|
||||||
volumes:
|
|
||||||
- name: tmp
|
|
||||||
path: /tmp
|
|
||||||
when:
|
when:
|
||||||
branch:
|
branch:
|
||||||
- debian
|
- debian
|
||||||
|
@ -25,16 +27,8 @@ steps:
|
||||||
key:
|
key:
|
||||||
from_secret: drone_private_key
|
from_secret: drone_private_key
|
||||||
target: /home/droneci/evoadmin-mail/
|
target: /home/droneci/evoadmin-mail/
|
||||||
source: /tmp/evoadmin-mail/
|
source: ../evoadmin-mail*
|
||||||
delete: true
|
delete: true
|
||||||
volumes:
|
|
||||||
- name: tmp
|
|
||||||
path: /tmp
|
|
||||||
when:
|
when:
|
||||||
branch:
|
branch:
|
||||||
- debian
|
- debian
|
||||||
|
|
||||||
volumes:
|
|
||||||
- name: tmp
|
|
||||||
host:
|
|
||||||
path: /tmp
|
|
||||||
|
|
2
Vagrantfile
vendored
2
Vagrantfile
vendored
|
@ -1,8 +1,6 @@
|
||||||
# -*- mode: ruby -*-
|
# -*- mode: ruby -*-
|
||||||
# vi: set ft=ruby :
|
# vi: set ft=ruby :
|
||||||
|
|
||||||
Vagrant::DEFAULT_SERVER_URL.replace('https://vagrantcloud.com')
|
|
||||||
|
|
||||||
# Load ~/.VagrantFile if exist, permit local config provider
|
# Load ~/.VagrantFile if exist, permit local config provider
|
||||||
vagrantfile = File.join("#{Dir.home}", '.VagrantFile')
|
vagrantfile = File.join("#{Dir.home}", '.VagrantFile')
|
||||||
load File.expand_path(vagrantfile) if File.exists?(vagrantfile)
|
load File.expand_path(vagrantfile) if File.exists?(vagrantfile)
|
||||||
|
|
|
@ -23,3 +23,9 @@ superadmin[] = "evoadmin"
|
||||||
|
|
||||||
[quota]
|
[quota]
|
||||||
path = "/var/lib/evoadmin-mail/quota/"
|
path = "/var/lib/evoadmin-mail/quota/"
|
||||||
|
|
||||||
|
[evoexec]
|
||||||
|
sudobin = "/usr/bin/sudo"
|
||||||
|
sudoscript = "/usr/share/scripts/evoadmin.sh"
|
||||||
|
sudopass = "XXX"
|
||||||
|
|
||||||
|
|
|
@ -47,4 +47,9 @@ class Config {
|
||||||
public static function getQuotaPath() {
|
public static function getQuotaPath() {
|
||||||
return self::$quota_path;
|
return self::$quota_path;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static function getEvoexec() {
|
||||||
|
return self::$evoexec['sudobin'].' '.self::$evoexec['sudoscript'].' -p '.self::$evoexec['sudopass'].' ';
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -149,7 +149,7 @@ class FormController {
|
||||||
private static function delAccount() {
|
private static function delAccount() {
|
||||||
PageController::$alerts[] = array('type' => 1, 'message' => 'Suppression du compte '.self::$form['uid'].'...');
|
PageController::$alerts[] = array('type' => 1, 'message' => 'Suppression du compte '.self::$form['uid'].'...');
|
||||||
try {
|
try {
|
||||||
self::$domain->delAccount(self::$form['uid']);
|
self::$domain->delAccount(self::$form['uid'],self::$form['cn']);
|
||||||
PageController::$alerts[] = array('type' => 0, 'message' => "Suppression effectué.");
|
PageController::$alerts[] = array('type' => 0, 'message' => "Suppression effectué.");
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
PageController::$alerts[] = array('type' => 2, 'message' => $e->getMessage());
|
PageController::$alerts[] = array('type' => 2, 'message' => $e->getMessage());
|
||||||
|
|
|
@ -118,7 +118,7 @@ class LdapDomain extends LdapServer {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function delAccount($uid) {
|
public function delAccount($uid,$domain) {
|
||||||
$dn = LdapAccount::getBaseDN($this, $uid);
|
$dn = LdapAccount::getBaseDN($this, $uid);
|
||||||
if ($sr = @ldap_search($this->conn, $dn, LdapAccount::getClassFilter())) {
|
if ($sr = @ldap_search($this->conn, $dn, LdapAccount::getClassFilter())) {
|
||||||
// Delete account
|
// Delete account
|
||||||
|
@ -126,6 +126,7 @@ class LdapDomain extends LdapServer {
|
||||||
$error = ldap_error($this->conn);
|
$error = ldap_error($this->conn);
|
||||||
throw new Exception("Erreur dans la suppression du compte $uid : $error");
|
throw new Exception("Erreur dans la suppression du compte $uid : $error");
|
||||||
}
|
}
|
||||||
|
exec( Config::getEvoexec() . " -d -u $uid -D $domain");
|
||||||
} else {
|
} else {
|
||||||
throw new Exception("Ce compte n'existe pas !");
|
throw new Exception("Ce compte n'existe pas !");
|
||||||
}
|
}
|
||||||
|
|
|
@ -128,7 +128,7 @@ class LdapServer {
|
||||||
}
|
}
|
||||||
// Delete accounts
|
// Delete accounts
|
||||||
foreach($domain->getAccounts() as $account) {
|
foreach($domain->getAccounts() as $account) {
|
||||||
$domain->delAccount($account->getUid());
|
$domain->delAccount($account->getUid(),$name);
|
||||||
}
|
}
|
||||||
// Delete domain
|
// Delete domain
|
||||||
$dn = LdapDomain::getBaseDN($this, $name);
|
$dn = LdapDomain::getBaseDN($this, $name);
|
||||||
|
|
|
@ -6,41 +6,25 @@
|
||||||
PASSWORD='xxx'
|
PASSWORD='xxx'
|
||||||
DATE=$(date +"%d-%m-%Y")
|
DATE=$(date +"%d-%m-%Y")
|
||||||
|
|
||||||
while getopts "p:qu:g:sadv" option ; do
|
while getopts "p:u:D:d" option ; do
|
||||||
case $option in
|
case $option in
|
||||||
|
|
||||||
p)
|
p)
|
||||||
READPASS=$OPTARG
|
READPASS=$OPTARG
|
||||||
;;
|
;;
|
||||||
|
|
||||||
q)
|
|
||||||
QUOTA='on'
|
|
||||||
;;
|
|
||||||
|
|
||||||
u)
|
u)
|
||||||
USERIS=$OPTARG
|
USERIS=$OPTARG
|
||||||
;;
|
;;
|
||||||
|
|
||||||
g)
|
D)
|
||||||
GROUPIS=$OPTARG
|
DOMAINIS=$OPTARG
|
||||||
;;
|
;;
|
||||||
|
|
||||||
s)
|
|
||||||
SIZE='on'
|
|
||||||
;;
|
|
||||||
|
|
||||||
a)
|
|
||||||
ADD='on'
|
|
||||||
;;
|
|
||||||
|
|
||||||
d)
|
d)
|
||||||
DEL='on'
|
DEL='on'
|
||||||
;;
|
;;
|
||||||
|
|
||||||
v)
|
|
||||||
VIRTUAL='on'
|
|
||||||
;;
|
|
||||||
|
|
||||||
*)
|
*)
|
||||||
echo "script error"
|
echo "script error"
|
||||||
exit 1
|
exit 1
|
||||||
|
@ -54,77 +38,14 @@ if [ "$PASSWORD" != "$READPASS" ]; then
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Mode virtuel : permet pour l'instant la création du répertoire d'un domaine
|
# mv pseudo-homeDir to directory.<date> for deleted users
|
||||||
# ex : evoadmin.sh -a -v -g example.com
|
|
||||||
if [ "$VIRTUAL" = "on" ]; then
|
|
||||||
if [ "$ADD" == "on" ]; then
|
|
||||||
if [[ -z $USERIS && -n $GROUPIS && ! -e "/home/vmail/$GROUPIS" ]]; then
|
|
||||||
DOMAIN_DIR="/home/vmail/$GROUPIS"
|
|
||||||
mkdir $DOMAIN_DIR
|
|
||||||
# nécessite d'avoir un NSS/LDAP fonctionnel
|
|
||||||
chown root:$GROUPIS $DOMAIN_DIR
|
|
||||||
chmod 770 $DOMAIN_DIR
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$DEL" == "on" ]; then
|
|
||||||
if [[ -n $USERIS && -n $GROUPIS && -e "/home/vmail/$GROUPIS" && -e "/home/vmail/$GROUPIS/$USERIS" ]]; then
|
|
||||||
mv /home/vmail/$GROUPIS/$USERIS /home/vmail/$GROUPIS/$USERIS.$DATE
|
|
||||||
chown -R root:root /home/vmail/$GROUPIS/$USERIS.$DATE
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$QUOTA" == "on" ]; then
|
|
||||||
if [ -n "$USERIS" ]; then
|
|
||||||
NOW=`LANG=C quota $USERIS | tr -d "\n" | sed -e "s/^.*\/dev\///" | tr -s " " | cut -d" " -f2`
|
|
||||||
LIMIT=`LANG=C quota $USERIS | tr -d "\n" | sed -e "s/^.*\/dev\///" | tr -s " " | cut -d" " -f3`
|
|
||||||
echo "$NOW/$LIMIT"
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -n "$GROUPIS" ]; then
|
|
||||||
# no quota
|
|
||||||
if LANG=C quota -g $GROUPIS | grep none > /dev/null; then
|
|
||||||
echo "0/0"
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
NOW=`LANG=C quota -g $GROUPIS | tr -d "\n" | sed -e "s/^.*\/dev\///" | tr -s " " | cut -d" " -f2`
|
|
||||||
LIMIT=`LANG=C quota -g $GROUPIS | tr -d "\n" | sed -e "s/^.*\/dev\///" | tr -s " " | cut -d" " -f3`
|
|
||||||
echo "$NOW/$LIMIT"
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$SIZE" == "on" ]; then
|
|
||||||
NOW=`df | grep "/home" | tr -s " " | cut -d " " -f3`
|
|
||||||
LIMIT=`df | grep "/home" | tr -s " " | cut -d " " -f2`
|
|
||||||
echo "$NOW/$LIMIT"
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$ADD" == "on" ]; then
|
|
||||||
if [[ -n $USERIS && $GROUPIS && ! -e "/home/$USERIS" ]]; then
|
|
||||||
mkdir /home/$USERIS
|
|
||||||
chmod 0700 /home/$USERIS
|
|
||||||
chown "$USERIS:$GROUPIS" /home/$USERIS
|
|
||||||
setquota -u $USERIS 5000000 8000000 0 0 -a
|
|
||||||
echo "Mail d'initialisation du compte." |\
|
|
||||||
mail -s "Premier message" $USERIS@localhost
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
if [ "$DEL" == "on" ]; then
|
if [ "$DEL" == "on" ]; then
|
||||||
if [[ -n $USERIS && -e "/home/$USERIS" ]]; then
|
if [[ -n $USERIS && -n $DOMAINIS && -e "/home/vmail/$DOMAINIS" && -e "/home/vmail/$DOMAINIS/$USERIS" ]]; then
|
||||||
mv /home/$USERIS /home/$USERIS.$DATE
|
mv /home/vmail/$DOMAINIS/$USERIS /home/vmail/$DOMAINIS/$USERIS.$DATE
|
||||||
chown -R root:root /home/$USERIS.$DATE
|
chown -R root:root /home/vmail/$DOMAINIS/$USERIS.$DATE
|
||||||
exit 0
|
chmod -R 700 /home/vmail/$DOMAINIS/$USERIS.$DATE
|
||||||
fi
|
fi
|
||||||
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
exit 1
|
exit 1
|
||||||
|
|
Loading…
Reference in a new issue