View | Details | Raw Unified | Return to bug 42863
Collapse All | Expand All

(-)a/ucs-school-umc-wizards/umc/python/schoolwizards/__init__.py (-7 / +13 lines)
 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)

Return to bug 42863