Lines 56-61
from univention.management.console.modules.distribution import compare_dn
|
Link Here
|
---|
|
56 |
|
56 |
|
57 |
from univention.lib.i18n import Translation |
57 |
from univention.lib.i18n import Translation |
58 |
from univention.lib.umc import Client, ConnectionError, HTTPError |
58 |
from univention.lib.umc import Client, ConnectionError, HTTPError |
|
|
59 |
from univention.lib.misc import custom_groupname |
59 |
|
60 |
|
60 |
from ucsschool.lib.schoolldap import LDAP_Connection, SchoolBaseModule, SchoolSearchBase, SchoolSanitizer, Display |
61 |
from ucsschool.lib.schoolldap import LDAP_Connection, SchoolBaseModule, SchoolSearchBase, SchoolSanitizer, Display |
61 |
from ucsschool.lib import internetrules |
62 |
from ucsschool.lib import internetrules |
Lines 177-183
class Instance(SchoolBaseModule):
|
Link Here
|
---|
|
177 |
sender_user = User.from_dn(exam.sender.dn, None, ldap_user_read) |
178 |
sender_user = User.from_dn(exam.sender.dn, None, ldap_user_read) |
178 |
if user.is_administrator(ldap_user_read) and len(set(sender_user.schools).intersection(user.schools)) != 0: |
179 |
if user.is_administrator(ldap_user_read) and len(set(sender_user.schools).intersection(user.schools)) != 0: |
179 |
return True |
180 |
return True |
180 |
admin_group_dn = 'cn=Domain Admins,cn=groups,' + ucr['ldap/base'] |
181 |
admin_group_dn = 'cn={},cn=groups,{}'.format(custom_groupname('Domain Admins', ucr), ucr['ldap/base']) |
181 |
if admin_group_dn in user.get_udm_object(ldap_user_read)['groups']: |
182 |
if admin_group_dn in user.get_udm_object(ldap_user_read)['groups']: |
182 |
return True |
183 |
return True |
183 |
return False |
184 |
return False |
Lines 254-267
class Instance(SchoolBaseModule):
|
Link Here
|
---|
|
254 |
return False |
255 |
return False |
255 |
if exam.isDistributed: |
256 |
if exam.isDistributed: |
256 |
return False |
257 |
return False |
257 |
if not self._user_can_modify(User.from_dn(ldap_user_read.whoami(), None, ldap_user_read) ,exam): |
258 |
if not self._user_can_modify(User.from_dn(ldap_user_read.whoami(), None, ldap_user_read), exam): |
258 |
return False |
259 |
return False |
259 |
exam.purge() |
260 |
exam.purge() |
260 |
return True |
261 |
return True |
261 |
|
262 |
|
262 |
@sanitize(StringSanitizer(required=True)) |
263 |
@sanitize(StringSanitizer(required=True)) |
263 |
@LDAP_Connection() |
264 |
def get(self, request): |
264 |
def get(self, request, ldap_user_read=None): |
|
|
265 |
result = [] |
265 |
result = [] |
266 |
for project in [util.distribution.Project.load(iid) for iid in request.options]: |
266 |
for project in [util.distribution.Project.load(iid) for iid in request.options]: |
267 |
if not project: |
267 |
if not project: |
Lines 295-311
class Instance(SchoolBaseModule):
|
Link Here
|
---|
|
295 |
recipients=ListSanitizer(StringSanitizer(minimum=1), required=True), |
295 |
recipients=ListSanitizer(StringSanitizer(minimum=1), required=True), |
296 |
files=ListSanitizer(StringSanitizer()), |
296 |
files=ListSanitizer(StringSanitizer()), |
297 |
) |
297 |
) |
298 |
@require_password |
298 |
def add(self, request): |
299 |
@LDAP_Connection() |
|
|
300 |
def add(self, request, ldap_user_read=None): |
301 |
self._save_exam(request) |
299 |
self._save_exam(request) |
302 |
self.finished(request.id, True) |
300 |
self.finished(request.id, True) |
303 |
|
301 |
|
304 |
@sanitize( |
302 |
@sanitize( |
305 |
exams=ListSanitizer(StringSanitizer(minimum=1), required=True) |
303 |
exams=ListSanitizer(StringSanitizer(minimum=1), required=True) |
306 |
) |
304 |
) |
307 |
@LDAP_Connection() |
305 |
def delete(self, request): |
308 |
def delete(self, request, ldap_user_read=None): |
|
|
309 |
result = [] |
306 |
result = [] |
310 |
for exam in request.options['exams']: |
307 |
for exam in request.options['exams']: |
311 |
result.append(self._delete_exam(exam)) |
308 |
result.append(self._delete_exam(exam)) |
Lines 323-331
class Instance(SchoolBaseModule):
|
Link Here
|
---|
|
323 |
recipients=ListSanitizer(StringSanitizer(minimum=1), required=True), |
320 |
recipients=ListSanitizer(StringSanitizer(minimum=1), required=True), |
324 |
files=ListSanitizer(StringSanitizer()), |
321 |
files=ListSanitizer(StringSanitizer()), |
325 |
) |
322 |
) |
326 |
@require_password |
323 |
def put(self, request): |
327 |
@LDAP_Connection() |
|
|
328 |
def put(self, request, ldap_user_read=None): |
329 |
self._save_exam(request, update=True) |
324 |
self._save_exam(request, update=True) |
330 |
self.finished(request.id, True) |
325 |
self.finished(request.id, True) |
331 |
|
326 |
|