diff --git a/plugins/admin/systems/class_servRepository.inc b/plugins/admin/systems/class_servRepository.inc
index 9a3114e80a317c724535f7b809264afb504bc60e..d92998b7e419d310392907e95ed17a34863b76bf 100644 (file)
var $dialog = NULL;
/* Repositories */
- var $repositories = array();
- var $FAIrepository = array();
+ var $repositories = array();
+ var $FAIrepository = array();
+
+
+ var $conflicts = array("FAIrepositoryServer");
+ var $DisplayName = "";
+ var $StatusFlag = "";
+
function servrepository ($config, $dn= NULL)
{
plugin::plugin ($config, $dn);
+ $this->DisplayName = _("Repository service");
+
$this->repositories = array();
if(isset($this->attrs['FAIrepository'])){
for($i = 0; $i < $this->attrs['FAIrepository']['count']; $i++){
$smarty->assign("apply", apply_filter());
$smarty->assign("regex", $this->regex);
-
- /* Do we need to flip is_account state? */
- if (isset($_POST['modify_state'])){
- $this->is_account= !$this->is_account;
- }
-
/* Show tab dialog headers */
- if ($this->is_account){
- $display= $this->show_header(_("Remove FAI repository extension."),
- _("This server has FAI repository features enabled. You can disable them by clicking below."));
- } else {
- $display= $this->show_header(_("Add FAI repository extension."),
- _("This server has FAI repository features disabled. You can enable them by clicking below."));
- return ($display);
- }
-
/*
ADD / EDIT Repository
Dialog Handling
*/
-
$once = false;
if(isset($_POST['servRepository'])){
foreach($_POST as $name => $value){
function remove_from_parent()
{
plugin::remove_from_parent();
+
+ /* Remove status flag, it is not a memeber of
+ this->attributes, so ensure that it is deleted too */
+ if(!empty($this->StatusFlag)){
+ $this->attrs[$this->StatusFlag] = array();
+ }
+
$ldap= $this->config->get_ldap_link();
$ldap->cd ($this->config->current['BASE']);
}
}
+ /* Get updates for status flag */
+ function updateStatusState()
+ {
+ if(empty($this->StatusFlag)) return;
+
+ $attrs = array();
+ $flag = $this->StatusFlag;
+ $ldap = $this->config->get_ldap_link();
+ $ldap->cd($this->cn);
+ $ldap->cat($this->dn,array($flag));
+ if($ldap->count()){
+ $attrs = $ldap->fetch();
+ }
+ if(isset($attrs[$flag][0])){
+ $this->$flag = $attrs[$flag][0];
+ }
+ }
+
+
+ function getListEntry()
+ {
+ $this->updateStatusState();
+ $flag = $this->StatusFlag;
+ if(empty($flag)){
+ $fields['Status'] = "";
+ }else{
+ $fields['Status'] = $this->$flag;
+ }
+ $fields['Message'] = _("Repository service");
+ $fields['AllowStart'] = true;
+ $fields['AllowStop'] = true;
+ $fields['AllowRestart'] = true;
+ $fields['AllowRemove']= true;
+ $fields['AllowEdit'] = true;
+ return($fields);
+ }
+
+
+ /* Directly save new status flag */
+ function setStatus($value)
+ {
+ if($value == "none") return;
+ if(!$this->initially_was_account) return;
+ if(empty($this->StatusFlag)) return;
+ $ldap = $this->config->get_ldap_link();
+ $ldap->cd($this->dn);
+ $ldap->cat($this->dn,array("objectClass"));
+ if($ldap->count()){
+
+ $tmp = $ldap->fetch();
+ for($i = 0; $i < $tmp['objectClass']['count']; $i ++){
+ $attrs['objectClass'][] = $tmp['objectClass'][$i];
+ }
+ $flag = $this->StatusFlag;
+ $attrs[$flag] = $value;
+ $this->$flag = $value;
+ $ldap->modify($attrs);
+ show_ldap_error($ldap->get_error(), sprintf(_("Set status flag for server services/repository with dn '%s' failed."),$this->dn));
+ $this->action_hook();
+ }
+ }
+
}
// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler: