def _checkSendFilters(self): """MT Filters check""" if (self.user.mt_credential.getValueFilter('destination_address') is None or not self.user.mt_credential.getValueFilter('destination_address').match( str(self.request.args['to'][0]))): raise CredentialValidationError( 'Value filter failed for user [%s] (destination_address filter mismatch).' % self.user) if 'from' in self.request.args and (self.user.mt_credential.getValueFilter('source_address') is None or not self.user.mt_credential.getValueFilter('source_address').match( str(self.request.args['from'][0]))): raise CredentialValidationError( 'Value filter failed for user [%s] (source_address filter mismatch).' % self.user) if 'priority' in self.request.args and (self.user.mt_credential.getValueFilter('priority') is None or not self.user.mt_credential.getValueFilter('priority').match( str(self.request.args['priority'][0]))): raise CredentialValidationError( 'Value filter failed for user [%s] (priority filter mismatch).' % self.user) if 'validity-period' in self.request.args and ( self.user.mt_credential.getValueFilter('validity_period') is None or not self.user.mt_credential.getValueFilter('validity_period').match( str(self.request.args['validity-period'][0]))): raise CredentialValidationError( 'Value filter failed for user [%s] (validity_period filter mismatch).' % self.user) if ('content' in self.request.args and (self.user.mt_credential.getValueFilter('content') is None or not self.user.mt_credential.getValueFilter('content').match( str(self.request.args['content'][0])))): raise CredentialValidationError( 'Value filter failed for user [%s] (content filter mismatch).' % self.user)
def _checkSendFilters(self): """MT Filters check""" if (self.user.mt_credential.getValueFilter('destination_address') is None or not self.user.mt_credential.getValueFilter('destination_address').match( self._convert_to_string(b'to'))): raise CredentialValidationError( 'Value filter failed for user [%s] (destination_address filter mismatch).' % self.user) if b'from' in self.request.args and (self.user.mt_credential.getValueFilter('source_address') is None or not self.user.mt_credential.getValueFilter('source_address').match( self._convert_to_string(b'from'))): raise CredentialValidationError( 'Value filter failed for user [%s] (source_address filter mismatch).' % self.user) if b'priority' in self.request.args and (self.user.mt_credential.getValueFilter('priority') is None or not self.user.mt_credential.getValueFilter('priority').match( self._convert_to_string(b'priority'))): raise CredentialValidationError( 'Value filter failed for user [%s] (priority filter mismatch).' % self.user) if b'validity-period' in self.request.args and ( self.user.mt_credential.getValueFilter('validity_period') is None or not self.user.mt_credential.getValueFilter('validity_period').match( self._convert_to_string(b'validity-period'))): raise CredentialValidationError( 'Value filter failed for user [%s] (validity_period filter mismatch).' % self.user) if (b'content' in self.request.args and (self.user.mt_credential.getValueFilter('content') is None or not self.user.mt_credential.getValueFilter('content').match(self._convert_to_string(b'content', self.request.args.get(b'coding', [None])[0])))): raise CredentialValidationError( 'Value filter failed for user [%s] (content filter mismatch).' % self.user)
def _checkSendAuthorizations(self): """MT Authorizations check""" if not self.user.mt_credential.getAuthorization('http_send'): raise CredentialValidationError( 'Authorization failed for user [%s] (Cannot send MT messages).' % self.user) if (hasattr(self.submit_sm, 'nextPdu') and not self.user.mt_credential.getAuthorization( 'http_long_content')): raise CredentialValidationError( 'Authorization failed for user [%s] (Long content not authorized).' % self.user) if ('dlr-level' in self.request.args and not self.user.mt_credential.getAuthorization('set_dlr_level')): raise CredentialValidationError( 'Authorization failed for user [%s] (Setting dlr level not authorized).' % self.user) if ('dlr-method' in self.request.args and not self.user.mt_credential.getAuthorization( 'http_set_dlr_method')): raise CredentialValidationError( 'Authorization failed for user [%s] (Setting dlr method not authorized).' % self.user) if ('from' in self.request.args and not self.user.mt_credential.getAuthorization( 'set_source_address')): raise CredentialValidationError( 'Authorization failed for user [%s] (Setting source address not authorized).' % self.user) if ('priority' in self.request.args and not self.user.mt_credential.getAuthorization('set_priority')): raise CredentialValidationError( 'Authorization failed for user [%s] (Setting priority not authorized).' % self.user) if ('validity-period' in self.request.args and not self.user.mt_credential.getAuthorization( 'set_validity_period')): raise CredentialValidationError( 'Authorization failed for user [%s] (Setting validity period not authorized).' % self.user) if ('hex-content' in self.request.args and not self.user.mt_credential.getAuthorization('set_hex_content') ): raise CredentialValidationError( 'Authorization failed for user [%s] (Setting hex content not authorized).' % self.user) if ('sdt' in self.request.args and not self.user.mt_credential.getAuthorization( 'set_schedule_delivery_time')): raise CredentialValidationError( 'Authorization failed for user [%s] (Setting schedule delivery time not authorized).' % self.user)
def _checkSendFilters(self): """MT Filters check""" # Filtering destination_address _value = self.request.args[b'to'][0] _r = self._get_binary_r('destination_address') if _r is None or (_r.pattern != b'.*' and not _r.match(_value)): raise CredentialValidationError( 'Value filter failed for user [%s] (destination_address filter mismatch).' % self.user) # Filtering source_address if b'from' in self.request.args: _value = self.request.args[b'from'][0] _r = self._get_binary_r('source_address') if _r is None or (_r.pattern != b'.*' and not _r.match(_value)): raise CredentialValidationError( 'Value filter failed for user [%s] (source_address filter mismatch).' % self.user) # Filtering priority if b'priority' in self.request.args: _value = self.request.args[b'priority'][0] _r = self._get_binary_r('priority') if _r is None or (_r.pattern != b'^[0-3]$' and not _r.match(_value)): raise CredentialValidationError( 'Value filter failed for user [%s] (priority filter mismatch).' % self.user) # Filtering validity_period if b'validity-period' in self.request.args: _value = self.request.args[b'validity-period'][0] _r = self._get_binary_r('validity_period') if not isinstance(_value, int) and (_r is None or (_r.pattern != b'.*' and not _r.match(_value))): raise CredentialValidationError( 'Value filter failed for user [%s] (validity_period filter mismatch).' % self.user) if b'content' in self.request.args: _value = self.request.args[b'content'][0] _r = self._get_binary_r('content') if _r is None or (_r.pattern != b'.*' and not _r.match(_value)): raise CredentialValidationError( 'Value filter failed for user [%s] (content filter mismatch).' % self.user)
def _checkRateAuthorizations(self): """Rate Authorizations check""" if not self.user.mt_credential.getAuthorization('http_rate'): raise CredentialValidationError( 'Authorization failed for user [%s] (Cannot check rate).' % self.user)
def _checkBalanceAuthorizations(self): "Balance Authorizations check" if not self.user.mt_credential.getAuthorization('http_balance'): raise CredentialValidationError( 'Authorization failed for username [%s] (Can not check balance).' % self.user)
def validate(self): "Will validate requests through Authorizations and ValueFilters credential check" if self.action == 'Send': self._checkSendAuthorizations() self._checkSendFilters() else: raise CredentialValidationError('Unknown action [%s].' % self.action)
def _checkSendAuthorizations(self): "MT Authorizations check" if not self.user.mt_credential.getAuthorization('http_send'): raise CredentialValidationError( 'Authorization failed for username [%s] (Can not send MT messages).' % self.user) if hasattr(self.submit_sm, 'nextPdu') and not self.user.mt_credential.getAuthorization( 'http_long_content'): raise CredentialValidationError( 'Authorization failed for username [%s] (Long content is not authorized).' % self.user) if 'dlr-level' in self.request.args and not self.user.mt_credential.getAuthorization( 'set_dlr_level'): raise CredentialValidationError( 'Authorization failed for username [%s] (Setting dlr level is not authorized).' % self.user) if 'dlr-method' in self.request.args and not self.user.mt_credential.getAuthorization( 'http_set_dlr_method'): raise CredentialValidationError( 'Authorization failed for username [%s] (Setting dlr method is not authorized).' % self.user) if 'from' in self.request.args and not self.user.mt_credential.getAuthorization( 'set_source_address'): raise CredentialValidationError( 'Authorization failed for username [%s] (Setting source address is not authorized).' % self.user) if 'priority' in self.request.args and not self.user.mt_credential.getAuthorization( 'set_priority'): raise CredentialValidationError( 'Authorization failed for username [%s] (Setting priority is not authorized).' % self.user)