|
##############################################################################
|
|
# -*- 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/"
|