diff --git a/plugins/personal/samba/class_sambaAccount.inc b/plugins/personal/samba/class_sambaAccount.inc
index d0032add21f8c32333c30c973b223a591f338bd1..8a7f5ab8808efb015f70cd881be772f1c3e003dc 100644 (file)
var $sambaLogonTime= "0";
var $sambaLogoffTime= "2147483647";
var $sambaKickoffTime= "2147483647";
- var $sambaPwdCanChange= "0";
+ var $sambaPwdCanChange= "";
var $sambaPwdMustChange= "0";
var $sambaAcctFlags= "[UX ]";
var $sambaHomePath= "";
var $attributes= array();
var $objectclasses= array();
- function sambaAccount ($config, $dn= NULL)
+ var $uid = "";
+
+ var $CopyPasteVars = array("kickoff_time_set","logoff_time_set","logon_time_set","mungedObject","orig_sambaDomainName");
+
+ function sambaAccount ($config, $dn= NULL, $parent= NULL)
{
/* Load attributes depending on the samba version */
$this->samba3= ($config->current['SAMBAVERSION'] == 3);
$this->objectclasses= array ("sambaAccount");
}
- plugin::plugin ($config, $dn);
+ plugin::plugin ($config, $dn, $parent);
+
+ /* set user id */
+ if(isset($this->attrs['uid'])){
+ $this->uid = $this->attrs['uid'][0];
+ }
/* Get samba Domain in case of samba 3 */
if ($this->samba3 && $this->sambaSID != ""){
$acl= array($this->config->current['BASE'] => ":all");
$regex= $sambafilter['regex'];
$filter= "(&(objectClass=sambaSAMAccount)$exclude(uid=*$)(|(uid=$regex)(cn=$regex)))";
- $res= get_list($acl, "$filter", TRUE, $sambafilter['depselect'], array("uid"), TRUE);
+ $res= get_list($filter, $acl, $sambafilter['depselect'], array("uid"), GL_SUBSEARCH | GL_SIZELIMIT);
$wslist= array();
foreach ($res as $attrs){
$wslist[]= preg_replace('/\$/', '', $attrs['uid'][0]);
$this->attributes, "Save");
$ldap->cd($this->dn);
$this->cleanup();
-$ldap->modify ($this->attrs);
+ $ldap->modify ($this->attrs);
- show_ldap_error($ldap->get_error());
+ show_ldap_error($ldap->get_error(), _("Removing Samba account failed"));
/* Optionally execute a command after we're done */
- $this->handle_post_events("remove");
+ $this->handle_post_events("remove",array("uid"=>$this->uid));
}
/* Check for input problems */
function check()
{
- $message= array();
+ /* Call common method to give check the hook */
+ $message= plugin::check();
if ($this->samba3){
{
/* Load uid and gid of this 'dn' */
$ldap= $this->config->get_ldap_link();
- $ldap->cat($this->dn);
+ $ldap->cat($this->dn, array('uidNumber', 'gidNumber'));
$tmp= $ldap->fetch();
$this->uidNumber= $tmp['uidNumber'][0];
$this->gidNumber= $tmp['gidNumber'][0];
/* Write back to ldap */
$ldap->cd($this->dn);
$this->cleanup();
-$ldap->modify ($this->attrs);
+ $ldap->modify ($this->attrs);
- show_ldap_error($ldap->get_error());
+ show_ldap_error($ldap->get_error(), _("Saving Samba account failed"));
/* Optionally execute a command after we're done */
if ($this->initially_was_account == $this->is_account){
if ($this->is_modified){
- $this->handle_post_events("modify");
+ $this->handle_post_events("modify",array("uid" => $this->uid));
}
} else {
- $this->handle_post_events("add");
+ $this->handle_post_events("add",array("uid" => $this>uid));
}
}