|
Lines 83-89
def get_computer_class(computer_type):
Link Here
|
| 83 |
}.get(computer_type, SchoolComputer) |
83 |
}.get(computer_type, SchoolComputer) |
| 84 |
|
84 |
|
| 85 |
|
85 |
|
| 86 |
def iter_objects_in_request(request): |
86 |
def iter_objects_in_request(request, lo): |
| 87 |
klass = { |
87 |
klass = { |
| 88 |
'schoolwizards/schools': School, |
88 |
'schoolwizards/schools': School, |
| 89 |
'schoolwizards/users': User, |
89 |
'schoolwizards/users': User, |
|
Lines 106-112
def iter_objects_in_request(request):
Link Here
|
| 106 |
if issubclass(klass, SchoolClass): |
106 |
if issubclass(klass, SchoolClass): |
| 107 |
# workaround to be able to reuse this function everywhere |
107 |
# workaround to be able to reuse this function everywhere |
| 108 |
obj_props['name'] = '%s-%s' % (obj_props['school'], obj_props['name']) |
108 |
obj_props['name'] = '%s-%s' % (obj_props['school'], obj_props['name']) |
| 109 |
obj = klass(**obj_props) |
109 |
if dn: |
|
|
110 |
obj = klass.from_dn(dn, obj_props.get('school'), lo) |
| 111 |
for key, value in obj_props.iteritems(): |
| 112 |
if key in obj._attributes: |
| 113 |
setattr(obj, key, value) |
| 114 |
else: |
| 115 |
obj = klass(**obj_props) |
| 110 |
if dn: |
116 |
if dn: |
| 111 |
obj.old_dn = dn |
117 |
obj.old_dn = dn |
| 112 |
yield obj |
118 |
yield obj |
|
Lines 169-175
def share_servers(self, request, ldap_user_read=None):
Link Here
|
| 169 |
@LDAP_Connection() |
175 |
@LDAP_Connection() |
| 170 |
def _get_obj(self, request, ldap_user_read=None): |
176 |
def _get_obj(self, request, ldap_user_read=None): |
| 171 |
ret = [] |
177 |
ret = [] |
| 172 |
for obj in iter_objects_in_request(request): |
178 |
for obj in iter_objects_in_request(request, ldap_user_read): |
| 173 |
MODULE.process('Getting %r' % (obj)) |
179 |
MODULE.process('Getting %r' % (obj)) |
| 174 |
obj = obj.from_dn(obj.old_dn, obj.school, ldap_user_read) |
180 |
obj = obj.from_dn(obj.old_dn, obj.school, ldap_user_read) |
| 175 |
ret.append(obj.to_dict()) |
181 |
ret.append(obj.to_dict()) |
|
Lines 179-185
def _get_obj(self, request, ldap_user_read=None):
Link Here
|
| 179 |
@LDAP_Connection(USER_READ, USER_WRITE) |
185 |
@LDAP_Connection(USER_READ, USER_WRITE) |
| 180 |
def _create_obj(self, request, ldap_user_read=None, ldap_user_write=None): |
186 |
def _create_obj(self, request, ldap_user_read=None, ldap_user_write=None): |
| 181 |
ret = [] |
187 |
ret = [] |
| 182 |
for obj in iter_objects_in_request(request): |
188 |
for obj in iter_objects_in_request(request, ldap_user_write): |
| 183 |
MODULE.process('Creating %r' % (obj,)) |
189 |
MODULE.process('Creating %r' % (obj,)) |
| 184 |
obj.validate(ldap_user_read) |
190 |
obj.validate(ldap_user_read) |
| 185 |
if obj.errors: |
191 |
if obj.errors: |
|
Lines 200-206
def _create_obj(self, request, ldap_user_read=None, ldap_user_write=None):
Link Here
|
| 200 |
@LDAP_Connection(USER_READ, USER_WRITE) |
206 |
@LDAP_Connection(USER_READ, USER_WRITE) |
| 201 |
def _modify_obj(self, request, ldap_user_read=None, ldap_user_write=None): |
207 |
def _modify_obj(self, request, ldap_user_read=None, ldap_user_write=None): |
| 202 |
ret = [] |
208 |
ret = [] |
| 203 |
for obj in iter_objects_in_request(request): |
209 |
for obj in iter_objects_in_request(request, ldap_user_write): |
| 204 |
MODULE.process('Modifying %r' % (obj)) |
210 |
MODULE.process('Modifying %r' % (obj)) |
| 205 |
obj.validate(ldap_user_read) |
211 |
obj.validate(ldap_user_read) |
| 206 |
if obj.errors: |
212 |
if obj.errors: |
|
Lines 218-224
def _modify_obj(self, request, ldap_user_read=None, ldap_user_write=None):
Link Here
|
| 218 |
@LDAP_Connection(USER_READ, USER_WRITE) |
224 |
@LDAP_Connection(USER_READ, USER_WRITE) |
| 219 |
def _delete_obj(self, request, ldap_user_read=None, ldap_user_write=None): |
225 |
def _delete_obj(self, request, ldap_user_read=None, ldap_user_write=None): |
| 220 |
ret = [] |
226 |
ret = [] |
| 221 |
for obj in iter_objects_in_request(request): |
227 |
for obj in iter_objects_in_request(request, ldap_user_write): |
| 222 |
obj.name = obj.get_name_from_dn(obj.old_dn) |
228 |
obj.name = obj.get_name_from_dn(obj.old_dn) |
| 223 |
MODULE.process('Deleting %r' % (obj)) |
229 |
MODULE.process('Deleting %r' % (obj)) |
| 224 |
if obj.remove(ldap_user_write): |
230 |
if obj.remove(ldap_user_write): |
|
Lines 252-258
def get_users(self, request, ldap_user_read=None):
Link Here
|
| 252 |
@LDAP_Connection(USER_READ, USER_WRITE) |
258 |
@LDAP_Connection(USER_READ, USER_WRITE) |
| 253 |
def delete_user(self, request, ldap_user_read=None, ldap_user_write=None): |
259 |
def delete_user(self, request, ldap_user_read=None, ldap_user_write=None): |
| 254 |
ret = [] |
260 |
ret = [] |
| 255 |
for i, obj in enumerate(iter_objects_in_request(request)): |
261 |
for i, obj in enumerate(iter_objects_in_request(request, ldap_user_write)): |
| 256 |
school = request.options[i]['object']['school'] |
262 |
school = request.options[i]['object']['school'] |
| 257 |
obj = obj.from_dn(obj.old_dn, obj.school, ldap_user_write) |
263 |
obj = obj.from_dn(obj.old_dn, obj.school, ldap_user_write) |
| 258 |
success = obj.remove_from_school(school, ldap_user_write) |
264 |
success = obj.remove_from_school(school, ldap_user_write) |