-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathUser.py
More file actions
75 lines (60 loc) · 3.12 KB
/
User.py
File metadata and controls
75 lines (60 loc) · 3.12 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
from Settings import Settings
from Ldap import PyAD
from Fileserver import *
class User: # superclass "User"
def __init__(self, surname, firstname, dateOfBirth): # constructor
self._surname = surname # protected properties/attributes => only one "_"
self._firstname = firstname
self._password = firstname[0] + surname[0] + dateOfBirth
self._dateOfBirth = dateOfBirth
self._username = surname
def getSurname(self):
return self._surname
def getFirstname(self):
return self._firstname
def getPassword(self):
return self._password
def getDateOfBirth(self):
return self._dateOfBirth
def getUsername(self):
return self._username
class Student(User): # subclass "Student" inherits every property and method from superclass "User"
def __init__(self, surname, firstname, dateOfBirth, schoolClass):
User.__init__(self, surname, firstname, dateOfBirth) # constructor of superclass is invoked
schoolClass.addStudent(self); # adds himself to school class
self.__schoolClass = schoolClass
def getSchoolClass(self):
return self.__schoolClass
def addToLDAP(self):
ldap = PyAD(Settings.dnStudents)
# add to ldap if not already in school class
foundStudentSchoolClass = ldap.findStudent(self._surname , self._firstname, self._dateOfBirth)
if foundStudentSchoolClass == self.__schoolClass.getName():
pass # do nothing
elif foundStudentSchoolClass == "": # not already in another school class -> create student
# ldap.createStudent() returns the possibly modified username for updating
self._username = ldap.createStudent(self._username
, self._surname
, self._firstname
, self._password
, self._dateOfBirth
, self.__schoolClass.getName())
fs = Fileserver()
fs.createHomeDirStudent(self._username)
else: # already in another school class
# -> delete and recreate student for simplicity reason
ldap = PyAD(Settings.dnStudents)
ldap.deleteStudent(self._surname, self._firstname, self._dateOfBirth, foundStudentSchoolClass)
fs = Fileserver()
fs.deleteHomeDirStudent(self._username)
self._username = ldap.createStudent(self._username
, self._surname
, self._firstname
, self._password
, self._dateOfBirth
, self.__schoolClass.getName())
def deleteFromLDAP(self):
ldap = PyAD(Settings.dnStudents)
ldap.deleteStudent(self._surname, self._firstname, self._dateOfBirth, self.__schoolClass.getName())
fs = Fileserver()
fs.deleteHomeDirStudent(self._username)