root/controlies/trunk/Utils/LdapUtils.py @ 116
80 | manumora | ##############################################################################
|
|
# -*- coding: utf-8 -*-
|
|||
# Project: ControlIES
|
|||
# Module: LdapUtils.py
|
|||
# Purpose: Ldap utils
|
|||
# Language: Python 2.5
|
|||
# Date: 18-Feb-2011.
|
|||
# Ver: 18-Feb-2011.
|
|||
# Author: Manuel Mora Gordillo
|
|||
# Francisco Mendez Palma
|
|||
# Copyright: 2011 - Manuel Mora Gordillo <manuito @no-spam@ gmail.com>
|
|||
# 2011 - Francisco Mendez Palma <fmendezpalma @no-spam@ gmail.com>
|
|||
#
|
|||
# ControlIES 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 3 of the License, or
|
|||
# (at your option) any later version.
|
|||
# ControlIES 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 ControlIES. If not, see <http://www.gnu.org/licenses/>.
|
|||
#
|
|||
##############################################################################
|
|||
# Get all users
|
|||
def getAllUsers(ldap):
|
|||
result = ldap.search("ou=People","uid=*",["uid","cn"])
|
|||
rows = []
|
|||
for u in result:
|
|||
rows.append([u[0][1]['uid'][0] , u[0][1]['cn'][0] ]);
|
|||
return rows
|
|||
# Get all groups classified by type
|
|||
def getAllGroups(ldap):
|
|||
result = ldap.search("ou=Group","(|(groupType=school_department)(groupType=school_class))",["cn","groupType"])
|
|||
departments = []
|
|||
classrooms = []
|
|||
for g in result:
|
|||
if g[0][1]["groupType"][0] == "school_department":
|
|||
departments.append(g[0][1]["cn"][0])
|
|||
elif g[0][1]["groupType"][0] == "school_class":
|
|||
classrooms.append(g[0][1]["cn"][0])
|
|||
departments.sort()
|
|||
classrooms.sort()
|
|||
return { "departments":departments, "classrooms":classrooms }
|
|||
# Get the max ID of the groups and users
|
|||
def getMaxID(ldap):
|
|||
result = ldap.search("ou=Group","cn=*",["gidNumber"])
|
|||
numbers = []
|
|||
for i in result:
|
|||
numbers.append(int(i[0][1]['gidNumber'][0]))
|
|||
result = ldap.search("ou=People","uid=*",["gidNumber","uidNumber"])
|
|||
for i in result:
|
|||
numbers.append(int(i[0][1]['gidNumber'][0]))
|
|||
numbers.append(int(i[0][1]['uidNumber'][0]))
|
|||
numbers.sort()
|
|||
maxID = 1
|
|||
if len(numbers) > 0:
|
|||
maxID = numbers[len(numbers)-1] + 1
|
|||
return maxID
|
|||
def whatHome(type):
|
|||
if type == "teacher":
|
|||
return "/home/profesor/"
|
|||
else:
|
|||
return "/home/alumnos/"
|