rendered paste bodydiff --git a/src/IDF/Views.php b/src/IDF/Views.phpindex 03d8680..82afccb 100644--- a/src/IDF/Views.php+++ b/src/IDF/Views.php@@ -20,7 +20,6 @@ # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA # # ***** END LICENSE BLOCK ***** */- Pluf::loadFunction('Pluf_HTTP_URL_urlForView'); Pluf::loadFunction('Pluf_Shortcuts_RenderToResponse'); Pluf::loadFunction('Pluf_Shortcuts_GetObjectOr404');@@ -31,12 +30,44 @@ Pluf::loadFunction('Pluf_Shortcuts_GetFormForModel'); */ class IDF_Views {++ public function checkNewUser($login)+ {+ $ldapOnly = Pluf::f('ldap_only');+ $ldapHost = Pluf::f('ldap_host_port');+ $binddn = Pluf::f('ldap_user');+ $bindpass = Pluf::f('ldap_password');+ $dn = Pluf::f('ldap_baseDn');+ $version= Pluf::f('ldap_version');+ $key = Pluf::f('ldap_primaryKey'); + if ($ldapOnly)+ {+ $ds=ldap_connect($ldapHost);+ ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, $version);+ $result=@ldap_bind($ds,$binddn,$bindpass);+ + if ($result)+ {+ $filter = "(uid=$login)";+ $sr = ldap_search($ds, $dn, $filter); //the search result+ $entry = ldap_first_entry($ds, $sr); //returns the first entry of the search result + $countE = ldap_get_entries($ds,$sr);+ if ($countE["count"] === 1) {+ return true;+ } else return false;+ ldap_close($ds);+ } else return false;+ } else return false;+ }+ + /** * List all the projects managed by InDefero. * * Only the public projects are listed or the private with correct * rights. */+ public function index($request, $match) { $projects = self::getProjects($request->user);@@ -46,6 +77,7 @@ class IDF_Views $request); } + /** * Login view. */@@ -54,9 +86,11 @@ class IDF_Views if (isset($request->POST['action']) and $request->POST['action'] == 'new-user') { $login = (isset($request->POST['login'])) ? $request->POST['login'] : '';- $url = Pluf_HTTP_URL_urlForView('IDF_Views::register', array(),+ if ($this->checkNewUser($login)){+ $url = Pluf_HTTP_URL_urlForView('IDF_Views::register', array(), array('login' => $login));- return new Pluf_HTTP_Response_Redirect($url);+ return new Pluf_HTTP_Response_Redirect($url);+ } } $v = new Pluf_Views(); $request->POST['login'] = (isset($request->POST['login'])) ? mb_strtolower($request->POST['login']) : '';