|
Lines 115-127
class UserMap( dict ):
Link Here
|
| 115 |
MODULE.info( 'Unknown user "%s"' % username ) |
115 |
MODULE.info( 'Unknown user "%s"' % username ) |
| 116 |
dict.__setitem__( self, userstr, UserInfo( '', '' ) ) |
116 |
dict.__setitem__( self, userstr, UserInfo( '', '' ) ) |
| 117 |
else: |
117 |
else: |
|
|
118 |
result[0].open() |
| 118 |
userobj = UserInfo( result[ 0 ].dn, username ) |
119 |
userobj = UserInfo( result[ 0 ].dn, username ) |
| 119 |
for grp in result[ 0 ][ 'groups' ]: |
|
|
| 120 |
if grp.endswith( search_base.workgroups ): |
| 121 |
userobj.workgroups.append( udm_uldap.explodeDn( grp, True )[ 0 ] ) |
| 122 |
elif grp.endswith( search_base.classes ): |
| 123 |
userobj.school_class = udm_uldap.explodeDn( grp, True )[ 0 ] |
| 124 |
userobj.isTeacher = search_base.isTeacher( userobj.dn ) |
120 |
userobj.isTeacher = search_base.isTeacher( userobj.dn ) |
|
|
121 |
|
| 122 |
blacklisted_groups = set([x.strip().lower() for x in ucr.get('ucsschool/umc/computerroom/hide_screenshots/groups', 'Domain Admins').split(',')]) |
| 123 |
users_groupmemberships = set([udm_uldap.explodeDn(x, True)[0].lower() for x in result[0]['groups']]) |
| 124 |
MODULE.info('UserMap: %s: hide screenshots for following groups: %s' % (username, blacklisted_groups,)) |
| 125 |
MODULE.info('UserMap: %s: user is member of following groups: %s' % (username, users_groupmemberships,)) |
| 126 |
userobj.hide_screenshot = bool(blacklisted_groups & users_groupmemberships) |
| 127 |
|
| 128 |
if ucr.is_true('ucsschool/umc/computerroom/hide_screenshots/teachers', False) and userobj.isTeacher: |
| 129 |
MODULE.info('UserMap: %s: is teacher hiding screenshot' % (username,)) |
| 130 |
userobj.hide_screenshot = True |
| 131 |
|
| 132 |
MODULE.info('UserMap: %s: hide_screenshot=%r' % (username, userobj.hide_screenshot)) |
| 133 |
|
| 125 |
dict.__setitem__( self, userstr, userobj ) |
134 |
dict.__setitem__( self, userstr, userobj ) |
| 126 |
|
135 |
|
| 127 |
_usermap = UserMap() |
136 |
_usermap = UserMap() |
|
Lines 383-388
class ITALC_Computer( notifier.signals.Provider, QObject ):
Link Here
|
| 383 |
return (self._computer.info.get('mac') or [''])[ 0 ] |
392 |
return (self._computer.info.get('mac') or [''])[ 0 ] |
| 384 |
|
393 |
|
| 385 |
@property |
394 |
@property |
|
|
395 |
def hide_screenshot(self): |
| 396 |
global _usermap |
| 397 |
try: |
| 398 |
return _usermap[str(self._username.current)].hide_screenshot |
| 399 |
except AttributeError: |
| 400 |
return False |
| 401 |
|
| 402 |
@property |
| 386 |
def isTeacher( self ): |
403 |
def isTeacher( self ): |
| 387 |
global _usermap |
404 |
global _usermap |
| 388 |
try: |
405 |
try: |