ФорумПрограммированиеPHP для идиотов → active directory

active directory

  • artoodetoo

    Сообщения: 5139 Репутация: N Группа: в ухо

    Spritz 17 сентября 2009 г. 9:27, спустя 22 минуты 14 секунд

    я не знаю. сделай что-нибудь правильное ;)
    ιιlllιlllι унц-унц
  • artoodetoo

    Сообщения: 5139 Репутация: N Группа: в ухо

    Spritz 17 сентября 2009 г. 21:15, спустя 11 часов 48 минут 8 секунд

    Дийкстра говорил: "человек программирующий на Бейсике уже не станет хорошим программистом".
    Глупо переносить представления о «правильной программе» из Джавы в Пыху. И наоборот тоже.
    ιιlllιlllι унц-унц
  • Trej Gun

    Сообщения: 5299 Репутация: N Группа: в ухо

    Spritz 18 сентября 2009 г. 0:51, спустя 3 часа 35 минут 26 секунд

    artoodetoo, очень не глупо
    пыхва все больше похожа на жаву
  • Trej Gun

    Сообщения: 5299 Репутация: N Группа: в ухо

    Spritz 18 сентября 2009 г. 1:03, спустя 12 минут 20 секунд



    class MyLDAPSearch{
       private $ldapServer;
       private $user;
       private $password;
       private $userGroup;
       private $dn;
       private $ds;

    public function __construct($ldapServer,$user,$password,$userGroup,$dn){
       $this->ldapServer = $ldapServer;
       $this->user = $user;
       $this->password = $password;
       $this->userGroup = $userGroup;
       $this->dn = $dn;
    }

    public function connect(){
       // Set connection
       $this->ds = ldap_connect('ldap://'.$this->ldapServer) or throw new Exception('Cannot connect');
       ldap_set_option($this->ds, LDAP_OPT_PROTOCOL_VERSION, 3) or throw new Exception('LDAP does not support protocol version 3');
       ldap_bind($this->ds, $this->user.'@intranet.company.ru', $this->password) or throw new Exception('Cannot bind to server');
    }

    public function search(){
       $sr = ldap_search($this->ds, $this->dn, '(&(objectClass=user)(memberOf=CN='.$this->userGroup.','.$this->dn.'))',array('displayname','cn','mail'));
       $entry = ldap_get_entries($this->ds, $sr);
       ldap_unbind($ds);
       return $entry;
    }

    }

    $myldap = new MyLDAPSearch('ourldapserver','superuser','password','My Group','CN=Users,DC=intranet,DC=company,DC=ru')
    $myldap->connect();
    $entry = $myldap->search();

    // а это в шаблонизатор


    if ($entry['count'])
    {
           // Print result
           echo 'Found entries: '.$entry['count']."<br /><br />\n";
           foreach ($entry as $id => &$e)
           {
                   if (is_integer($id))
                   {
                           echo 'Name: '.$e['displayname'][0]."<br />\n";
                           echo 'Login: '.$e['cn'][0]."<br />\n";
                           echo 'Mail: '.(isset($e['mail'][0])?$e['mail'][0]:'<unknown>')."<br /><br />\n";
                   }
           }
    }
    else
           echo 'Group have no member'."<br />\n";



    что-то вроде
  • md5

    Сообщения: 11949 Репутация: N Группа: в ухо

    Spritz 18 сентября 2009 г. 1:03, спустя 12 секунд

    оформите в статьи, пожалуйста
    все умрут, а я изумруд
  • artoodetoo

    Сообщения: 5139 Репутация: N Группа: в ухо

    Spritz 19 сентября 2009 г. 3:57, спустя 1 день 2 часа 53 минуты

    CTAPbIu_MABP, спасибо :) так конечно удобнее повторно использовать.
    мне пример был нужен только один раз чтобы найти правильные DN и фильтр.
    когда закончу с модулем авторизации — выложу результат.
    ιιlllιlllι унц-унц
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 19 сентября 2009 г. 4:00, спустя 2 минуты 40 секунд

    я одного не понял, нахуй один говнокод в другой переделывать?)

    если уж на то пошло, то конструктор должен максимум ip,port принимать, должны быть функции
    - bind/loginun
    - bind/logout,
    - query
    - search причем она должна быть 100% с параметрамиЮ пусть даже такими же как и login в данной ситуации
    + еще всякие функции которые может быть потом добавятся, а сейчас этот класс такой же одноразовый как и та функция.

    я не прав? похоливарим?
    Сапожник без сапог
  • artoodetoo

    Сообщения: 5139 Репутация: N Группа: в ухо

    Spritz 19 сентября 2009 г. 4:03, спустя 3 минуты 24 секунды

    p.s. на мой испорченные взгляд такое:

    $myldap = new MyLDAPSearch('whole parameter set')
    $myldap->connect();
    $entry = $myldap->search();

    некрасиво вот почему: все три строки это одно действие. и это действие одноразовое. правильнее было бы передавать параметры поиска методу search а не конструктору. а если параметры коннета передавать методу connect (логично правда?) то нахуй не нужен конструктор.
    Спустя 50 сек.
    дуд ты прав конечно. опередил, сцуко :)
    ιιlllιlllι унц-унц
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 19 сентября 2009 г. 4:09, спустя 6 минут

    я бы даже сказал что должны быть

    search($searchString)
    searchUsers($users);
    Сапожник без сапог
  • artoodetoo

    Сообщения: 5139 Репутация: N Группа: в ухо

    Spritz 19 сентября 2009 г. 4:16, спустя 6 минут 21 секунду

    я бы добавил что параметр $dn и хвостик вида '@intranet.company.ru' просятся в "глобальную конфигурацию".
    они специфичны не для конкретного запроса, а для сети компании в целом. это условно-постоянные вещи.
    то есть если есть фреймворк интрасети компании, то такие параметры нехуй передавать в аргументах.
    ιιlllιlllι унц-унц
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 19 сентября 2009 г. 4:19, спустя 3 минуты 20 секунд


    я бы добавил что параметр $dn и хвостик вида '@intranet.company.ru' просятся в "глобальную конфигурацию".
    они специфичны не для конкретного запроса, а для сети компании в целом. это условно-постоянные вещи.
    то есть если есть фреймворк интрасети компании, то такие параметры нехуй передавать в аргументах.
    хули рассуждаешь? напиши! )))))))))))))))))))))))))))))

    релаьно если интересно то сделай просто номральный классец для такой простой задачи, а мы его обсудим, засрем и посмотрим что получилось естественно, ага?
    Спустя 14 сек.
    а я пока буду пить кока колу дальше!)
    Сапожник без сапог
  • artoodetoo

    Сообщения: 5139 Репутация: N Группа: в ухо

    Spritz 19 сентября 2009 г. 4:35, спустя 15 минут 38 секунд

    тфьу на тебя! кока-кола гадость.
    я пишу-пишу. и кое-что выложу.
    еще пару слов о собаках. конечно бспризорные @ это зло. но конструкция вида @func() or die() имеет право на жизнь. а вот бля func() or throw new Exception() ничего не дает если нет перехвата. она не спасет от выдачи левого варнинга если display_error_messages = 1. а следом она в любом случае выдаст текст эксепшена + полное имя файла с номером строки. от чего бежали, на то и напоролись.

    нет перехвата exception, тогда нахуй их порождать? чтобы на джаву походить?
    ιιlllιlllι унц-унц
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 19 сентября 2009 г. 4:36, спустя 59 секунд

    artoodetoo, exception правильнл возвращать когда у тебя приложение не аля "вася пупкин коленка скрипто 0.1 бета"

    вот догадайся чем throw лучше die ?)

    по простой причине, если я захочу твою либу заюзать в СВОЕМ проекте, то когда произойдет ошибка я может быть захочу СВОЮ СТРАНИЦУ С ОШИБКОЙ ПОКАЗАТЬ а не твое сообщение "Ooops! i did it again .." …

    а маврыська рпавильно поступает что пишет эксепшны, я тоже всегда эксепшены пишу.

    тфьу на тебя! кока-кола гадость.

    хочу умереть не от старости.

    по хорошему, то при входе в МОЮ ФУНКЦИЮ класса я пишу вот так

    function dudelib_function1(..)
    {
    $errlevel = error_reporting(0);

    error_reporting($errlevel);
    return $val;
    }

    это при условии что где то чтото может "насрать в вывод"
    Сапожник без сапог
  • artoodetoo

    Сообщения: 5139 Репутация: N Группа: в ухо

    Spritz 19 сентября 2009 г. 4:40, спустя 4 минуты 4 секунды

    я сам пишу эксепшены в реальных программах. если ты следишь за развитием моего "Простого каркаса", то там есть перехват и есть место где я throw
    но мне же надо было подъебнуть мавра. чо ему можно, а мне нельзя, да?
    ιιlllιlllι унц-унц
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 19 сентября 2009 г. 4:42, спустя 2 минуты 16 секунд

    artoodetoo, лишь бы не срали попусту, а подъебы да, разрешены конечно
    Сапожник без сапог

Пожалуйста, авторизуйтесь, чтобы написать комментарий!