summaryrefslogtreecommitdiff
path: root/html/app/controllers
diff options
context:
space:
mode:
Diffstat (limited to 'html/app/controllers')
-rw-r--r--html/app/controllers/Auth.php28
1 files changed, 23 insertions, 5 deletions
diff --git a/html/app/controllers/Auth.php b/html/app/controllers/Auth.php
index 6555f1c..b9314ff 100644
--- a/html/app/controllers/Auth.php
+++ b/html/app/controllers/Auth.php
@@ -31,25 +31,43 @@ class Auth {
$req = Registry::get('REQUEST');
// get the record of the target user
- $record = User_model::checkUser('email', $req->POST['email']);
+ $record = User_model::checkUser($req->POST['email']);
// if no user exists, return false
if ($record === false) return false;
-
+
+ // user is valid; check user password
// create a user object
- $user = (new User())
+ $user = (new Classroom_user())
+ ->setID($record['id'])
->setUserName($record['email'])
->setPassword($record['password'])
- ->setRoles(json_decode($record['roles']))
->setEnabled($record['active']);
// let user manager to validate user credentials
- $userManager = new UserManager();
+ $userManager = new Classroom_manager();
if ($userManager->isPasswordValid($user, $req->POST['password'])) {
+
+ // get user's security attributes
+ $attributes = User_Model::getUser($record['id']);
+ $user
+ ->setRoles(json_decode($attributes['Roles_json']))
+ ->setPrivileges(
+ explode( // example transform `[2,7] . [[1],[5,6]]` to `[2,7,1,5,6]`
+ str_replace(
+ ['[', ']'], // remove square parenthesis
+ '',
+ $attributes['RootPrivileges_json'] . $attributes['SubPrivileges_json']
+ ),
+ ','
+ )
+ );
+
// login OK, set Token in session
$userManager->createUserToken($user);
+ return true;
} else {
return false;