<h1>Project "FreeSWITCH user-contributed scripts, etc" received a push.</h1>
<h2>branch: master updated</h2>
<pre>
via: 55ef55a5a9e951b26c52b3d2f0e5f902e568f1f9 (commit)
from: ca8489d71e127d5ff7beafbd91bcf5f9c683dd8d (commit)
</pre>= COMMIT LOG ===========================================================
<div class="highlight"><pre>committer: Mathieu Parent
comments:
MediaBrotha: LDAP search and result
<span style="color: #000080; font-weight: bold">diff --git a/sathieu/cisco-xml/lib/MediaBrotha/Backend/LDAP.php b/sathieu/cisco-xml/lib/MediaBrotha/Backend/LDAP.php</span>
<span style="color: #000080; font-weight: bold">index 2b04351..a1a0e98 100644</span>
<span style="color: #A00000">--- a/sathieu/cisco-xml/lib/MediaBrotha/Backend/LDAP.php</span>
<span style="color: #00A000">+++ b/sathieu/cisco-xml/lib/MediaBrotha/Backend/LDAP.php</span>
<span style="color: #800080; font-weight: bold">@@ -50,16 +50,22 @@ class MediaBrotha_Backend_LDAP extends MediaBrotha_Backend {</span>
        // Browsing
        public function mediaFromBufferItem($entry) {
<span style="color: #A00000">-                if ($entry) {</span>
<span style="color: #A00000">-                        $media = new MediaBrotha_Media(</span>
<span style="color: #00A000">+                if (is_a($entry, 'Net_LDAP2_Entry')) {</span>
<span style="color: #00A000">+                        return new MediaBrotha_Media(</span>
                                'ldap:///'.$entry->dn(),
                                Array(
                                        'display_name' => $entry->dn(), //$entry->getValue('sn', 'single'),
                                ),
                                'text/directory'
<span style="color: #A00000">-                                //$finfo->file($file->getPathname(), FILEINFO_MIME_ENCODING);</span>
                        );
<span style="color: #A00000">-                        return $media;</span>
<span style="color: #00A000">+                } else {</span>
<span style="color: #00A000">+                        return new MediaBrotha_Media(</span>
<span style="color: #00A000">+                                'ldap:///',</span>
<span style="color: #00A000">+                                Array(</span>
<span style="color: #00A000">+                                        'display_name' => $entry[0].': '.$entry[1],</span>
<span style="color: #00A000">+                                ),</span>
<span style="color: #00A000">+                                'text/directory'</span>
<span style="color: #00A000">+                        );</span>
                }
        }
<span style="color: #800080; font-weight: bold">@@ -73,8 +79,10 @@ class MediaBrotha_Backend_LDAP extends MediaBrotha_Backend {</span>
                if ($this->_isHandled($media)) {
                        return Array(
                                '_default',
<span style="color: #00A000">+                                'detail',</span>
                                'browse',
                                'search',
<span style="color: #00A000">+                                '_search-result',</span>
                        );
                } else {
                        return parent::getMediaActions($media);
<span style="color: #800080; font-weight: bold">@@ -92,13 +100,48 @@ class MediaBrotha_Backend_LDAP extends MediaBrotha_Backend {</span>
                                if ($basedn && ($basedn{0} = '/')) {
                                        $basedn = substr($basedn, 1);
                                }
<span style="color: #A00000">-                                $ldap_search = $this->_ldap->search($basedn, NULL,</span>
<span style="color: #A00000">-                                        Array());</span>
<span style="color: #00A000">+                                $ldap_search = $this->_ldap->search($basedn, NULL, Array());</span>
                                return new MediaBrotha_MediaIterator($this, $ldap_search);
<span style="color: #00A000">+                        case 'detail':</span>
<span style="color: #00A000">+                                $uri = $media->getURI();</span>
<span style="color: #00A000">+                                if (($this::parseLDAPURI($uri, PHP_URL_SCHEME) != 'ldap') || !$this->isURISafe($uri)) {</span>
<span style="color: #00A000">+                                        return false;</span>
<span style="color: #00A000">+                                }</span>
<span style="color: #00A000">+                                $basedn = $this::parseLDAPURI($uri, PHP_URL_PATH);</span>
<span style="color: #00A000">+                                if ($basedn && ($basedn{0} = '/')) {</span>
<span style="color: #00A000">+                                        $basedn = substr($basedn, 1);</span>
<span style="color: #00A000">+                                }</span>
<span style="color: #00A000">+                                $ldap_entry = $this->_ldap->getEntry($basedn);</span>
<span style="color: #00A000">+                                $it = new ArrayIterator();</span>
<span style="color: #00A000">+                                foreach ($ldap_entry->attributes() as $attr) {</span>
<span style="color: #00A000">+                                        foreach($ldap_entry->getValue($attr, 'all') as $value) {</span>
<span style="color: #00A000">+                                                $it[] = Array($attr, $value);</span>
<span style="color: #00A000">+                                        }</span>
<span style="color: #00A000">+                                }</span>
<span style="color: #00A000">+                                return new MediaBrotha_MediaIterator($this, $it);</span>
                        case '_default':
                        case 'search':
<span style="color: #00A000">+                        case '_search-result':</span>
                                $form = new MediaBrotha_Form();
                                $form->setTitle('search');
<span style="color: #00A000">+                                $form->addField(Array(</span>
<span style="color: #00A000">+                                        'name' => 'backend',</span>
<span style="color: #00A000">+                                        'value' => 'LDAP',</span>
<span style="color: #00A000">+                                        'visibility' => 'hidden',</span>
<span style="color: #00A000">+                                        )</span>
<span style="color: #00A000">+                                );</span>
<span style="color: #00A000">+                                $form->addField(Array(</span>
<span style="color: #00A000">+                                        'name' => 'action',</span>
<span style="color: #00A000">+                                        'value' => '_search-result',</span>
<span style="color: #00A000">+                                        'visibility' => 'hidden',</span>
<span style="color: #00A000">+                                        )</span>
<span style="color: #00A000">+                                );</span>
<span style="color: #00A000">+                                $form->addField(Array(</span>
<span style="color: #00A000">+                                        'name' => 'uri',</span>
<span style="color: #00A000">+                                        'value' => 'ldap://',</span>
<span style="color: #00A000">+                                        'visibility' => 'hidden',</span>
<span style="color: #00A000">+                                        )</span>
<span style="color: #00A000">+                                );</span>
                                $search_fields = Array(
                                        'sn' => Array('display_name' => 'last name'),
                                        'givenName' => Array('display_name' => 'first name'),
<span style="color: #800080; font-weight: bold">@@ -124,22 +167,15 @@ class MediaBrotha_Backend_LDAP extends MediaBrotha_Backend {</span>
                                        }
                                        $form->addField($field);
                                }
<span style="color: #A00000">-                                if (empty($_GET['ldap_search'])) {</span>
<span style="color: #A00000">-                                        MediaBrotha_Core::addCallback('MediaBrotha_Backend_LDAP::searchCallback');</span>
<span style="color: #00A000">+                                if ($action !== '_search-result') {</span>
                                        return $form;
                                } else {
<span style="color: #A00000">-                                        $ldap_search = $this->_ldap->search(NULL, $filter,</span>
<span style="color: #A00000">-                                                Array('scope' => 'sub'));</span>
<span style="color: #00A000">+                                        $ldap_search = $this->_ldap->search(NULL, $filter, Array('scope' => 'sub'));</span>
                                        return new MediaBrotha_MediaIterator($this, $ldap_search);
                                }
                        default:
                                return parent::doMediaAction($action, $media);
                }
        }
<span style="color: #A00000">-        static public function searchCallback() {</span>
<span style="color: #A00000">-                $_GET['backend'] = 'LDAP';</span>
<span style="color: #A00000">-                $_GET['action'] = 'search';</span>
<span style="color: #A00000">-                $_GET['ldap_search'] = '1';</span>
<span style="color: #A00000">-        }</span>
}
</pre></div>
========================================================================<pre>
Summary of changes:
sathieu/cisco-xml/lib/MediaBrotha/Backend/LDAP.php | 66 +++++++++++++++-----
1 files changed, 51 insertions(+), 15 deletions(-)
</pre>
<p>this email was generated because of /git/your-repo.git/hooks/post-receive by the file /git-core/contrib/hooks/post-receive-email<br />
For more info, see <a href="http://blog.chomperstomp.com/?p=630">http://blog.chomperstomp.com/?p=630</a>
-- <br />
FreeSWITCH user-contributed scripts, etc</p>