From 37b3832b25b50796a5fd06575a401327586325e2 Mon Sep 17 00:00:00 2001 From: Valentin Samir Date: Tue, 12 Nov 2013 17:08:44 +0100 Subject: [PATCH] =?UTF-8?q?[sip]=20Gestion=20dynamique=20du=20multidial=20?= =?UTF-8?q?(pour=20les=20num=C3=A9ros=20associ=C3=A9=20a=20un=20droit=20ld?= =?UTF-8?q?ap)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit On a donc un fonction pour convertir un droit ldap en liste de numéro --- sip/asterisk.py | 7 ++++++- sip/scripts/right_to_nums | 16 ++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) create mode 100755 sip/scripts/right_to_nums diff --git a/sip/asterisk.py b/sip/asterisk.py index 735c6dda..7e57901a 100644 --- a/sip/asterisk.py +++ b/sip/asterisk.py @@ -36,12 +36,17 @@ class Profile(object): cur.close() conn.close() + def right_to_nums(self, right): + conn=lc_ldap.shortcuts.lc_ldap_readonly() + ret=conn.search(u"(&(droits=%s)(!(chbre=EXT)))" % right) + return [ "1%04d" % adh['aid'][0].value for adh in ret] + def alias_to_num(self, alias): try: conn=lc_ldap.shortcuts.lc_ldap_readonly() ret=conn.search(u"(|(uid=%(alias)s)(mailAlias=%(alias)s@crans.org)(canonicalAlias=%(alias)s@crans.org))" % {'alias' : alias}) if len(ret) == 1: - return "1" + str(ret[0]['aid'][0]) + return "1%04d" % ret[0]['aid'][0].value else: return "NONE" except: diff --git a/sip/scripts/right_to_nums b/sip/scripts/right_to_nums new file mode 100755 index 00000000..40733803 --- /dev/null +++ b/sip/scripts/right_to_nums @@ -0,0 +1,16 @@ +#!/bin/bash /usr/scripts/python.sh +# -*- coding: utf-8 -*- + +import sys +from sip.asterisk import Profile + +if __name__ == '__main__' : + if len(sys.argv)>1: + profile = Profile() + nums=profile.right_to_nums(sys.argv[1]) + if nums: + sys.stdout.write('SIP/' + '&SIP/'.join(nums)) + else: + sys.stdout.write('NONE') + else: + print >> sys.stderr, "Usage %s {right}" % sys.argv[0]