09 Sep 2010
Support Center
»
Knowledgebase
»
MPP WBL's using SQL Template Queries
MPP WBL's using SQL Template Queries
Solution
MPP WBL's can be defined in XML using: spam_whitelist/blacklist for inline options, wbl_uri using file:// or mysql:// URI's. New
SQL Template Queries
would allow creation of custom queries for WBL's.
Both inline, file, mysql and custom query based WBL's can be used in the same time, custom query based WBL's being verified first.
Example of MySQL WBL's using SQL Template Queries:
<mppd>
<common>
...
<passwords>/usr/local/MPP/secret.txt</passwords>
...
</common>
<groups>
<group id=â€defaultâ€>
...
<wbl_engines>mpp.wbl</wbl_engines>
...
</group>
...
</groups>
<engines>
...
        <mysql id="mpp">
            <connection>
                <host>localhost.localdomain</host>
                <port>3306</port>
                <database>mpp</database>
                <unix_socket>/tmp/mysql.sock</unix_socket>
                <defaults_file>/etc/myÂ.cnf</defaults_file>
                <user>root</user>
    <password_id>root_password_id</password>
            </connection>
            <query id="wbl">
                <template>
                    SELECT `wbl_lists`.`condition` AS `condition` FROM `users`,`wbl_lists`,`contacts`
                    WHERE `wbl_lists`.`user_id`=`users`.`id` AND `wbl_lists`.`contact_id`=`contacts`.`id`
                    AND (
                            (       (`users`.`address`='*'
                                        ${wrap { OR `users`.`address`='$#'} ${escape $sender.component}})
                                AND (`contacts`.`address`='*'
                                        ${wrap { OR `contacts`.`address`='$#'} ${escape $recipient.component}})
                                AND (`wbl_lists`.`direction`=0)
                            )
                            OR
                            (           (`users`.`address`='*'
                                        ${wrap { OR `users`.`address`='$#'} ${escape $recipient.component}})
                                AND (`contacts`.`address`='*'
                                        ${wrap { OR `contacts`.`address`='$#'} ${escape $sender.component}})
                                AND (`wbl_lists`.`direction`=1)
                            )
                            OR
                            (           (`users`.`address`='*'
                                        ${wrap { OR `users`.`address`='$#'} ${escape $sender.component}})
                                AND (`contacts`.`address`='*'
                                         ${wrap { OR `contacts`.`address`='$#'} ${escape $recipient.component}})
                                AND (`wbl_lists`.`direction`=2)
                            )
                            OR
                            (           (`users`.`address`='*'
                                        ${wrap { OR `users`.`address`='$#'} ${escape $recipient.component}})
                                AND (`contacts`.`address`='*'
                                        ${wrap { OR `contacts`.`address`='$#'} ${escape $sender.component}})
                                AND (`wbl_lists`.`direction`=2)
                            )
                        )
                </template>
  <result id="result">
                    <if_empty_table>
                        <result>none</result>
                    </if_empty_table>
                    <if_filled_table>
                        <row_to_case_relation>allÂtoÂone</row_to_case_relation>
                        <case>
                            <condition>${field condition} $EQ 0</condition>
                            <result>spam_whitelist</result>
                        </case>
                        <case>
                            <condition>${field condition} $EQ 1</condition>
                            <result>blacklist</result>
                        </case>
                        <result>none</result>
                   </if_filled_table>
                </result>
            </query>
        </mysql>
  ...
</engines>
</mppd>
Article Details
Article ID:
42
Created On:
03 Mar 2009 11:39 PM
This answer was helpful
This answer was not helpful
User Comments
Add a Comment
Sharing is good. So if you have a comment about this entry please feel free to share. The Comments might be reviewed by our Staff and might require approval before being posted. Questions posted will not be answered, please submit a ticket for support requests.
Fullname:
Email: (Optional)
Comments:
Back
Login
[Lost Password]
Email:
Password:
Remember Me:
Search
-- Entire Support Site --
Knowledgebase
Downloads
Article Options
Add Comment
Print Article
PDF Version
Email Article
Add to Favorites
Home
|
Register
|
Submit a Ticket
|
Knowledgebase
|
Downloads
Language:
English (U.S.)