Skip to content
This repository has been archived by the owner on Nov 25, 2020. It is now read-only.

Commit

Permalink
Auth.remote: test if ajxp_gluecode_updateRole function exists to avoi…
Browse files Browse the repository at this point in the history
…d errors if the glueCode is inserted many times.
  • Loading branch information
cdujeu committed Oct 21, 2013
1 parent 61fecaf commit 7f533f1
Showing 1 changed file with 25 additions and 21 deletions.
46 changes: 25 additions & 21 deletions core/src/plugins/auth.remote/glueCode.php
Expand Up @@ -75,31 +75,35 @@
* @param array $loginData
* @param AbstractAjxpUser $userObject
*/
function ajxp_gluecode_updateRole($loginData, &$userObject)
{
$authPlug = ConfService::getAuthDriverImpl();
$rolesMap = $authPlug->getOption("ROLES_MAP");
if(!isSet($rolesMap) || strlen($rolesMap) == 0) return;
// String like {key:value,key2:value2,key3:value3}
$rolesMap = explode(",", $rolesMap);
$newMap = array();
foreach ($rolesMap as $value) {
$parts = explode(":", trim($value));
$roleId = trim($parts[1]);
$roleObject = AuthService::getRole($roleId);
if ($roleObject != null) {
$newMap[trim($parts[0])] = $roleObject;
$userObject->removeRole($roleId);
if(!function_exists("ajxp_gluecode_updateRole")){

function ajxp_gluecode_updateRole($loginData, &$userObject)
{
$authPlug = ConfService::getAuthDriverImpl();
$rolesMap = $authPlug->getOption("ROLES_MAP");
if(!isSet($rolesMap) || strlen($rolesMap) == 0) return;
// String like {key:value,key2:value2,key3:value3}
$rolesMap = explode(",", $rolesMap);
$newMap = array();
foreach ($rolesMap as $value) {
$parts = explode(":", trim($value));
$roleId = trim($parts[1]);
$roleObject = AuthService::getRole($roleId);
if ($roleObject != null) {
$newMap[trim($parts[0])] = $roleObject;
$userObject->removeRole($roleId);
}
}
}
$rolesMap = $newMap;
if (isset($loginData["roles"]) && is_array($loginData["roles"])) {
foreach ($loginData["roles"] as $role) {
if (isSet($rolesMap[$role])) {
$userObject->addRole($rolesMap[$role]);
$rolesMap = $newMap;
if (isset($loginData["roles"]) && is_array($loginData["roles"])) {
foreach ($loginData["roles"] as $role) {
if (isSet($rolesMap[$role])) {
$userObject->addRole($rolesMap[$role]);
}
}
}
}

}


Expand Down

0 comments on commit 7f533f1

Please sign in to comment.