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