API
This is a user-contributed Extra. If you find issues or would like more info or help, please contact the author.
The WebLoginPE API
WebLoginPE is an Object Oriented PHP script. If you would like to extend WebLoginPE please use this document as a reference to it's API. If you are interested in extending the function of WebLoginPE through Evo Plugins, WebLoginPE invokes a suite of events throughout it's services that you can take advantage of.
Instantiation of the WebLoginPE object has 4 parameters, a Language array (required), a date format (optional), user image settings (optional), and type (optional).
Instance Variables
LanguageArray | An array of language specific phrases. | @var array @access public @see __construct() |
Report | Holds a message if one was generated. | @var string @access public @see FormatMessage() |
liHomeId | A comma separated list of Evo document IDs to attempt to redirect the user to after login. | @var string @access public @see login() @see LoginHomePage() |
loHomeId | The Evo document ID to redirect the user to after logout. | @var string @access public @see logout() @see LogoutHomePage() |
Type | the type of WebLoginPE (simple, register, profile, or taconite) | @var string @access protected |
Username | Value of $_POST['username']. | @var string @access protected |
Password | Value of $_POST['password']. | @var string @access protected |
User | The user object assembled from data queried from the web user tables | @var array @access protected @see QueryDbForUser() |
UserImageSettings | Dimensions for the user image | @var string @access protected @see CreateUserImage |
MessageTemplate | Template for messages returned by WebLoginPE | @var string; @access public @see FormatMessage; |
LoginErrorCount | Number of failed logins | @var string @access protected @see Authenticate |
CustomTable | Full table name of the custom extended user attributes table. | @var string @access protected @see CustomTable |
CustomFields | An array of column names for the extended user attributes table. | @var array @access protected @see CustomTable |
DateFormat | PHP strftime() format for dates in placeholders | @var string @access protected @see PlaceHolders |
Web Access Service Events
OnBeforeAddToGroup | Invoked immediately BEFORE a registrant is added to the groups specified in &groups. This event is useful if you need to add the user to an additional group, perhaps a mailing list group based on the value of a checkbox. The parameter passed in this event is an array, $GLOBAL['groups'], which you can modify with a plugin before the user is added. |
OnBeforeWebLogin | Invoked immediately BEFORE a user logs in. The parameters in this event are 'username', 'password', 'rememberme' and 'stayloggedin'. |
OnWebAuthentication | Invoked DURING login when authentication is verified. WebLoginPE uses industry standard techniques to authenticate a user, but, if you have your own authentication schematic, or you want to verify more than just "username" and "password" (for example CAPTCHA or retina scan… j/k), you can use a plugin tied to this event. WebLoginPE will first try to pass authentication to this plugin. If there is no response, it will use it's own authentication. Parameters are 'internalKey', 'username', 'form_password', 'db_password', 'rememberme', and 'stayloggedin'. |
OnWebLogin | Invoked immediately AFTER a user logs in. The parameter is an array including ALL the users attributes and extended attributes. |
OnBeforeWebSaveUser | Invoked BEFORE user attributes are saved to the DB. This is invoked in both Register() AND SaveUserProfile(). Parameters are 'Attributes' and 'ExtendedFields', so… all the users info. |
OnWebSaveUser | Invoked AFTER a user is saved to the DB. This is invoked in both Register() AND SaveUserProfile(). Parameters are 'mode' (new | update) and 'user' (an array of ALL the users attributes). |
OnWebChangePassword | Invoked AFTER a user changes their password. This is invoked in ActivateUser() (when a user forgot their password, gets it reset and sets a new one.), and in SaveUserProfile() IF the user's password is changed. Parameters are 'internalKey', 'username', and 'password' (the NEW password). |
OnViewUserProfile | Invoked EACH TIME a user's profile is viewed. This event could be useful for tracking profile hits. Parameters are 'internalKey' (the internalKey of the user who's profile is being viewed), 'username' (that user's username), 'viewerKey' (the internalKey of the viewer), 'viewername' (the username of the viewer). |
OnWebDeleteUser | Invoked When a user account/profile is deleted. You could have a plugin bound to this event that emails the administrator when a user is deleted??? Parameters are 'internalKey', 'username', and 'timestamp'. |
OnBeforeWebLogout | Invoked BEFORE a logged in user logs out. Parameters are 'userid' (the internalKey, kept for backwards compatibility with Raymond's original weblogin snippet), 'internalKey' (duh…), and 'username'. |
OnWebLogout | Invoked AFTER a logged in user logs out. Same parameters as "OnBeforeWebLogout", just fired AFTER logout. |
Public Methods
__construct( array $LanguageArray ) & WebLoginPE() |
WebLoginPE Class Constructor | @param array $LanguageArray An array of language specific strings. @return void @author Scotty Delicious |
FormatMessage( string $message ) | Sets a value for $this->Report which is set in the placeholder [+wlpe.message+]. This function is public and can be used to format a message for the calling script. |
@param string $message @return void @author Scotty Delicious |
Login( string $type, string $liHomeId ) | Perform all the necessary functions to establish a secure user session with permissions | @param string $type If type = 'taconite' do not call $this->LoginHomePage(). @param string $liHomeId Comma separated list of Evo document ID's to attempt to redirect to after login. @return void @author Scotty Delicious |
AutoLogin() | AutoLogin checks for a user cookie and logs the user in automatically | @return void @author Scotty Delicious |
Logout() | Destroy the user session and redirect or refresh. | @param string $type If type = 'taconite' do not call $this->LogoutHomePage(). @param int $loHomeId Evo document ID to redirect to after logout. @return void @author Scotty Delicious |
CustomTable( string $table, string $fields ) | Custom table checks for the specified extended user attributes table and creates it if it does not exist. It also checks for custom column names and inserts them into the extended user attributes table if they do not exist. |
@param string $table The name of the custom table (Default is "web_user_attributes_extended") @param string $fields A comma separated list of column names for the custom table. @return void @author Scotty Delicious |
Register( string $regType, string $groups, string $regRequired, string $notify, string $notifyTpl, string $notifySubject ) | Inserts a new user into the database. | @param string $regType 'instant' or 'verify' @param string $groups which webgroup('s) should the new user be added to. @param string $regRequired Comma separated list of required fields. @param string $notify Comma separated list of emails to notify of new registrations. @param string $notifyTpl Template for email notification message. @param string $notifySubject Subject line for email notification. @return void @author Raymond Irving @author Scotty Delicious |
PruneUsers( int $pruneDays ) | Removes non-activated user accounts older than the number of days specified in $pruneDays. | @param int $pruneDays The number of days to wait before removing non-activated users. @return void @author Scotty Delicious |
Template( string $chunk ) | Template takes a template parameter and checks to see if it is a chunk. If it is a chunk, returns the contents of the chunk, if it is not a chunk, tries to find a file of that name (or path) and gets its contents. If it is not a chunk or a file, returns the value passed as the parameter $chunk. |
@param string $chunk The name of a chunk to get. @return string HTML block. @author Scotty Delicious |
SaveUserProfile() | Updates the relevant tables for a given internalKey. | @return void @author Scotty Delicious |
RemoveUserProfile() | Deletes the table entries in the relevant tables for a given internalKey. | @return void @author Scotty Delicious |
ViewAllUsers( string $userTemplate ) | View all users stored in the web_users table. | @param string $userTemplate HTML template to display each web user. @return string HTML block containing all the users @author Scotty Delicious |
ViewUserProfile( string $username ) | ViewUserProfile displays sets the placeholders for the attributes of another site user | @param string $username The username of the other user's profile to view @return void @author Scotty Delicious |
SendMessageToUser() | SendMessageToUser allows site users to send email messages to each other. | @return void. @author Scotty Delicious |
ResetPassword() | Sets a random password | random key in the web_users.cachepwd field, then sends an email to the user with instructions and a URL to activate. |
@return void @author Raymond Irving @author Scotty Delicious |
ActivateUser() | Activates the user after they have requested to have their password reset. | @return void @author Raymond Irving @author Scotty Delicious |
PlaceHolders( string $dateFormat, array $inputHandler, string $UserImageSettings, string $MessageTemplate ) | Sets place holders using the Evo method setPlaceholder() for fields in web_user_attributes. | @param string $dateFormat The strftime() format set in the calling script. @param array $inputHandler An array of inputs to… uhh… handle? @param string $UserImageSettings The specifications for the user image. @param string $MessageTemplate The template for $this->Report. @return void @author Scotty Delicious |
RegisterScripts( string $customJs ) | Uses the Evo regClientStartupScript() method to load the jQuery scripts for taconite. Optionally, it can load a custom js file (passed as a parameter.) if needed. |
@param string $customJs URL to a custom javascript file to be loaded. @return void @author Scotty Delicious |
Protected Methods
OnBeforeWebLogin() | Invokes the Evo event OnBeforeWebLogin. | @return void @author Scotty Delicious |
Authenticate() | Authenticates the user or sets failure counts on error. | @return void @author Scotty Delicious |
OnBeforeWebLogout() | Invokes the Evo event OnBeforeWebLogout | @return void @author Scotty Delicious |
OnWebLogout() | Invokes the Evo event OnWebLogout | @return void @author Scotty Delicious |
UserDocumentGroups() | Find the web groups that this user is a member of. | @return void @author Raymond Irving @author Scotty Delicious |
LoginHomePage() | Redirect user to specified login page ($this->liHomeId). $this->liHomeId is an array, each document ID is queried. The user is redirected to the first page that they have permission to view. If $this->liHomeId is empty, refresh the current page. |
@return void @author Raymond Irving @author Scotty Delicious |
LogoutHomePage() | Redirect user to specified logout page ($this->loHomeId). If $this->loHomeId is empty, refresh the current page. |
@return void @author Raymond Irving @author Scotty Delicious |
SessionHandler( string $directive ) | Starts the user session on login success. Destroys session on error or logout. | @param string $directive ('start' or 'destroy') @return void @author Raymond Irving @author Scotty Delicious |
QueryDbForUser( string $Username ) | Queries the web_users table for $_POST['username']. | @param string $Username The username of the user to query for. @return void @author Raymond Irving @author Scotty Delicious |
UserIsBlocked() | Queries the web_user_attributes table to see if this user should be blocked. If the user IS blocked, prevent them from logging in. |
@return void @author Raymond Irving @author Scotty Delicious |
MakeDateForDb( string $date ) | Returns a UNIX timestamp for the string provided. | @param string $date A date in the format MM-DD-YYY @return int Returns a UNIX timestamp for the date provided. @author Scotty Delicious |
CreateUserImage() | Creates an image for the user profile from a user uploaded image. This image is renamed to the username and moved to the webloginpe/userimages/ folder. The URL to this image is returned to be stored in the web_user_attributes table. |
@return string A URL to the user image created. @author Scotty Delicious |
StringForGenderInt( int $genderInt ) | Returns a string ('Male', 'Female', or 'Unknown') for the integer $genderInt (integer stored in web_user_attributes). | @param int $genderInt (0, 1, or 2) @return string (0 = 'Unknown', 1 = 'Male', 2 = 'Female') @author Scotty Delicious |
StringForCountryInt( int $countryInt ) | Returns a string (the name of the country) for the integer $countryInt (integer stored in web_user_attributes). | @param int $countryInt @return string The name of the country @author Scotty Delicious |
ValidateEmail( string $Email ) | Validate an email address by regex and MX reccord | @param string $Email An email address. @return void @author Scotty Delicious |
GeneratePassword( int $length ) | Generate a random password of a specified number of characters. [a-z][A-Z][2-9]. | @param int $length @return void @author Raymond Irving @author Scotty Delicious |
FetchAll( data source $ds ) | Fetch all rows in a data source recursively | @param string $ds A data source. @return array $all An array of the data source @author Scotty Delicious |
Suggest an edit to this page.