def getRolesInContext(self, object): """Return the list of roles assigned to the user, including local roles assigned in context of the passed in object.""" roles = BasicUser.getRolesInContext(self, object) acl_satellite = self._getSatellite(object) if acl_satellite and hasattr(acl_satellite, 'getAdditionalRoles'): satellite_roles = acl_satellite.getAdditionalRoles(self) roles = list(roles) + satellite_roles return roles
def allowed(self, object, object_roles=None): """ Must override, getRolesInContext is not always called """ if BasicUser.allowed(self, object, object_roles): return 1 acl_satellite = self._getSatellite(object) if acl_satellite and hasattr(acl_satellite, 'getAdditionalRoles'): satellite_roles = acl_satellite.getAdditionalRoles(self) for role in object_roles: if role in satellite_roles: if self._check_context(object): return 1 return 0