Branch 'dev/edit-existing-entries' - 4 commits - lib/api lib/client
Jeroen van Meeuwen
vanmeeuwen at kolabsys.com
Sat Mar 31 19:25:19 CEST 2012
lib/api/kolab_api_service_form_value.php | 75 +++++++++++++++++++++++++++++--
lib/api/kolab_api_service_group.php | 1
lib/client/kolab_client_task_group.php | 2
lib/client/kolab_client_task_user.php | 2
4 files changed, 74 insertions(+), 6 deletions(-)
New commits:
commit eb79ffcceaccd909f7b0cd09b025b2dfb6c426e0
Author: Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen at kolabsys.com>
Date: Sat Mar 31 19:24:47 2012 +0200
Generate the uid and preseed it into the recipient policy if it does not already exist.
diff --git a/lib/api/kolab_api_service_form_value.php b/lib/api/kolab_api_service_form_value.php
index fe3cf6c..f601bd9 100644
--- a/lib/api/kolab_api_service_form_value.php
+++ b/lib/api/kolab_api_service_form_value.php
@@ -346,6 +346,12 @@ class kolab_api_service_form_value extends kolab_api_service
}
}
+ if (array_key_exists('uid', $attribs['auto_form_fields'])) {
+ if (!array_key_exists('uid', $postdata)) {
+ $postdata['uid'] = $this->generate_uid($postdata, $attribs);
+ }
+ }
+
$primary_mail = kolab_recipient_policy::primary_mail($postdata);
return $primary_mail;
@@ -387,6 +393,12 @@ class kolab_api_service_form_value extends kolab_api_service
}
}
+ if (array_key_exists('uid', $attribs['auto_form_fields'])) {
+ if (!array_key_exists('uid', $postdata)) {
+ $postdata['uid'] = $this->generate_uid($postdata, $attribs);
+ }
+ }
+
$secondary_mail = kolab_recipient_policy::secondary_mail($postdata);
return $secondary_mail;
commit a727b5b890b7f7937c8df542289cafc7534e7f61
Author: Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen at kolabsys.com>
Date: Sat Mar 31 14:50:02 2012 +0200
Add 'edit' to capabilities
diff --git a/lib/api/kolab_api_service_group.php b/lib/api/kolab_api_service_group.php
index 76e8cfd..e7fef8a 100644
--- a/lib/api/kolab_api_service_group.php
+++ b/lib/api/kolab_api_service_group.php
@@ -40,6 +40,7 @@ class kolab_api_service_group extends kolab_api_service
return array(
'add' => 'w',
'delete' => 'w',
+ 'edit' => 'w',
'info' => 'r',
'members_list' => 'r',
);
commit 8ef5f5b7efb8f2aafd120c7963ce26be2bb138f5
Author: Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen at kolabsys.com>
Date: Sat Mar 31 14:41:32 2012 +0200
Actually generate the uidnumber and gidnumber
diff --git a/lib/api/kolab_api_service_form_value.php b/lib/api/kolab_api_service_form_value.php
index 6e39a9b..fe3cf6c 100644
--- a/lib/api/kolab_api_service_form_value.php
+++ b/lib/api/kolab_api_service_form_value.php
@@ -243,12 +243,42 @@ 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'])) {
+ if (isset($attribs['auto_form_fields']) && isset($attribs['auto_form_fields']['gidnumber'])) {
$auth = Auth::get_instance($_SESSION['user']->get_domain());
+ $conf = Conf::get_instance();
// TODO: Take a policy to use a known group ID, a known group (by name?)
// and/or create user private groups.
- return 500;
+
+ $search = Array(
+ 'params' => Array(
+ 'objectclass' => Array(
+ 'type' => 'exact',
+ 'value' => 'posixgroup',
+ ),
+ ),
+ );
+
+ $groups = $auth->list_groups(NULL, Array('gidnumber'), $search);
+
+ $highest_gidnumber = $conf->get('gidnumber_lower_barrier');
+ if (!$highest_gidnumber) {
+ $highest_gidnumber = 1000;
+ }
+
+ foreach ($groups as $dn => $attributes) {
+ if (!array_key_exists('gidnumber', $attributes)) {
+ continue;
+ }
+
+ if ($attributes['gidnumber'] > $highest_gidnumber) {
+ $highest_gidnumber = $attributes['gidnumber'];
+ }
+ }
+
+ //$users = $auth->list_users();
+ //console($groups);
+ return ($highest_gidnumber + 1);
}
}
@@ -403,9 +433,34 @@ class kolab_api_service_form_value extends kolab_api_service
{
if (isset($attribs['auto_form_fields']) && isset($attribs['auto_form_fields']['uidnumber'])) {
$auth = Auth::get_instance($_SESSION['user']->get_domain());
+ $conf = Conf::get_instance();
+
+ $search = Array(
+ 'params' => Array(
+ 'objectclass' => Array(
+ 'type' => 'exact',
+ 'value' => 'posixaccount',
+ ),
+ ),
+ );
+
+ $users = $auth->list_users(NULL, Array('uidnumber'), $search);
+
+ $highest_uidnumber = $conf->get('uidnumber_lower_barrier');
+ if (!$highest_uidnumber) {
+ $highest_uidnumber = 1000;
+ }
- // TODO: Actually poll $auth for users with a uidNumber set, and take the next one.
- return 500;
+ foreach ($users as $dn => $attributes) {
+ if (!array_key_exists('uidnumber', $attributes)) {
+ continue;
+ }
+
+ if ($attributes['uidnumber'] > $highest_uidnumber) {
+ $highest_uidnumber = $attributes['uidnumber'];
+ }
+ }
+ return ($highest_uidnumber + 1);
}
}
commit ccaca4003972445d8f3301ed670901da84e601ed
Author: Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen at kolabsys.com>
Date: Sat Mar 31 13:58:27 2012 +0200
Also translate the edit success notification
diff --git a/lib/client/kolab_client_task_group.php b/lib/client/kolab_client_task_group.php
index eb20069..0e04e4a 100644
--- a/lib/client/kolab_client_task_group.php
+++ b/lib/client/kolab_client_task_group.php
@@ -271,7 +271,7 @@ class kolab_client_task_group extends kolab_client_task
$form->set_title(kolab_html::escape($title));
- $this->output->add_translation('group.add.success', 'group.delete.success');
+ $this->output->add_translation('group.add.success', 'group.edit.success', 'group.delete.success');
return $form->output();
}
diff --git a/lib/client/kolab_client_task_user.php b/lib/client/kolab_client_task_user.php
index d1e5b9f..f4ef0ea 100644
--- a/lib/client/kolab_client_task_user.php
+++ b/lib/client/kolab_client_task_user.php
@@ -312,7 +312,7 @@ class kolab_client_task_user extends kolab_client_task
$form->set_title(kolab_html::escape($title));
$this->output->add_translation('user.password.mismatch',
- 'user.add.success', 'user.delete.success');
+ 'user.add.success', 'user.edit.success', 'user.delete.success');
return $form->output();
}
More information about the commits
mailing list