diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/user.php | 19 | ||||
-rw-r--r-- | lib/user/backend.php | 2 |
2 files changed, 19 insertions, 2 deletions
diff --git a/lib/user.php b/lib/user.php index 65f899aa27c..b91abd71fe6 100644 --- a/lib/user.php +++ b/lib/user.php @@ -269,10 +269,25 @@ class OC_User { /**
* @brief Sets user display name for session
*/
- private static function setDisplayName($uid) { - $_SESSION['display_name'] = self::determineDisplayName($uid);
+ public static function setDisplayName($uid, $displayName = null) { + $result = false; + if ($displayName ) {
+ foreach(self::$_usedBackends as $backend) {
+ if($backend->implementsActions(OC_USER_BACKEND_SET_DISPLAYNAME)) {
+ if($backend->userExists($uid)) {
+ $success |= $backend->setDisplayName($uid, $displayName);
+ }
+ }
+ } + } else { + $displayName = self::determineDisplayName($uid); + $result = true; + } + $_SESSION['display_name'] = $displayName; + return result;
} + /**
* @brief get display name
* @param $uid The username
diff --git a/lib/user/backend.php b/lib/user/backend.php index fe37a64cc03..efea622e312 100644 --- a/lib/user/backend.php +++ b/lib/user/backend.php @@ -36,6 +36,7 @@ define('OC_USER_BACKEND_SET_PASSWORD', 0x000010); define('OC_USER_BACKEND_CHECK_PASSWORD', 0x000100); define('OC_USER_BACKEND_GET_HOME', 0x001000); define('OC_USER_BACKEND_GET_DISPLAYNAME', 0x010000); +define('OC_USER_BACKEND_SET_DISPLAYNAME', 0x010000); /** @@ -52,6 +53,7 @@ abstract class OC_User_Backend implements OC_User_Interface { OC_USER_BACKEND_CHECK_PASSWORD => 'checkPassword', OC_USER_BACKEND_GET_HOME => 'getHome', OC_USER_BACKEND_GET_DISPLAYNAME => 'getDisplayName', + OC_USER_BACKEND_SET_DISPLAYNAME => 'setDisplayName', ); /** |