class_simpleService.inc 4.13 KiB
<?php
/*
  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
  Copyright (C) 2011-2017  FusionDirectory
  This program is free software; you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
  the Free Software Foundation; either version 2 of the License, or
  (at your option) any later version.
  This program is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.
  You should have received a copy of the GNU General Public License
  along with this program; if not, write to the Free Software
  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
/*! \brief This class is made for easy service creation for editing LDAP attributes
class simpleService extends simplePlugin
  protected static $showActions = TRUE;
  protected $status = '';
  public $conflicts   = array();
  public $DisplayName = '';
  /*! \brief constructor
   *  \param string $dn The dn of this instance
   *  \param Object $parent The serverService instance
   *  \param array $attributesInfo An attributesInfo array, if NULL, getAttributesInfo will be used.
  function __construct ($dn = NULL, $parent = NULL, $attributesInfo = NULL)
    /* $parent is the instance of serverService in this case, we set it as parent */
    parent::__construct($dn, $parent, $parent, FALSE, $attributesInfo);
    $plInfos = pluglist::pluginInfos(get_class($this));
    $this->DisplayName  = $plInfos['plShortName'];
  /*! \brief This function display the service and return the html code
  function execute()
    $str = parent::execute();
    if (!$this->dialog) {
      $str .= '<div class="plugbottom servicebottom">'.
             '  <input type="submit" name="SaveService" value="'.msgPool::saveButton().'"/>&nbsp;'.
             '  <input type="submit" name="CancelService" value="'.msgPool::cancelButton().'"/>'.
             '</div>';
    return $str;
  protected function acl_skip_write()
    return FALSE;
  /*! \brief Get service information for serverService plugin */
  function getListEntry()
7172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
{ /* Assign status flag */ $fields['Status'] = $this->status; /* Name displayed in service overview */ $fields['Message'] = $this->DisplayName; if (static::$showActions && is_object($this->parent->parent) && isset($this->parent->parent->by_object['argonautClient']) && $this->parent->parent->by_object['argonautClient']->is_account) { /* Allow/disallow some functions */ $fields['AllowStatus'] = ($this->status == '') && $this->acl_is_writeable('simpleServiceStatus'); $fields['AllowStart'] = ($this->status == 'stopped') && $this->acl_is_writeable('simpleServiceStart'); $fields['AllowStop'] = ($this->status == 'running') && $this->acl_is_writeable('simpleServiceStop'); $fields['AllowRestart'] = ($this->status == 'running') && $this->acl_is_writeable('simpleServiceRestart'); } else { /* Disable some functions */ $fields['AllowStatus'] = FALSE; $fields['AllowStart'] = FALSE; $fields['AllowStop'] = FALSE; $fields['AllowRestart'] = FALSE; } $fields['AllowRemove'] = $this->acl_is_removeable(); $fields['AllowEdit'] = $this->acl_is_readable(''); return $fields; } /*! \brief This function save new status flag */ function setStatus($value) { /* Can't set status flag for new services (Object doesn't exists in ldap tree) */ if (!$this->initially_was_account) { return; } $this->status = $value; } static function generatePlProvidedAcls ($attributesInfo) { $acls = parent::generatePlProvidedAcls($attributesInfo); if (static::$showActions) { $acls ['simpleServiceStatus'] = _('Get service status'); $acls ['simpleServiceStart'] = _('Start service'); $acls ['simpleServiceStop'] = _('Stop service'); $acls ['simpleServiceRestart'] = _('Restart service'); } return $acls; } } ?>