<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Never Use This Font &#187; wordpress</title>
	<atom:link href="http://neverusethisfont.com/blog/tags/wordpress/feed/" rel="self" type="application/rss+xml" />
	<link>http://neverusethisfont.com/blog</link>
	<description>Ramblings of a Designer/Programmer</description>
	<lastBuildDate>Fri, 09 Jul 2010 21:50:35 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>IMAP Authentication for Wordpress 2.7.1</title>
		<link>http://neverusethisfont.com/blog/2009/02/imap-authentication-for-wordpress-271/</link>
		<comments>http://neverusethisfont.com/blog/2009/02/imap-authentication-for-wordpress-271/#comments</comments>
		<pubDate>Fri, 13 Feb 2009 18:36:59 +0000</pubDate>
		<dc:creator>aaron</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Server Software]]></category>
		<category><![CDATA[imap]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://neverusethisfont.com/blog/?p=69</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p>Due to some significant changes to the Wordpress authentication mechanism, my original <a href="/blog/2008/08/imap-authentication-for-wordpress/">IMAP Authentication plugin</a> stopped working in version 2.7.1. I have updated the plugin to work in 2.7.1. The only difference is that users are no longer automatically created in Wordpress if they have a valid IMAP account. I will try to add that back in soon, but for now this will do. </p>
<p>Download <a href="http://aaronpk.net/wp-imap-authentication/imap-authentication1.2.php">imap-authentication1.2.php</a></p>
<p><span id="more-69"></span></p>

<div class="wp_syntax"><div class="code"><pre class="php"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #808080; font-style: italic;">/*
Plugin Name: IMAP Authentication 2
Version: 1.2
Plugin URI: http://blog.neverusethisfont.com/2009/02/imap-authentication-for-wordpress-271/
Description: Authenticate users using IMAP authentication. For Wordpress 2.7.1
Author: Aaron Parecki
Author URI: http://www.aaronparecki.com
&nbsp;
&nbsp;
Copyright 2009 by Aaron Parecki  (email : aaron@parecki.com)
&nbsp;
	This program is free software; you can redistribute it and/or modify
	it under the terms of the GNU General Public License as published by
	the Free Software Foundation; either version 2 of the License, or
	(at your option) any later version.
&nbsp;
	This program is distributed in the hope that it will be useful,
	but WITHOUT ANY WARRANTY; without even the implied warranty of
	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
	GNU General Public License for more details.
&nbsp;
	You should have received a copy of the GNU General Public License
	along with this program; if not, write to the Free Software
	Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
*/</span>
&nbsp;
add_action<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'admin_menu'</span><span style="color: #66cc66;">,</span> <span style="color: #000066;">array</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'IMAPAuthentication'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'admin_menu'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span>
add_action<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'lost_password'</span><span style="color: #66cc66;">,</span> <span style="color: #000066;">array</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'IMAPAuthentication'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'disable_password'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span>
add_action<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'retrieve_password'</span><span style="color: #66cc66;">,</span> <span style="color: #000066;">array</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'IMAPAuthentication'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'disable_password'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span>
add_action<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'password_reset'</span><span style="color: #66cc66;">,</span> <span style="color: #000066;">array</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'IMAPAuthentication'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'disable_password'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span>
add_filter<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'show_password_fields'</span><span style="color: #66cc66;">,</span> <span style="color: #000066;">array</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'IMAPAuthentication'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'show_password_fields'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span>
&nbsp;
add_action<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'wp_authenticate_user'</span><span style="color: #66cc66;">,</span> <span style="color: #000066;">array</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'IMAPAuthentication'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'authenticate_user'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span>
add_filter<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'check_password'</span><span style="color: #66cc66;">,</span> <span style="color: #000066;">array</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'IMAPAuthentication'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'check_password'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">4</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span>
&nbsp;
&nbsp;
<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span> is_plugin_page<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
    <span style="color: #ff0000">$mailbox</span> <span style="color: #66cc66;">=</span> IMAPAuthentication<span style="color: #66cc66;">::</span><span style="color: #006600;">get_mailbox</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span>
    <span style="color: #ff0000">$user_suffix</span> <span style="color: #66cc66;">=</span> IMAPAuthentication<span style="color: #66cc66;">::</span><span style="color: #006600;">get_user_suffix</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span>
<span style="color: #66cc66;">&lt;</span>div <span style="color: #000000; font-weight: bold;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;wrap&quot;</span><span style="color: #66cc66;">&gt;</span>
  <span style="color: #66cc66;">&lt;</span>h2<span style="color: #66cc66;">&gt;</span>IMAP Authentication Options<span style="color: #66cc66;">&lt;/</span>h2<span style="color: #66cc66;">&gt;</span>
  <span style="color: #66cc66;">&lt;</span>form name<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;imapauthenticationoptions&quot;</span> method<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;post&quot;</span> action<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;options.php&quot;</span><span style="color: #66cc66;">&gt;</span>
    <span style="color: #000000; font-weight: bold;">&lt;?php</span> wp_nonce_field<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'update-options'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
    <span style="color: #66cc66;">&lt;</span>input type<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;hidden&quot;</span> name<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;action&quot;</span> value<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;update&quot;</span> <span style="color: #66cc66;">/&gt;</span>
    <span style="color: #66cc66;">&lt;</span>input type<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;hidden&quot;</span> name<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;page_options&quot;</span> value<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;imap_authentication_mailbox,imap_authentication_user_suffix&quot;</span> <span style="color: #66cc66;">/&gt;</span>
    <span style="color: #66cc66;">&lt;</span>fieldset <span style="color: #000000; font-weight: bold;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;options&quot;</span><span style="color: #66cc66;">&gt;</span>
      <span style="color: #66cc66;">&lt;</span>table width<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;100%&quot;</span> cellspacing<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;2&quot;</span> cellpadding<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;5&quot;</span> <span style="color: #000000; font-weight: bold;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;form-table&quot;</span><span style="color: #66cc66;">&gt;</span>
        <span style="color: #66cc66;">&lt;</span>tr valign<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;top&quot;</span><span style="color: #66cc66;">&gt;</span>
        <span style="color: #66cc66;">&lt;</span>th width<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;33%&quot;</span> scope<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;row&quot;</span><span style="color: #66cc66;">&gt;&lt;</span>label <span style="color: #b1b100;">for</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;imap_authentication_mailbox&quot;</span><span style="color: #66cc66;">&gt;</span>Mailbox<span style="color: #66cc66;">&lt;/</span>label<span style="color: #66cc66;">&gt;&lt;/</span>th<span style="color: #66cc66;">&gt;</span>
        <span style="color: #66cc66;">&lt;</span>td<span style="color: #66cc66;">&gt;&lt;</span>input name<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;imap_authentication_mailbox&quot;</span> type<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text&quot;</span> id<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;imap_authentication_mailbox&quot;</span> value<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;&lt;?php echo htmlspecialchars($mailbox) ?&gt;&quot;</span> size<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;80&quot;</span> <span style="color: #66cc66;">/&gt;&lt;</span>br <span style="color: #66cc66;">/&gt;</span>eg<span style="color: #66cc66;">:</span> <span style="color: #66cc66;">&#123;</span><span style="color: #000066;">mail</span><span style="color: #66cc66;">.</span>example<span style="color: #66cc66;">.</span>com<span style="color: #66cc66;">/</span>readonly<span style="color: #66cc66;">&#125;</span>INBOX or <span style="color: #66cc66;">&#123;</span><span style="color: #000066;">mail</span><span style="color: #66cc66;">.</span>example<span style="color: #66cc66;">.</span>com<span style="color: #66cc66;">:</span><span style="color: #cc66cc;">993</span><span style="color: #66cc66;">/</span>ssl<span style="color: #66cc66;">/</span>novalidate<span style="color: #66cc66;">-</span>cert<span style="color: #66cc66;">/</span>readonly<span style="color: #66cc66;">&#125;</span>INBOX<span style="color: #66cc66;">&lt;/</span>td<span style="color: #66cc66;">&gt;</span>
        <span style="color: #66cc66;">&lt;/</span>tr<span style="color: #66cc66;">&gt;</span>
        <span style="color: #66cc66;">&lt;</span>tr valign<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;top&quot;</span><span style="color: #66cc66;">&gt;</span>
        <span style="color: #66cc66;">&lt;</span>th scope<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;row&quot;</span><span style="color: #66cc66;">&gt;&lt;</span>label <span style="color: #b1b100;">for</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;imap_authentication_user_suffix&quot;</span><span style="color: #66cc66;">&gt;</span>User Suffix<span style="color: #66cc66;">&lt;/</span>label<span style="color: #66cc66;">&gt;&lt;/</span>th<span style="color: #66cc66;">&gt;</span>
        <span style="color: #66cc66;">&lt;</span>td<span style="color: #66cc66;">&gt;&lt;</span>input name<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;imap_authentication_user_suffix&quot;</span> type<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text&quot;</span> id<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;imap_authentication_user_suffix&quot;</span> value<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;&lt;?php echo htmlspecialchars($user_suffix) ?&gt;&quot;</span> size<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;50&quot;</span> <span style="color: #66cc66;">/&gt;&lt;</span>br <span style="color: #66cc66;">/&gt;</span>A suffix to add to usernames <span style="color: #66cc66;">&#40;</span>typically used to automatically add the domain part of the login<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">.&lt;</span>br <span style="color: #66cc66;">/&gt;</span>eg<span style="color: #66cc66;">:</span> <span style="color: #66cc66;">@</span>example<span style="color: #66cc66;">.</span>com<span style="color: #66cc66;">&lt;/</span>td<span style="color: #66cc66;">&gt;</span>
        <span style="color: #66cc66;">&lt;/</span>tr<span style="color: #66cc66;">&gt;</span>
      <span style="color: #66cc66;">&lt;/</span>table<span style="color: #66cc66;">&gt;</span>
    <span style="color: #66cc66;">&lt;/</span>fieldset<span style="color: #66cc66;">&gt;</span>
    <span style="color: #66cc66;">&lt;</span>p <span style="color: #000000; font-weight: bold;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;submit&quot;</span><span style="color: #66cc66;">&gt;</span>
      <span style="color: #66cc66;">&lt;</span>input type<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;submit&quot;</span> name<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;Submit&quot;</span> value<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;&lt;?php _e('Save Changes') ?&gt;&quot;</span> <span style="color: #66cc66;">/&gt;</span>
    <span style="color: #66cc66;">&lt;/</span>p<span style="color: #66cc66;">&gt;</span>
  <span style="color: #66cc66;">&lt;/</span>form<span style="color: #66cc66;">&gt;</span>
<span style="color: #66cc66;">&lt;/</span>div<span style="color: #66cc66;">&gt;</span>
<span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #66cc66;">&#125;</span>
&nbsp;
<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span> <span style="color: #66cc66;">!</span><span style="color: #000066;">class_exists</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'IMAPAuthentication'</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">class</span> IMAPAuthentication <span style="color: #66cc66;">&#123;</span>
        <span style="color: #808080; font-style: italic;">/*
         * Add an options pane for this plugin.
         */</span>
        <span style="color: #000000; font-weight: bold;">function</span> admin_menu<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
            add_options_page<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'IMAP Authentication'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'IMAP Authentication'</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">10</span><span style="color: #66cc66;">,</span> <span style="color: #000000; font-weight: bold;">__FILE__</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span>
        <span style="color: #66cc66;">&#125;</span>
&nbsp;
        <span style="color: #808080; font-style: italic;">/*
         * Return the mailbox option from the database, creating the option if it doesn't exist.
         */</span>
        <span style="color: #000000; font-weight: bold;">function</span> get_mailbox<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
            <span style="color: #000066;">global</span> <span style="color: #ff0000">$cache_nonexistantoptions</span><span style="color: #66cc66;">;</span>
&nbsp;
            <span style="color: #ff0000">$mailbox</span> <span style="color: #66cc66;">=</span> get_settings<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'imap_authentication_mailbox'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span>
            <span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">!</span> <span style="color: #ff0000">$mailbox</span> or <span style="color: #ff0000">$cache_nonexistantoptions</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'imap_authentication_mailbox'</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
                <span style="color: #ff0000">$mailbox</span> <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'{localhost:143}INBOX'</span><span style="color: #66cc66;">;</span>
                IMAPAuthentication<span style="color: #66cc66;">::</span><span style="color: #006600;">add_mailbox_option</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000">$mailbox</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span>
            <span style="color: #66cc66;">&#125;</span>
&nbsp;
            <span style="color: #b1b100;">return</span> <span style="color: #ff0000">$mailbox</span><span style="color: #66cc66;">;</span>
        <span style="color: #66cc66;">&#125;</span>
&nbsp;
        <span style="color: #808080; font-style: italic;">/*
         * Add the mailbox option to the database.
         */</span>
        <span style="color: #000000; font-weight: bold;">function</span> add_mailbox_option<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000">$mailbox</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
            add_option<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'imap_authentication_mailbox'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000">$mailbox</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'The mailbox to try and log into.'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span>
        <span style="color: #66cc66;">&#125;</span>
&nbsp;
        <span style="color: #808080; font-style: italic;">/*
         * Return the user_suffix option from the database, creating the option if it doesn't exist.
         */</span>
        <span style="color: #000000; font-weight: bold;">function</span> get_user_suffix<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
            <span style="color: #000066;">global</span> <span style="color: #ff0000">$cache_nonexistantoptions</span><span style="color: #66cc66;">;</span>
&nbsp;
            <span style="color: #ff0000">$user_suffix</span> <span style="color: #66cc66;">=</span> get_settings<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'imap_authentication_user_suffix'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span>
            <span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">!</span> <span style="color: #ff0000">$user_suffix</span> or <span style="color: #ff0000">$cache_nonexistantoptions</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'imap_authentication_user_suffix'</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
                <span style="color: #ff0000">$user_suffix</span> <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">''</span><span style="color: #66cc66;">;</span>
                IMAPAuthentication<span style="color: #66cc66;">::</span><span style="color: #006600;">add_user_suffix_option</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000">$user_suffix</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span>
            <span style="color: #66cc66;">&#125;</span>
&nbsp;
            <span style="color: #b1b100;">return</span> <span style="color: #ff0000">$user_suffix</span><span style="color: #66cc66;">;</span>
        <span style="color: #66cc66;">&#125;</span>
&nbsp;
        <span style="color: #808080; font-style: italic;">/*
         * Add the user_suffix option to the database.
         */</span>
        <span style="color: #000000; font-weight: bold;">function</span> add_user_suffix_option<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000">$user_suffix</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
            add_option<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'imap_authentication_user_suffix'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000">$user_suffix</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'A suffix to add to usernames (typically used to automatically add the domain part of the login).'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span>
        <span style="color: #66cc66;">&#125;</span>
&nbsp;
        <span style="color: #808080; font-style: italic;">// custom error handler</span>
        <span style="color: #000000; font-weight: bold;">function</span> eh<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000">$type</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000">$msg</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000">$file</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000">$line</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000">$context</span><span style="color: #66cc66;">&#41;</span>
        <span style="color: #66cc66;">&#123;</span>
            <span style="color: #ff0000">$error</span> <span style="color: #66cc66;">=</span> <span style="color: #ff0000">$error</span><span style="color: #66cc66;">.</span><span style="color: #ff0000">$msg</span><span style="color: #66cc66;">;</span>
        <span style="color: #66cc66;">&#125;</span>
&nbsp;
        <span style="color: #000000; font-weight: bold;">function</span> authenticate_user<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&amp;</span><span style="color: #ff0000">$user</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000">$password</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
        	<span style="color: #000066;">global</span> <span style="color: #ff0000">$wpdb</span><span style="color: #66cc66;">;</span>
&nbsp;
			<span style="color: #808080; font-style: italic;">// Apparently this method is no longer called for users who are not in the WP database</span>
&nbsp;
			<span style="color: #ff0000">$mbox</span> <span style="color: #66cc66;">=</span> imap_open<span style="color: #66cc66;">&#40;</span>IMAPAuthentication<span style="color: #66cc66;">::</span><span style="color: #006600;">get_mailbox</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000">$user</span><span style="color: #66cc66;">-&gt;</span><span style="color: #006600;">user_login</span><span style="color: #66cc66;">.</span>IMAPAuthentication<span style="color: #66cc66;">::</span><span style="color: #006600;">get_user_suffix</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000">$password</span><span style="color: #66cc66;">,</span> OP_HALFOPEN<span style="color: #66cc66;">|</span>OP_READONLY<span style="color: #66cc66;">&#41;</span> or <span style="color: #ff0000">$error</span> <span style="color: #66cc66;">=</span> imap_last_error<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span>
&nbsp;
			<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000">$mbox</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
				<span style="color: #ff0000">$userInfo</span> <span style="color: #66cc66;">=</span> get_userdatabylogin<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000">$user</span><span style="color: #66cc66;">-&gt;</span><span style="color: #006600;">user_login</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span>
				imap_close<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000">$mbox</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span>
				<span style="color: #b1b100;">return</span> <span style="color: #000000; font-weight: bold;">new</span> WP_User<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000">$userInfo</span><span style="color: #66cc66;">-&gt;</span><span style="color: #006600;">ID</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span>
			<span style="color: #66cc66;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #66cc66;">&#123;</span>
				do_action<span style="color: #66cc66;">&#40;</span> <span style="color: #ff0000;">'wp_login_failed'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000">$user</span><span style="color: #66cc66;">-&gt;</span><span style="color: #006600;">user_login</span> <span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span>
				<span style="color: #b1b100;">return</span> <span style="color: #000000; font-weight: bold;">new</span> WP_Error<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'incorrect_password'</span><span style="color: #66cc66;">,</span> __<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'&lt;strong&gt;ERROR&lt;/strong&gt;: Incorrect password. '</span><span style="color: #66cc66;">.</span><span style="color: #ff0000">$error</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span>
			<span style="color: #66cc66;">&#125;</span>
        <span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #000000; font-weight: bold;">function</span> check_password<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000">$unknown</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000">$enteredPassword</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000">$storedPassword</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000">$userID</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
			<span style="color: #ff0000">$user</span> <span style="color: #66cc66;">=</span> <span style="color: #000000; font-weight: bold;">new</span> WP_User<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000">$userID</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span>
			<span style="color: #b1b100;">return</span> IMAPAuthentication<span style="color: #66cc66;">::</span><span style="color: #006600;">authenticate_user</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000">$user</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000">$enteredPassword</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span>
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
        <span style="color: #808080; font-style: italic;">/*
         * Used to disable certain login functions, e.g. retrieving a
         * user's password.
         */</span>
        <span style="color: #000000; font-weight: bold;">function</span> disable_password<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
            login_header<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'Login'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'&lt;p class=&quot;message&quot;&gt;&lt;strong&gt;ERROR&lt;/strong&gt;: You can<span style="color: #000099; font-weight: bold;">\'</span>t do that here. This blog uses the IMAP login mechanism. Your password is set with your email account.&lt;/p&gt;'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'error'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span>
			<span style="color: #000066;">die</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span>
        <span style="color: #66cc66;">&#125;</span>
&nbsp;
        <span style="color: #808080; font-style: italic;">/*
         * Used to disable certain display elements, e.g. password
         * fields on profile screen.
         */</span>
        <span style="color: #000000; font-weight: bold;">function</span> show_password_fields<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000">$username</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
            <span style="color: #b1b100;">return</span> <span style="color: #000000; font-weight: bold;">false</span><span style="color: #66cc66;">;</span>
        <span style="color: #66cc66;">&#125;</span>
    <span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://neverusethisfont.com/blog/2009/02/imap-authentication-for-wordpress-271/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
