summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/user.php19
-rw-r--r--lib/user/backend.php2
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',
);
/**