2 commits - lib/api

Jeroen van Meeuwen vanmeeuwen at kolabsys.com
Wed Mar 14 20:15:31 CET 2012


 lib/api/kolab_api_service_form_value.php |   52 +++++++++++++++++++++++++++++++
 1 file changed, 52 insertions(+)

New commits:
commit 1fc8c1d88a934384b6399741641cf5ab26e7cd80
Author: Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen at kolabsys.com>
Date:   Wed Mar 14 19:14:48 2012 +0000

    Provide (non-functional) version of form_value.generate_uidnumber() and form_value.generate_gidnumber()

diff --git a/lib/api/kolab_api_service_form_value.php b/lib/api/kolab_api_service_form_value.php
index e2baea5..7e80dc6 100644
--- a/lib/api/kolab_api_service_form_value.php
+++ b/lib/api/kolab_api_service_form_value.php
@@ -107,6 +107,17 @@ class kolab_api_service_form_value extends kolab_api_service
         }
     }
 
+    private function generate_gidnumber($postdata, $attribs = array())
+    {
+        if (isset($attribs['auto_form_fields']) && isset($attribs['auto_form_fields']['uidnumber'])) {
+            $auth = Auth::get_instance($_SESSION['user']->get_domain());
+
+            // TODO: Take a policy to use a known group ID, a known group (by name?)
+            // and/or create user private groups.
+            return array('gidnumber' => 500);
+        }
+    }
+
     private function generate_homedirectory($postdata, $attribs = array())
     {
         if (isset($attribs['auto_form_fields']) && isset($attribs['auto_form_fields']['homedirectory'])) {
@@ -209,6 +220,17 @@ class kolab_api_service_form_value extends kolab_api_service
         }
     }
 
+    private function generate_uidnumber($postdata, $attribs = array())
+    {
+        if (isset($attribs['auto_form_fields']) && isset($attribs['auto_form_fields']['uidnumber'])) {
+            $auth = Auth::get_instance($_SESSION['user']->get_domain());
+
+            // TODO: Actually poll $auth for users with a uidNumber set, and take the next one.
+
+            return array('uidnumber' => 500);
+        }
+    }
+
     private function generate_userpassword($postdata, $attribs = array())
     {
         $password = $this->generate_password($getdata, $postdata, $attribs);


commit 5ddad1bc17829d1871685f90985c46bd5cccb882
Author: Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen at kolabsys.com>
Date:   Wed Mar 14 18:24:10 2012 +0000

    Add form_value.generate_homedirectory()

diff --git a/lib/api/kolab_api_service_form_value.php b/lib/api/kolab_api_service_form_value.php
index 2ada7a2..e2baea5 100644
--- a/lib/api/kolab_api_service_form_value.php
+++ b/lib/api/kolab_api_service_form_value.php
@@ -107,6 +107,36 @@ class kolab_api_service_form_value extends kolab_api_service
         }
     }
 
+    private function generate_homedirectory($postdata, $attribs = array())
+    {
+        if (isset($attribs['auto_form_fields']) && isset($attribs['auto_form_fields']['homedirectory'])) {
+            // Use Data Please
+            foreach ($attribs['auto_form_fields']['homedirectory']['data'] as $key) {
+                if (!isset($postdata[$key])) {
+                    throw new Exception("Key not set: " . $key, 12356);
+                }
+            }
+
+            $uid = iconv('UTF-8', 'ASCII//TRANSLIT', $postdata['sn']);
+            $uid = strtolower($uid);
+            $uid = preg_replace('/[^a-z-_]/i', '', $uid);
+
+            $orig_uid = $uid;
+
+            $auth = Auth::get_instance($_SESSION['user']->get_domain());
+
+            $x = 2;
+            while ($auth->user_find_by_attribute(array('uid' => $uid))) {
+                $uid = $orig_uid . $x;
+                $x++;
+            }
+
+            // TODO: Home directory base path from configuration?
+
+            return array('homedirectory' => '/home/'.$uid);
+        }
+    }
+
     private function generate_mail($postdata, $attribs = array())
     {
         if (isset($attribs['auto_form_fields']) && isset($attribs['auto_form_fields']['mail'])) {





More information about the commits mailing list