* добавлена проверка указанного 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…
Reference in new issue