%META:TOPICINFO{author="TWikiContributor" date="1295068305" format="1.1" version="1"}%
---+!! !NewUserPlugin
<!--
   Contributions to this plugin are appreciated. Please update the plugin page at
   http://twiki.org/cgi-bin/view/Plugins/NewUserPlugin or provide feedback at
   http://twiki.org/cgi-bin/view/Plugins/NewUserPluginDev.
   If you are a TWiki contributor please update the plugin in the SVN repository.
-->
<sticky><div style="float:right; background-color:#EBEEF0; margin:0 0 20px 20px; padding: 0 10px 0 10px;">
%TOC{title="Page contents"}%
</div></sticky>
%SHORTDESCRIPTION%

---++ Description

This plugin is of use in those cases where TWiki users are registered and authenticated externally,
for example using LDAP.
So users are not registered to TWiki using its own registration workflow and therefore don't
have a user topic in the %USERSWEB% web.
This plugin fills that gap and creates a user's topic if it does not yet exist.

---++ Settings

<!--
   * Set SHORTDESCRIPTION = Create a user topic if it does not exist yet
-->
You can customize the template that is used to create a new user topic
by setting the =NEWUSERTEMPLATE= preference variable (e.g. in %USERSWEB%.TWikiPreferences):

   * Set NEWUSERTEMPLATE = %SYSTEMWEB%.NewLdapUserTemplate

If not set, it defaults to <nop>NewUserTemplate. This plugin comes with an example template,
NewLdapUserTemplate, to illustrate how to extract user data from an LDAP directory and integrate
the information into the user's topic dynamically. You will need to install the
TWiki:Plugins/LdapNgPlugin and the TWiki:Plugins/GluePlugin to make use of it.

---++ Syntax

On creation of the user home topic only =%<nop>WIKINAME%=, =%<nop>USERNAME%= and =%<nop>WIKIUSERNAME%=
get expanded by default. To expand additional VARIABLES, you can use the =%EXPAND{}%= syntax.
All percent signs have to be escaped by =$percnt=, deeper recursion levels may
use =$dollar=, too. Multiline EXPANDs are not supported.

Example:
<verbatim>
%EXPAND{$percntGMTIME{"$year-$mo-$day"}$percnt}%
</verbatim>

---++ Installation Instructions

You do not need to install anything in the browser to use this extension. The following instructions are for the administrator who installs the extension on the server where TWiki is running.

Like many other TWiki extensions, this module is shipped with a fully
automatic installer script written using the Build<nop>Contrib.
   * If you have TWiki 4.2 or later, you can install from the =configure= interface (Go to Plugins->Find More Extensions)
      * See the [[http://twiki.org/cgi-bin/view/Plugins/BuildContribInstallationSupplement][installation supplement]] on TWiki.org for more information.
   * If you have any problems, then you can still install manually from the command-line:
      1 Download one of the =.zip= or =.tgz= archives
      1 Unpack the archive in the root directory of your TWiki installation.
      1 Run the installer script ( =perl &lt;module&gt;_installer= )
      1 Run =configure= and enable the module, if it is a plugin.
      1 Repeat for any missing dependencies.
   * If you are *still* having problems, then instead of running the installer script:
      1 Make sure that the file permissions allow the webserver user to access all files.
      1 Check in any installed files that have existing =,v= files in your existing install (take care *not* to lock the files when you check in)
      1 Manually edit !LocalSite.cfg to set any configuration variables.

%IF{"defined 'SYSTEMWEB'" else="<div class='twikiAlert'>%X% WARNING: SYSTEMWEB is not defined in this TWiki. Please add these definitions to your %MAINWEB%.TWikiPreferences, if they are not already there:<br><pre>   * <nop>Set SYSTEMWEB = %<nop>TWIKIWEB%<br>   * <nop>Set USERSWEB = %<nop>MAINWEB%</pre></div>"}%


---++ Plugin Info

This work is partly funded by [[http://www.hennerich.de][T+T Hennerich <nop>GmbH]].

|  Plugin Author: | TWiki:Main.MichaelDaum |
|  Copyright: | &copy; 2006-2008, Michael Daum http://michaeldaumconsulting.com; <br /> &copy; 2006-2010, TWiki:TWiki/TWikiContributor |
|  License: | GPL ([[http://www.gnu.org/copyleft/gpl.html][GNU General Public License]]) |
|  Plugin Version: | 2011-01-14 |
|  Change History: | <!-- versions below in reverse order -->&nbsp; |
|  2011-01-14: | TWikibug:Item6530: Doc improvements |
|  2010-05-02: | TWikibug:Item6433: Doc improvements; changing TWIKIWEB to SYSTEMWEB |
|  15 Sep 2008 | TWiki:Main.OliverKrueger: added EXPAND feature, removed noise in debug.txt |
|  12 Feb 2008 | remove leading/trailing whitespaces from NEWUSERTEMPLATE filename |
|  09 Jan 2008 | fixed spelling error |
|  03 Jan 2008 | fixed default values for NEWUSERTEMPLATE, clearing unset LDAP attributes |
|  23 Oct 2007 | work around infinite loop in combination with <nop>ActionTrackerPlugin |
|  17 Sep 2007 | replace usernames in formtemplates as well as in the topic text |
|  18 Dec 2006 | initial release |
|  Dependencies: | None |
|  Plugin Home: | TWiki:Plugins/%TOPIC% |
|  Feedback: | TWiki:Plugins/%TOPIC%Dev |
|  Appraisal: | TWiki:Plugins/%TOPIC%Appraisal |

__Related Topics:__ NewLdapUserTemplate, RenderLdapUser, %SYSTEMWEB%.TWikiPlugins, %SYSTEMWEB%.DeveloperDocumentationCategory, %SYSTEMWEB%.AdminDocumentationCategory, %SYSTEMWEB%.TWikiPreferences
