Add function to load user account

This commit is contained in:
Matias Griese
2014-10-10 15:02:56 +03:00
parent fd9816c177
commit 2fb8fb62c6
2 changed files with 107 additions and 0 deletions

View File

@@ -0,0 +1,81 @@
title: Site
form:
validation: loose
fields:
content:
type: section
title: Account
fields:
username:
type: unset
password:
type: password
size: large
label: Password
validate:
required: true
email:
type: text
size: large
label: Email
validate:
required: true
fullname:
type: text
size: large
label: Full name
validate:
required: true
title:
type: text
size: large
label: Title
admin:
type: section
title: Admin Access
fields:
access.admin.super:
type: toggle
label: Super user
default: 0
highlight: 1
options:
1: Yes
0: No
validate:
type: bool
access.admin.login:
type: toggle
label: Admin login
default: 0
highlight: 1
options:
1: Yes
0: No
validate:
type: bool
site:
type: section
title: Site Access
fields:
access.site.login:
type: toggle
label: Site login
default: 1
highlight: 1
options:
1: Yes
0: No
validate:
type: bool

View File

@@ -1,7 +1,9 @@
<?php
namespace Grav\Common\User;
use Grav\Common\Data\Blueprints;
use Grav\Common\Data\Data;
use Grav\Common\File\CompiledYamlFile;
/**
* User object
@@ -11,6 +13,30 @@ use Grav\Common\Data\Data;
*/
class User extends Data
{
/**
* Load user account.
*
* Always creates user object. To check if user exists, use $this->exists().
*
* @param string $username
* @return User
*/
public static function load($username)
{
// FIXME: validate directory name
$blueprints = new Blueprints('blueprints://user');
$blueprint = $blueprints->get('account');
$file = CompiledYamlFile::instance(ACCOUNTS_DIR . $username . YAML_EXT);
$content = $file->content();
if (!isset($content['username'])) {
$content['username'] = $username;
}
$user = new User($content, $blueprint);
$user->file($file);
return $user;
}
/**
* Authenticate user.
*