sys-apps/calculate-server: обновление 2.1.19

* добавлена проверка указанного JID при добавлении jabber пользователя
mhiretskiy
parent cfe876c552
commit 6bf51bd623

@ -0,0 +1,192 @@
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
EAPI="5"
PYTHON_COMPAT=(python{2_6,2_7})
inherit distutils-r1 eutils
SRC_URI="ftp://ftp.calculate-linux.org/calculate/source/calculate2/${PN}/${P}.tar.bz2
http://mirror.yandex.ru/calculate/source/calculate2/${PN}/${P}.tar.bz2"
DESCRIPTION="Configuration utility for Linux services"
HOMEPAGE="http://www.calculate-linux.org/main/en/calculate2"
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="amd64 x86"
IUSE="calculate_nomail
calculate_nodhcp
calculate_noftp
calculate_nojabber
calculate_nonamed
calculate_nosamba
calculate_noproxy"
DEPEND="=sys-apps/calculate-lib-2.1.12-r3
>=net-nds/openldap-2.3[-minimal]
>=sys-auth/pam_ldap-180[ssl]
>=sys-auth/nss_ldap-239
!<sys-apps/calculate-utils-3.5.0_alpha44
!calculate_nosamba? (
|| (
<net-fs/samba-4[acl,client,cups,ldap,netapi,pam,server,smbclient]
>=net-fs/samba-4[acl,client,cups,ldap,pam]
)
)
!calculate_nomail? (
|| ( <net-mail/dovecot-1.2.0[pop3d,ldap,pam,ssl]
>=net-mail/dovecot-1.2.0[ldap,pam,ssl(+)]
)
>=mail-filter/procmail-3.22
dev-python/pymilter
>=mail-mta/postfix-2.2[ldap,pam,ssl,sasl,dovecot-sasl]
)
!calculate_noftp? (
|| ( <net-ftp/proftpd-1.3.3[-acl,ldap,ncurses,nls,pam,ssl,tcpd]
>=net-ftp/proftpd-1.3.3[-acl,ident,ldap,ncurses,nls,pam,ssl,tcpd]
)
)
!calculate_nojabber? (
|| ( >=net-im/ejabberd-2.1.8[mod_pubsub,ldap]
>=net-im/ejabberd-16.04-r1[ldap] )
>=media-gfx/imagemagick-6.6
)
!calculate_nonamed? ( >=net-dns/bind-9.6.1_p1[sdb-ldap] )
!calculate_noproxy? ( >=net-proxy/squid-3.0.14[ldap,pam,ssl] )
!calculate_nodhcp? ( >=net-misc/dhcp-3.1.2_p1 )"
RDEPEND="${DEPEND}"
PATCHES=(
# fix init.d/sortmilter
"${FILESDIR}"/calculate-server-2.1.19-fix_sortmilter.patch
"${FILESDIR}"/calculate-server-2.1.19-fix_mailservice.patch
"${FILESDIR}"/calculate-server-2.1.19-fix_certgen.patch
"${FILESDIR}"/calculate-server-2.1.19-fix_jabber.patch
)
pkg_postinst() {
if [ -d /var/calculate/server-data/mail/imap ] || \
[ -d /var/calculate/server-data/samba/win/profiles ] || \
[ -d /var/calculate/server-data/samba/unix/profiles ] || \
[ -d /var/calculate/server-data/samba/win/netlogon ];
then
ewarn "Data found in directories of previous version calculate-server"
fi
if [ -d /var/calculate/server-data/mail/imap ];
then
if ! [ -d /var/calculate/server-data/mail~ ];
then
if mv /var/calculate/server-data/mail/imap \
/var/calculate/server-data/mail~ && \
rmdir /var/calculate/server-data/mail && \
mv /var/calculate/server-data/mail~ \
/var/calculate/server-data/mail;
then
ewarn
ewarn "Data from /var/calculate/server-data/mail/imap"
ewarn "was moved to /var/calculate/server-data/mail"
MAILUPDATE="TRUE"
fi
fi
if ! [ "${MAILUPDATE}" == "TRUE" ];
then
eerror "Cannot move /var/calculate/server-data/mail/imap"
eerror "Please manualy move /var/calculate/server-data/mail/imap"
eerror "to /var/calculate/server-data/mail"
fi
fi
if [ -d /var/calculate/server-data/samba/win/profiles ];
then
SAMBAUPDATE=""
if ! [ -d /var/calculate/server-data/samba/profiles/win ];
then
if mkdir -p /var/calculate/server-data/samba/profiles && \
mv /var/calculate/server-data/samba/win/profiles \
/var/calculate/server-data/samba/profiles/win;
then
ewarn
ewarn "Data from /var/calculate/server-data/samba/win/profiles"
ewarn "was moved to /var/calculate/server-data/samba/profiles/win"
SAMBAUPDATE="TRUE"
fi
fi
if ! [ "${SAMBAUPDATE}" == "TRUE" ];
then
eerror "Cannot move /var/calculate/server-data/samba/win/profiles"
eerror "Please manualy move "
eerror "/var/calculate/server-data/samba/win/profiles"
eerror "to /var/calculate/server-data/samba/profiles/win"
fi
fi
if [ -d /var/calculate/server-data/samba/unix/profiles ]; \
then
SAMBAUPDATE=""
if ! [ -d /var/calculate/server-data/samba/profiles/unix ];
then
if mkdir -p /var/calculate/server-data/samba/profiles && \
mv -f /var/calculate/server-data/samba/unix/profiles \
/var/calculate/server-data/samba/profiles/unix;
then
rmdir /var/calculate/server-data/samba/unix
ewarn
ewarn "Data from /var/calculate/server-data/samba/unix/profiles"
ewarn "was moved to /var/calculate/server-data/samba/profiles/unix"
SAMBAUPDATE="TRUE"
fi
fi
if ! [ "${SAMBAUPDATE}" == "TRUE" ];
then
eerror "Cannot move /var/calculate/server-data/samba/unix/profiles"
eerror "Please manualy move "
eerror "/var/calculate/server-data/samba/unix/profiles"
eerror "to /var/calculate/server-data/samba/profiles/unix"
fi
fi
if [ -d /var/calculate/server-data/samba/win/netlogon ];
then
SAMBAUPDATE=""
if ! [ -d /var/calculate/server-data/samba/netlogon ];
then
if mv -f /var/calculate/server-data/samba/win/netlogon \
/var/calculate/server-data/samba/netlogon;
then
rmdir /var/calculate/server-data/samba/win
ewarn
ewarn "Data form /var/calculate/server-data/samba/win/netlogon"
ewarn "was moved to /var/calculate/server-data/samba/netlogon"
SAMBAUPDATE="TRUE"
fi
fi
if ! [ "${SAMBAUPDATE}" == "TRUE" ];
then
eerror "Cannot move /var/calculate/server-data/samba/win/netlogon"
eerror "Please manualy move "
eerror "/var/calculate/server-data/samba/win/netlogon"
eerror "/var/calculate/server-data/samba/netlogon"
fi
fi
if [ "${MAILUPDATE}" == "TRUE" ];
then
ewarn
ewarn "Please update mail service by the command:"
ewarn "\tcl-update mail"
fi
if [ "${SAMBAUPDATE}" == "TRUE" ];
then
ewarn
ewarn "Please update samba service by the command:"
ewarn "\tcl-update samba"
fi
ewarn
ewarn "WARNING!!! If you have the samba service, then update it by the command:"
ewarn "\tcl-update samba"
}

