Exemple #1
0
    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)
Exemple #2
0
    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)
Exemple #3
0
    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)
Exemple #4
0
    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)
Exemple #5
0
    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)
Exemple #7
0
    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)
Exemple #8
0
    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)