All pastes #1599204 Raw Edit

root

public text v1 · immutable
#1599204 ·published 2009-10-06 19:28 UTC
rendered paste body
diff --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']) : '';