@ -0,0 +1,51 @@
diff --git a/pym/cl_ldap.py b/pym/cl_ldap.py
index 11bf6f9..39b3167 100644
--- a/pym/cl_ldap.py
+++ b/pym/cl_ldap.py
@@ -5284,6 +5284,7 @@ in Jabber service"))
# Изменяемые аттрибуты пользователя
modAttrs = []
# Изменяем Jabber ID
+ jabber_hosts = self.get_jabber_hosts()
if options.has_key('j'):
# Изменяем JID
jabberId = options['j']
@@ -5293,6 +5294,10 @@ in Jabber service"))
if len(jabberId.split("@")) != 2:
self.printERROR(_("JID %s incorrect") %jabberId)
return False
+ if jabberId.rpartition('@')[2] not in jabber_hosts:
+ self.printERROR(
+ _("JID %s not supported on these jabber hosts") %jabberId)
+ return False
searchUser = self.searchUserToId(jabberId)
if searchUser:
foundUserName = searchUser[0][0][1]['uid'][0]
@@ -5552,10 +5557,16 @@ in Unix service") %str(jabberId))
return False
return True
+ def get_jabber_hosts(self):
+ jabber_host = self.clVars.Get('sr_jabber_host')
+ jabber_hosts = self.clVars.Get('sr_jabber_hosts').split(',')
+ jabber_hosts.append(jabber_host)
+ return list(set(jabber_hosts))
@adminConnectLdap
def addUserJabberServer(self, userName, options, checkSetup=True):
"""Добавляет jabber пользователя"""
+ jabber_hosts = self.get_jabber_hosts()
# Проверим установлен ли сервис jabber
if checkSetup and not self.initialChecks("jabber"):
return False
@@ -5570,6 +5581,10 @@ in Unix service") %str(jabberId))
if len(jabberId.split("@")) != 2:
self.printERROR(_("JID %s incorrect") %jabberId)
return False
+ if jabberId.rpartition('@')[2] not in jabber_hosts:
+ self.printERROR(
+ _("JID %s not supported on these jabber hosts") %jabberId)
+ return False
# добавляем jabberID в Unix
if self.isServiceSetup("unix",False):
if not self.servUnixObj.setUserJabberID(userName, jabberId):
Loading…
Cancel
Save