[Pkg-owncloud-commits] [owncloud] 78/394: LDAP: convert binary objectGUID-value to string before storing in DB
David Prévot
taffit at alioth.debian.org
Fri Nov 8 23:11:32 UTC 2013
This is an automated email from the git hooks/post-receive script.
taffit pushed a commit to annotated tag v4.5.10
in repository owncloud.
commit b3245ac327131287b524f643b31fad2d122179ad
Author: Arthur Schiwon <blizzz at owncloud.com>
Date: Thu Nov 8 23:01:28 2012 +0100
LDAP: convert binary objectGUID-value to string before storing in DB
---
apps/user_ldap/lib/access.php | 36 +++++++++++++++++++++++++++++++++++-
1 file changed, 35 insertions(+), 1 deletion(-)
diff --git a/apps/user_ldap/lib/access.php b/apps/user_ldap/lib/access.php
index dd195f2..b8e50d8 100644
--- a/apps/user_ldap/lib/access.php
+++ b/apps/user_ldap/lib/access.php
@@ -73,7 +73,13 @@ abstract class Access {
if(isset($result[$attr]) && $result[$attr]['count'] > 0) {
$values = array();
for($i=0;$i<$result[$attr]['count'];$i++) {
- $values[] = $this->resemblesDN($attr) ? $this->sanitizeDN($result[$attr][$i]) : $result[$attr][$i];
+ if($this->resemblesDN($attr)) {
+ $values[] = $this->sanitizeDN($result[$attr][$i]);
+ } elseif(strtolower($attr) == 'objectguid') {
+ $values[] = $this->convertObjectGUID2Str($result[$attr][$i]);
+ } else {
+ $values[] = $result[$attr][$i];
+ }
}
return $values;
}
@@ -686,4 +692,32 @@ abstract class Access {
}
return $uuid;
}
+
+ /**
+ * @brief converts a binary ObjectGUID into a string representation
+ * @param $oguid the ObjectGUID in it's binary form as retrieved from AD
+ * @returns String
+ *
+ * converts a binary ObjectGUID into a string representation
+ * http://www.php.net/manual/en/function.ldap-get-values-len.php#73198
+ */
+ private function convertObjectGUID2Str($oguid) {
+ $hex_guid = bin2hex($oguid);
+ $hex_guid_to_guid_str = '';
+ for($k = 1; $k <= 4; ++$k) {
+ $hex_guid_to_guid_str .= substr($hex_guid, 8 - 2 * $k, 2);
+ }
+ $hex_guid_to_guid_str .= '-';
+ for($k = 1; $k <= 2; ++$k) {
+ $hex_guid_to_guid_str .= substr($hex_guid, 12 - 2 * $k, 2);
+ }
+ $hex_guid_to_guid_str .= '-';
+ for($k = 1; $k <= 2; ++$k) {
+ $hex_guid_to_guid_str .= substr($hex_guid, 16 - 2 * $k, 2);
+ }
+ $hex_guid_to_guid_str .= '-' . substr($hex_guid, 16, 4);
+ $hex_guid_to_guid_str .= '-' . substr($hex_guid, 20);
+
+ return strtoupper($hex_guid_to_guid_str);
+ }
}
\ No newline at end of file
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-owncloud/owncloud.git
More information about the Pkg-owncloud-commits
mailing list