Skip to content
Toggle navigation
Toggle navigation
This project
Loading...
Sign in
Tenzing
/
Tz Tools
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Issue Boards
Files
Commits
Network
Compare
Branches
Tags
305bda06
authored
2010-04-13 15:01:13 +0000
by
Chris Boden
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
Added Auth library
1 parent
b6849213
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
137 additions
and
0 deletions
com/Auth/Auth.php
com/Auth/Auth.php
0 → 100644
View file @
305bda0
<?php
class
Auth
{
const
REG_METH_AUTO_REG
=
1
;
const
REG_METH_VALID_EMAIL
=
2
;
const
FORGOT_METH_VALID_EMAIL
=
1
;
const
FORGOT_METH_RAND_PASS
=
2
;
const
ACTION_ACTIVATE
=
'activate_account'
;
public
static
function
make
()
{
static
$made
=
false
;
if
(
true
===
$made
)
{
throw
new
Exception
(
'Auth has already been instantiated'
);
}
$made
=
true
;
// if _GET activate self::activate();
}
/**
* Attempts to login the user
* @param {String} $username
* @param {String} $password
* @param {Boolean} $remember
* @returns WP_User instance
* @throws LogicException If headers have already been passed
* @throws InvalidArgumentException If the authentication is invalid
*/
public
static
function
login
(
$username
,
$password
,
$remember
=
true
)
{
if
(
headers_sent
())
{
throw
new
LogicException
(
'Unable to login because headers have been sent'
);
}
$auth
=
_signon
(
Array
(
'user_login'
=>
$username
,
'user_password'
=>
esc_sql
(
$password
)
,
'remember'
=>
$remember
));
$ref
=
new
ReflectionObject
(
$auth
);
if
(
$ref
->
name
==
'WP_User'
)
{
return
$auth
;
}
throw
new
InvalidArgumentException
(
'Invalid username/password'
);
//$auth->get_error_message()); this would be nice except it links to a wp-page
}
/**
* Attempts to log the user out
* @returns Boolean
* @throws LogicException If HTTP headers have already been sent
*/
public
static
function
logout
()
{
if
(
headers_sent
())
{
throw
new
LogicException
(
'Unable to logout because headers have been sent'
);
}
_logout
();
return
true
;
}
public
static
function
register
(
$user_data
=
Array
(),
$registration_method
)
{
}
public
static
function
activate
()
{
do_action
(
self
::
ACTION_ACTIVATE
,
$user_id
);
}
public
static
function
forgot_password
(
$username
,
$forgot_method
)
{
}
}
class
Auth_Validation
{
public
static
$errors
=
Array
();
/**
* @rule Not blank
* @rule Valid WordPress username
* @returns Boolean
*/
public
static
function
username
(
$val
)
{
if
(
empty
(
$val
))
{
self
::
$errors
[]
=
'Username is blank'
;
return
false
;
}
require_once
(
ABSPATH
.
WPINC
.
DIRECTORY_SEPARATOR
.
'registration.php'
);
if
(
!
validate_username
(
$val
))
{
self
::
$errors
[]
=
'Username must be at least 4 characters, letters and numbers only'
;
return
false
;
}
if
(
username_exists
(
$_POST
[
'reg_username'
]))
{
self
::
$errors
[]
=
'Username already exists'
;
return
false
;
}
return
true
;
}
/**
* @rule Not blank
* @returns Boolean
*/
public
static
function
password
(
$val
)
{
if
(
empty
(
$val
))
{
self
::
$errors
[]
=
'Password can not be blank'
;
return
false
;
}
self
::
$pass_check
=
$val
;
return
true
;
}
/**
* @rule Valid email address (*@*.*)
* @returns Boolean
*/
public
static
function
email
(
$val
)
{
if
(
!
(
boolean
)
filter_var
(
$val
,
FILTER_VALIDATE_EMAIL
))
{
self
::
$errors
[]
=
'Invalid email address'
;
return
false
;
}
if
(
false
!==
email_exists
(
$val
))
{
self
::
$errors
[]
=
'Email address already registered'
;
return
false
;
}
return
true
;
}
}
?>
\ No newline at end of file
Please
register
or
sign in
to post a comment