/**
  * Executes a global search in multiple types.
  *
  * @param mixed $searchKeys
  * @param string|array $type A type or array of types to be searched for.
  * @param bool $trashcan
  * @param int $limit
  * @param bool $restrictToPermission
  * @access public
  * @return void
  */
 public function &globalSearch($searchKeys, $type = '', $trashcan = false, $limit = 0, $restrictToPermission = InnoworkItem::SEARCH_RESTRICT_NONE)
 {
     $result = array();
     if ($this->container->getState() == \Innomatic\Core\InnomaticContainer::STATE_DEBUG) {
         $this->container->getLoadTimer()->mark('InnoworkCore: start global search');
     }
     $result['result'] = array();
     $result['founditems'] = 0;
     while (list($key, $value) = each($this->summary)) {
         if ($value['searchable'] and ($type == '' or $type != '' and (!is_array($type) and $type == $key or is_array($type) and in_array($key, $type)))) {
             $class_name = $this->summary[$key]['classname'];
             if (!class_exists($class_name)) {
                 continue;
             }
             $tmp_class = new $class_name($this->rootDA, $this->domainDA);
             if (!$trashcan or $trashcan and $tmp_class->mNoTrash == false) {
                 $result['result'][$key] = $tmp_class->search($searchKeys, '', false, $trashcan, (int) $limit, 0, $restrictToPermission);
                 $result['founditems'] += count($result['result'][$key]);
                 //$tmp_locale = new LocaleCatalog( $itemtype_query->getFields( 'catalog' ), $this->container->getCurrentUser()->getLanguage() );
             }
         }
     }
     reset($this->summary);
     if ($this->container->getState() == \Innomatic\Core\InnomaticContainer::STATE_DEBUG) {
         $this->container->getLoadTimer()->mark('InnoworkCore: end global search');
     }
     return $result;
 }
 protected function generateSource()
 {
     $registry = \Innomatic\Util\Registry::instance();
     if (!$registry->isGlobalObject('singleton xlayersmenu')) {
         $mid = new \Innomatic\Wui\Widgets\Layersmenu\XLayersMenu();
         $registry->setGlobalObject('singleton xlayersmenu', $mid);
     } else {
         $mid = $registry->getGlobalObject('singleton xlayersmenu');
     }
     $container = \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer');
     $mid->libdir = $container->getHome() . 'core/lib/';
     $mid->libwww = $container->getBaseUrl(false) . '/shared/';
     //$mid->tpldir = $container->getHome().'core/conf/';
     $mid->imgdir = $this->mThemeHandler->mStyleDir;
     $mid->imgwww = $this->mThemeHandler->mStyleBase . $this->mThemeHandler->mStyleName . '/';
     //$mid->imgdir = $container->getHome().'shared/';
     //$mid->imgwww = $container->getBaseUrl(false).'/shared/';
     $mid->setMenuStructureString($this->mMenu);
     $mid->setDownArrowImg(basename($this->mThemeHandler->mStyle['arrowdownshadow']));
     $mid->setForwardArrowImg(basename($this->mThemeHandler->mStyle['arrowrightshadow']));
     $mid->ParseStructureForMenu($this->mName);
     //$mid->NewHorizontalMenu( $this->mName );
     $mid->newPlainMenu($this->mName);
     //$mid->setPHPTreeMenuDefaultExpansion("67|68|82");
     $mid->newPHPTreeMenu($this->mName);
     $mid->newTreeMenu($this->mName);
     //$mid->newVerticalMenu("vermenu1", 12);
     $mid->newVerticalMenu($this->mName);
     //$mid->setMenuStructureString($menustring);
     //$mid->parseStructureForMenu("vermenu1");
     $this->mLayout = ($this->mComments ? '<!-- begin ' . $this->mName . ' treevmenu -->' : '') . (isset($GLOBALS['gEnv']['runtime']['wui_menu']['header']) ? '' : $mid->MakeHeader()) . $mid->getTreeMenu($this->mName) . ($this->mComments ? '<!-- end ' . $this->mName . ' treevmenu -->' . "\n" : '');
     $GLOBALS['gEnv']['runtime']['wui_menu']['header'] = true;
     $GLOBALS['gEnv']['runtime']['wui_menu']['footer'] = $mid->MakeFooter();
     return true;
 }
 public function __construct($rrootDb, $id = '')
 {
     $this->mLog = \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getLogger();
     $this->mWebServicesLog = new \Innomatic\Logging\Logger(\Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getHome() . 'core/log/webservices.log');
     $this->mId = $id;
     if (is_object($rrootDb)) {
         $this->mrRootDb = $rrootDb;
     } else {
         $this->mLog->logEvent('innomatic.webservicesaccount', 'Invalid Innomatic database handler', \Innomatic\Logging\Logger::ERROR);
     }
     if ($this->mId) {
         $acc_query = $this->mrRootDb->execute('SELECT * ' . 'FROM webservices_accounts ' . 'WHERE id=' . (int) $this->mId);
         if ($acc_query->getNumberRows()) {
             $acc_data = $acc_query->getFields();
             $this->mName = $acc_data['name'];
             $this->mHost = $acc_data['host'];
             $this->mPort = $acc_data['port'];
             $this->mPath = $acc_data['path'];
             $this->mUsername = $acc_data['username'];
             $this->mPassword = $acc_data['password'];
             $this->mProxy = $acc_data['proxy'];
             $this->mProxyPort = $acc_data['proxyport'];
         } else {
             $this->mLog->logEvent('innomatic.webservicesaccount', 'Invalid account id', \Innomatic\Logging\Logger::ERROR);
         }
     }
 }
 public function getHTML()
 {
     $locale_catalog = new \Innomatic\Locale\LocaleCatalog('innowork-core::misc', InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getCurrentUser()->getLanguage());
     $theme = \Innomatic\Wui\Wui::instance('\\Innomatic\\Wui\\Wui')->getTheme();
     $icon = $theme->mIconsBase . $theme->mIconsSet['light']['trash']['base'] . '/light/' . $theme->mIconsSet['light']['trash']['file'];
     return '<a href="' . \Innomatic\Wui\Dispatch\WuiEventsCall::buildEventsCallString('1innoworkcore', array(array('view', 'trashcan', ''))) . '" alt="' . $locale_catalog->getStr('trashcan.menu') . '"><img width="25" height="25" align="right" src="' . $icon . '" alt="' . $locale_catalog->getStr('trashcan.menu') . '" /></a>';
 }
 /**
  * Updates composer dependencies.
  */
 public function updateDependencies()
 {
     $container = InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer');
     // Keep track of the current directory
     $previousDirectory = getcwd();
     // Retrieve the Innomatic Platform root directory
     $platformHome = RootContainer::instance('\\Innomatic\\Core\\RootContainer')->getPlatformHome();
     // Switch current directory to the Innomatic Platform root
     chdir($platformHome);
     // Call composer install command
     $input = new ArrayInput(array('command' => 'update'));
     if ($container->getInterface() == InnomaticContainer::INTERFACE_CONSOLE) {
         $output = new ConsoleOutput();
     } else {
         $output = new BufferedOutput();
     }
     $application = new ComposerApplication();
     // Prevent application run method from exiting the script
     $application->setAutoExit(false);
     $application->run($input, $output);
     // Switch back to the previous current directory
     chdir($previousDirectory);
     // Switch back to the standard Innomatic PHP error handler
     set_error_handler(array($container, 'errorHandler'));
 }
Example #6
0
 public function callHooks($event, $obj, $args = '')
 {
     $result = false;
     if ($this->rootdataaccess) {
         $query = $this->rootdataaccess->execute('SELECT * FROM hooks WHERE functionapplication=' . $this->rootdataaccess->formatText($this->application) . ' AND function=' . $this->rootdataaccess->formatText($this->function) . ' AND event=' . $this->rootdataaccess->formatText($event));
         if ($query) {
             $result = Hook::RESULT_OK;
             $innomatic = \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer');
             while (!$query->eof) {
                 $data = $query->getFields();
                 if ($innomatic->getState() == \Innomatic\Core\InnomaticContainer::STATE_DEBUG) {
                     $dump = \Innomatic\Debug\InnomaticDump::instance('\\Innomatic\\Debug\\InnomaticDump');
                     $dump->hooks[$this->application . '::' . $this->function . '::' . $event][] = $data['hookhandler'] . ' - ' . $data['hookmethod'];
                 }
                 require_once 'shared/hooks/' . $data['hookhandler'];
                 // let the 'class::function' syntax be accepted in dispatch maps
                 if (is_string($data['hookmethod']) && strpos($data['hookmethod'], '::')) {
                     $data['hookmethod'] = explode('::', $data['hookmethod']);
                 }
                 // verify that function to be invoked is in fact callable
                 if (!is_callable($data['hookmethod'])) {
                     continue;
                 }
                 $func_result = call_user_func($data['hookmethod'], $obj, $args);
                 if ($func_result == Hook::RESULT_ABORT) {
                     $result = Hook::RESULT_ABORT;
                 }
                 $query->moveNext();
             }
         }
     }
     return $result;
 }
 public function execute()
 {
     $result = true;
     // TODO Update version check
     // PHP version check
     if (!(ereg("[4-9]\\.[1-9]\\.[0-9].*", phpversion()) or ereg("[5-9]\\.[0-9]\\.[0-9].*", phpversion()))) {
         $result = false;
     }
     // File upload support
     if (!(ini_get('file_uploads') == '1')) {
         $result = false;
     }
     // XML support
     if (!function_exists('xml_set_object')) {
         $result = false;
     }
     // Zlib support
     if (!function_exists('gzinflate')) {
         $result = false;
     }
     // Database support
     if (!(function_exists('mysqli_connect') or function_exists('pg_connect'))) {
         $result = false;
     }
     // Applications extensions
     $app_deps = \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getDataAccess()->execute('SELECT moddep FROM applications_dependencies WHERE moddep LIKE ' . \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getDataAccess()->formatText('%.extension'));
     while (!$app_deps->eof) {
         $dep = substr($app_deps->getFields('moddep'), 0, -10);
         if (!extension_loaded($dep)) {
             $result = false;
         }
         $app_deps->moveNext();
     }
     return $result;
 }
 public static function ajaxGetDashboardWidget($name)
 {
     $container = \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer');
     $objResponse = new XajaxResponse();
     $xml = '<void/>';
     $domain_da = $container->getCurrentDomain()->getDataAccess();
     $perm = new \Innomatic\Desktop\Auth\DesktopPanelAuthorizator($domain_da, $container->getCurrentUser()->getGroup());
     // Check if the widget exists in the widgets list
     $widget_query = $domain_da->execute('SELECT * FROM domain_dashboards_widgets WHERE name=' . $domain_da->formatText($name));
     if ($widget_query->getNumberRows() > 0) {
         $allowed = true;
         $panel = $widget_query->getFields('panel');
         // Do not show widgets tied to a panel when the panel is not accessible to the current user
         if (strlen($panel)) {
             $node_id = $perm->getNodeIdFromFileName($panel);
             if ($perm->check($node_id, \Innomatic\Desktop\Auth\DesktopPanelAuthorizator::NODETYPE_PAGE) == \Innomatic\Desktop\Auth\DesktopPanelAuthorizator::NODE_NOTENABLED) {
                 $allowed = false;
             }
         }
         if ($allowed) {
             $class = $widget_query->getFields('class');
             // Check if the class exists
             if (class_exists($class, true)) {
                 // Fetch the widget xml definition
                 $widget = new $class();
                 $xml = $widget->getWidgetXml();
             }
         }
     }
     // Create the widget html and send it to the dashboard
     $html = WuiXml::getContentFromXml('', $xml);
     $objResponse->addAssign('widget_' . $name, 'innerHTML', $html);
     return $objResponse;
 }
Example #9
0
 public function __construct(\Innomatic\Dataaccess\DataAccess $rrootDb, $application, $itemId, $domainId = 0, $userId = 0)
 {
     $this->cachePath = \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getHome() . 'core/temp/cache/';
     $domainId = (int) $domainId;
     $userId = (int) $userId;
     $this->mrRootDb = $rrootDb;
     if (!$rrootDb->isConnected()) {
         $this->mResult = CachedItem::ITEM_NOT_FOUND;
     } else {
         if (strlen($itemId) and strlen($application)) {
             $this->mItemId = $itemId;
             $this->mApplication = $application;
             $this->mDomainId = $domainId;
             $this->mUserId = $userId;
             $item_query = $this->mrRootDb->execute('SELECT itemfile,validator,domainid,userid FROM cache_items WHERE application=' . $this->mrRootDb->formatText($this->mApplication) . ' AND itemid=' . $this->mrRootDb->formatText($this->mItemId) . ($domainId ? ' AND domainid=' . $domainId : '') . ($userId ? ' AND userid=' . $userId : ''));
             if ($item_query->getNumberRows()) {
                 $this->mValidator = $item_query->getFields('validator');
                 $this->mItemFile = $this->cachePath . $item_query->getFields('itemfile');
                 $this->mDomainId = $item_query->getFields('domainid');
                 $this->mUserId = $item_query->getFields('userid');
                 $this->mResult = CachedItem::ITEM_FOUND;
             } else {
                 $this->mResult = CachedItem::ITEM_NOT_FOUND;
             }
         }
     }
 }
Example #10
0
 public function __construct($elemName, $elemArgs = '', $elemTheme = '', $dispEvents = '')
 {
     parent::__construct($elemName, $elemArgs, $elemTheme, $dispEvents);
     $container = \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer');
     if (isset($this->mArgs['hint'])) {
         $this->mHint = $this->mArgs['hint'];
     }
     if (isset($this->mArgs['value'])) {
         $this->mValue = $this->mArgs['value'];
     }
     if (isset($this->mArgs['disp'])) {
         $this->mDisp = $this->mArgs['disp'];
     }
     if (isset($this->mArgs['tabindex'])) {
         $this->mTabIndex = $this->mArgs['tabindex'];
     }
     if (isset($this->mArgs['country']) and strlen($this->mArgs['country'])) {
         $this->mCountry = $this->mArgs['country'];
     } else {
         if ($container->isDomainStarted()) {
             $this->mCountry = $container->getCurrentUser()->getCountry();
         } else {
             $this->mCountry = $container->getCountry();
         }
     }
     if (isset($this->mArgs['language']) and strlen($this->mArgs['language'])) {
         $this->mLanguage = $this->mArgs['language'];
     } else {
         if ($container->isDomainStarted()) {
             $this->mLanguage = $container->getCurrentUser()->getLanguage();
         } else {
             $this->mLanguage = $container->getLanguage();
         }
     }
     $this->mLocaleCountryHandler = new \Innomatic\Locale\LocaleCountry($this->mCountry);
     $this->mLocaleHandler = new \Innomatic\Locale\LocaleCatalog('innomatic::wui', $this->mLanguage);
     if (isset($this->mArgs['readonly'])) {
         $this->mReadOnly = $this->mArgs['readonly'];
     }
     if (isset($this->mArgs['type'])) {
         switch ($this->mArgs['type']) {
             case 'date':
                 $this->mSize = 10;
                 $this->mMaxLength = 10;
                 $this->mType = $this->mArgs['type'];
                 break;
             case 'time':
                 $this->mSize = 8;
                 $this->mMaxLength = 8;
                 $this->mType = $this->mArgs['type'];
                 break;
             case 'shorttime':
                 $this->mSize = 5;
                 $this->mMaxLength = 5;
                 $this->mType = $this->mArgs['type'];
                 break;
         }
     }
 }
Example #11
0
 public function __construct(\Innomatic\Dataaccess\DataAccessSourceName $dasn)
 {
     $this->dasn = $dasn;
     $this->innomatic = \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer');
     if ($this->innomatic->getConfig()->value('RootDatabaseDebug') == '1') {
         $this->debug = true;
     }
 }
Example #12
0
 public function __construct($groupid = 0)
 {
     $this->container = \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer');
     $this->mrRootDb = $this->container->getDataAccess();
     $this->mrDomainDA = $this->container->getCurrentDomain()->getDataAccess();
     $this->domainserial = $this->container->getCurrentDomain()->domaindata['id'];
     $this->groupid = $groupid;
 }
    protected function _fillDefinition()
    {
        $result = false;
        $this->mDefinition = '';
        if ($this->mArgs['frame'] == 'true') {
            $this->mDefinition .= '<horizframe><name>toolbarframe</name><children>';
        } else {
            $this->mDefinition .= '<horizgroup><children>';
        }
        if (is_array($this->mArgs['toolbars'])) {
            while (list($tbar_name, $tbar) = each($this->mArgs['toolbars'])) {
                if (is_array($tbar)) {
                    $this->mDefinition .= '<' . ($this->mArgs['toolbar'] == 'true' ? 'toolbar' : 'horizgroup') . '>
  <name>' . $tbar_name . '</name>
  <children>';
                    while (list($button_name, $button) = each($tbar)) {
                        $this->mDefinition .= '<button>
  <name>' . $button_name . '</name>
                            <args><label type="encoded">' . urlencode($button['label']) . '</label><themeimage>' . (isset($button['themeimage']) ? $button['themeimage'] : '') . '</themeimage><themeimagetype>' . (isset($button['themeimagetype']) ? $button['themeimagetype'] : '') . '</themeimagetype><image>' . (isset($button['image']) ? \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getBaseUrl(false) . '/shared/' . $button['image'] : '') . '</image><action type="encoded">' . urlencode(isset($button['action']) ? $button['action'] : '') . '</action>';
                        if (isset($button['needconfirm']) and isset($button['confirmmessage']) and $button['needconfirm'] == 'true' and strlen($button['confirmmessage'])) {
                            $this->mDefinition .= '<needconfirm>true</needconfirm><confirmmessage type="encoded">' . urlencode($button['confirmmessage']) . '</confirmmessage>';
                        }
                        if (isset($button['horiz'])) {
                            $this->mDefinition .= '<horiz>' . $button['horiz'] . '</horiz>';
                        }
                        if (isset($button['disabled'])) {
                            $this->mDefinition .= '<disabled>' . $button['disabled'] . '</disabled>';
                        }
                        if (isset($button['target'])) {
                            $this->mDefinition .= '<target>' . $button['target'] . '</target>';
                        }
                        if (isset($button['compact'])) {
                            $this->mDefinition .= '<compact>' . $button['compact'] . '</compact>';
                        }
                        if (isset($button['hint'])) {
                            $this->mDefinition .= '<hint type="encoded">' . urlencode($button['hint']) . '</hint>';
                        }
                        if (isset($button['formsubmit'])) {
                            $this->mDefinition .= '<formsubmit>' . $button['formsubmit'] . '</formsubmit>';
                        }
                        if (isset($button['nowrap'])) {
                            $this->mDefinition .= '<nowrap>' . $button['nowrap'] . '</nowrap>';
                        }
                        $this->mDefinition .= '</args>
</button>';
                    }
                    $this->mDefinition .= '</children>
</' . ($this->mArgs['toolbar'] == 'true' ? 'toolbar' : 'horizgroup') . '>';
                }
            }
        }
        if ($this->mArgs['frame'] == 'true') {
            $this->mDefinition .= '</children></horizframe>';
        } else {
            $this->mDefinition .= '</children></horizgroup>';
        }
        return $result;
    }
 /**
  * Class constructor.
  *
  * @since 5.1
  */
 public function ___construct()
 {
     $home = \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getHome();
     if (substr($home, -1) != '/' and substr($home, -1) != '\\') {
         $home .= DIRECTORY_SEPARATOR;
     }
     $this->home = $home;
     $this->config = new \Innomatic\Module\Server\ModuleServerConfig($this->home . 'core/conf/modules.ini');
 }
 public static function domain_group_remove_groupremoved($obj, $args)
 {
     $domain_query = \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getDataAccess()->execute('SELECT domainid FROM domains WHERE id=' . \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getDataAccess()->formatText($args['domainserial']));
     \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->startDomain($domain_query->getFields('domainid'));
     $tmp_domain = \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getCurrentDomain();
     $tmp_domain->getDataAccess()->execute('DELETE FROM innowork_core_acls WHERE groupid=' . $args['groupid']);
     \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->stopDomain();
     return Hook::RESULT_OK;
 }
 /**
  * Class constructor.
  *
  * This method sets the Innomatic interface type to console and starts
  * Innomatic.
  *
  * @access public
  * @return void
  */
 public function ___construct()
 {
     $innomatic = \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer');
     // Set the Innomatic interface type to console
     $innomatic->setInterface(\Innomatic\Core\InnomaticContainer::INTERFACE_CONSOLE);
     $home = RootContainer::instance('\\Innomatic\\Core\\RootContainer')->getHome() . 'innomatic/';
     // Start Innomatic
     $innomatic->bootstrap($home, $home . 'core/conf/innomatic.ini');
 }
 public function sendAlert($event)
 {
     $result = false;
     $email = $this->getAlertsEmail();
     if (strlen($email)) {
         $result = mail($email, '[INNOMATIC SECURITY ALERT] - Security alert on ' . $this->container->getPlatformName() . '.' . $this->container->getPlatformGroup(), 'Warning: an event marked to be notified has been issued on ' . $this->container->getPlatformName() . '.' . $this->container->getPlatformGroup() . "\n\n" . 'Event was: ' . $event);
     }
     return $result;
 }
Example #18
0
 public function __construct(\Innomatic\Dataaccess\DataAccess $rootDA, \Innomatic\Dataaccess\DataAccess $domainDA, $itemType, $itemId, $ownerid = 0)
 {
     $this->container = \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer');
     $this->mItemType = $itemType;
     $this->mItemId = $itemId;
     $this->rootDA = $rootDA;
     $this->domainDA = $domainDA;
     $this->ownerid = $ownerid;
     $this->innoworkContainer = InnoworkCore::instance('\\Innowork\\Core\\InnoworkCore', $this->rootDA, $this->domainDA);
 }
Example #19
0
 protected function generateSource()
 {
     $this->mLayout = ($this->mComments ? '<!-- begin ' . $this->mName . ' horizbar -->' . "\n" : '') . '<table border="0" cellspacing="1" cellpadding="1" bgcolor="white" width="100%"><tr><td>';
     $this->mLayout .= '<table border="0" cellspacing="0" cellpadding="0" width="100%">' . "\n";
     $this->mLayout .= '<tr><td bgcolor="' . $this->mThemeHandler->mColorsSet['bars']['color'] . '" width="100%" height="1"><img src="' . \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getBaseUrl(false) . '/shared/clear.gif" border="0" alt=""></td></tr>' . "\n";
     $this->mLayout .= '<tr><td bgcolor="' . $this->mThemeHandler->mColorsSet['bars']['shadow'] . '" width="100%" height="1"><img src="' . \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getBaseUrl(false) . '/shared/clear.gif" border="0" alt=""></td></tr>' . "\n";
     $this->mLayout .= "</table>\n";
     $this->mLayout .= "</td></tr></table>\n" . ($this->mComments ? '<!-- end ' . $this->mName . ' horizbar -->' . "\n" : '');
     return true;
 }
 /**
  * @param appname string - Application name.
  */
 public function __construct($appname)
 {
     $this->rootda = \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getDataAccess();
     if ($appname) {
         $this->appname = $appname;
     } else {
         $log = \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getLogger();
         $log->logEvent('innomatic.applications.applicationsettings' . '.applicationsettings', 'Empty application name', \Innomatic\Logging\Logger::WARNING);
     }
 }
 public function __construct($rootda, $userId = '')
 {
     $this->mLog = \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getLogger();
     if ($rootda) {
         $this->mRootDb = $rootda;
     } else {
         $this->mLog->LogDie('innomatic.webservicesuser', 'Invalid Innomatic database handler');
     }
     $this->mUserId = $userId;
 }
Example #22
0
 /**
  * Class constructor.
  *
  * @param string $tenantName Internal name of the tenant.
  * @access public
  * @return void
  */
 public function ___construct($tenantName = '')
 {
     if (!strlen($tenantName)) {
         $tenantName = \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getCurrentTenant()->getDomainId();
     }
     $this->home = \Innomatic\Core\RootContainer::instance('\\Innomatic\\Core\\RootContainer')->getHome() . $tenantName . '/';
     if (!$this->modulesClassPathsAdded) {
         $this->addModulesClassPaths();
     }
 }
    public static function getRolesPermissionsXml()
    {
        $localeCatalog = new \Innomatic\Locale\LocaleCatalog('innomatic::domain_profiles', \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getCurrentUser()->getLanguage());
        $rolesList = \Innomatic\Domain\User\Role::getAllRoles();
        $rolesCount = count($rolesList);
        // Build roles/permissions matrix
        $rolesPermissions = array();
        foreach ($rolesList as $roleId => $roleData) {
            $role = new \Innomatic\Domain\User\Role($roleId);
            $rolesPermissions[$roleId] = $role->getPermissions();
        }
        $permissionsList = \Innomatic\Domain\User\Permission::getAllPermissions();
        // Build table headers
        $headers = array();
        $headerCounter = 1;
        foreach ($rolesList as $roleId => $roleData) {
            $headers[$headerCounter++]['label'] = $roleData['title'];
        }
        $xml = '<vertgroup><children>
              <table>
                <args>
                  <headers type="array">' . WuiXml::encode($headers) . '</headers>
                </args>
                <children>';
        $row = 0;
        $prevApplication = '';
        foreach ($permissionsList as $permId => $permData) {
            if ($permData['application'] != $prevApplication) {
                $xml .= '<label row="' . $row++ . '" col="0" halign="left" valign="middle" nowrap="false" width="" colspan="' . ($rolesCount + 1) . '"><args><label>' . WuiXml::cdata($permData['application']) . '</label><bold>true</bold></args></label>';
            }
            $xml .= '<label row="' . $row . '" col="0" halign="left" valign="middle"><args><label>' . WuiXml::cdata($permData['title']) . '</label><nowrap>false</nowrap></args></label>';
            $col = 1;
            foreach ($rolesList as $roleId => $roleData) {
                if (isset($rolesPermissions[$roleId][$permId])) {
                    $checked = 'true';
                } else {
                    $checked = 'false';
                }
                $xml .= '<checkbox row="' . $row . '" col="' . $col++ . '" halign="center" valign="middle"><name>rolepermissioncb</name><args><id>cbrole_' . $roleId . '-' . $permId . '</id><checked>' . $checked . '</checked></args></checkbox>';
            }
            $prevApplication = $permData['application'];
            $row++;
        }
        $xml .= '</children>
              </table>
              <horizbar/>
              <button><name>save</name>
	<args><themeimage>buttonok</themeimage><label>' . WuiXml::cdata($localeCatalog->getStr('save_roles_permissions_button')) . '</label><action>javascript:void(0)</action><horiz>true</horiz><frame>false</frame></args>
  	<events>
    	<click>' . WuiXml::cdata("\nvar checkboxes = document.getElementsByName('wui[][evd][rolepermissioncb]');\nvar vals = '';\nfor (var i=0, n=checkboxes.length;i<n;i++) {\n  if (checkboxes[i].checked) vals += ','+checkboxes[i].id;\n}\nif (vals) vals = vals.substring(1);\n    \t\t\t\nxajax_SaveRolesPermissions(vals);") . '</click>
  	</events></button>
            </children></vertgroup>';
        return $xml;
    }
 public function doGet(\Innomatic\Webapp\WebAppRequest $req, \Innomatic\Webapp\WebAppResponse $res)
 {
     // Identify the requested resource path
     $path = $this->getRelativePath($req);
     // Bootstraps Innomatic
     $container = \Innomatic\Webapp\WebAppContainer::instance('\\Innomatic\\Webapp\\WebAppContainer');
     $home = $container->getCurrentWebApp()->getHome();
     $innomatic = \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer');
     $innomatic->bootstrap($home, $home . 'core/conf/innomatic.ini');
     $innomatic->setMode(\Innomatic\Core\InnomaticContainer::MODE_ROOT);
     $innomatic->setInterface(\Innomatic\Core\InnomaticContainer::INTERFACE_WEBSERVICES);
     if ($innomatic->getState() == \Innomatic\Core\InnomaticContainer::STATE_SETUP) {
         $innomatic->abort('Setup phase');
     }
     $xuser = new WebServicesUser($innomatic->getDataAccess());
     if ($xuser->setByAccount($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW'])) {
         $container = $innomatic;
         $container->setWebServicesUser($_SERVER['PHP_AUTH_USER']);
         $container->setWebServicesProfile($xuser->mProfileId);
         if ($xuser->mDomainId) {
             $domain_query = $innomatic->getDataAccess()->execute('SELECT domainid FROM domains WHERE id=' . $xuser->mDomainId);
             if ($domain_query->getNumberRows()) {
                 $innomatic = $innomatic;
                 $innomatic->startDomain($domain_query->getFields('domainid'));
             }
         }
         $xprofile = new WebServicesProfile($innomatic->getDataAccess(), $container->getWebServicesProfile());
         $container->setWebServicesMethods($xprofile->AvailableMethods());
     } else {
         if ($innomatic->getConfig()->Value('SecurityAlertOnWrongWebServicesLogin') == '1') {
             $innomatic_security = new \Innomatic\Security\SecurityManager();
             $innomatic_security->sendAlert('Wrong web services login for user ' . $_SERVER['PHP_AUTH_USER'] . ' from remote address ' . $_SERVER['REMOTE_ADDR']);
             unset($innomatic_security);
         }
     }
     $structure = array();
     $methods = $innomatic->getWebServicesMethods();
     while (list(, $tmpdata) = each($methods)) {
         if ($tmpdata['handler'] and $tmpdata['name'] and $tmpdata['function']) {
             // TODO Fixare gestione handler servizi remoti
             if (!defined(strtoupper($tmpdata['handler']) . '_XMLRPCMETHOD')) {
                 require_once $innomatic->getHome() . 'core/classes/shared/webservices/' . ucfirst($tmpdata['handler']) . 'WebServicesHandler.php';
             }
             $structure[$tmpdata['name']]['function'] = $tmpdata['function'];
             if (isset($tmpdata['signature'])) {
                 $structure[$tmpdata['name']]['signature'] = $tmpdata['signature'];
             }
             if (isset($tmpdata['docstring'])) {
                 $structure[$tmpdata['name']]['docstring'] = $tmpdata['docstring'];
             }
         }
     }
     $xs = new \Innomatic\Webservices\Xmlrpc\XmlRpcServer($structure);
 }
 public function beginHelper()
 {
     $this->container = \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer');
     $this->localeCatalog = new LocaleCatalog('innomatic::domain_dashboard', $this->container->getCurrentUser()->getLanguage());
     $this->wuiContainer->loadAllWidgets();
     $this->wuiPage = new WuiPage('page', array('title' => $this->localeCatalog->getStr('dashboard_pagetitle')));
     $this->wuiMainvertgroup = new WuiVertgroup('mainvertgroup');
     $this->wuiTitlebar = new WuiTitleBar('titlebar', array('title' => $this->localeCatalog->getStr('dashboard_title'), 'icon' => 'elements'));
     $this->wuiMainvertgroup->addChild($this->wuiTitlebar);
     $this->wuiMainframe = new WuiVertgroup('mainframe');
 }
Example #26
0
 /**
  * Get list of local languages from db Root
  * @return array list languages
  */
 protected static function getRootLocaleLanguages()
 {
     $language_locale = new \Innomatic\Locale\LocaleCatalog('innomatic::localization', \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getLanguage());
     $languageQuery = \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getDataAccess()->execute('SELECT * FROM locale_languages');
     while (!$languageQuery->eof) {
         $langshort = $languageQuery->getFields('langshort');
         $langname = $languageQuery->getFields('langname');
         $languages[$langshort] = $language_locale->getStr($langname);
         $languageQuery->moveNext();
     }
     return $languages;
 }
Example #27
0
 /**
  * Costruisce la classe della clipboard.
  * @param string $type tipo di dato da trattare.
  * @param string $customType tipo utente di dato da trattare se $type � impostato a Clipboard::TYPE_CUSTOM
  * @param integer $unit unit� identificativa della clipboard da utilizzare a partire da 0
  * @param string $application nome del modulo.
  * @param string $domain nome del sito.
  * @param string $user nome dell'utente.
  */
 public function __construct($type, $customType = '', $unit = 0, $application = '', $domain = '', $user = '')
 {
     $this->type = $type;
     if ($this->type == Clipboard::TYPE_CUSTOM) {
         $this->customType = $customType;
     }
     $this->unit = $unit;
     $this->application = $application;
     $this->domain = $domain;
     $this->user = $user;
     $this->fileName = \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getHome() . 'core/temp/clipboard/' . $this->type . '_' . $this->customType . '_' . $this->unit . '_' . $this->application . '_' . $this->domain . '_' . $this->user . '.clipboard';
 }
 public function getWidgetXml()
 {
     $container = \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer');
     // Get the message of the day
     $message = $container->getCurrentDomain()->getMotd();
     // Check if the motd is empty. If it is empty, get the generic welcome message
     if (!strlen($message)) {
         $catalog = new \Innomatic\Locale\LocaleCatalog('innomatic::dashboard_welcome', $container->getCurrentUser()->getLanguage());
         $message = $catalog->getStr('welcome_message');
     }
     $xml = '<label><args><label>' . \Shared\Wui\WuiXml::cdata(nl2br($message)) . '</label></args></label>';
     return $xml;
 }
 public function executesetcountry($eventData)
 {
     $userCfg = new UserSettings(\Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getCurrentDomain()->getDataAccess(), \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getCurrentUser()->getUserId());
     $userCfg->setKey('desktop-country', $eventData['country']);
     $domainSettings = new DomainSettings(\Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getCurrentDomain()->getDataAccess());
     if (User::isAdminUser(\Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getCurrentUser()->getUserName(), \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getCurrentDomain()->getDomainId())) {
         $domainSettings->EditKey('desktop-country', $eventData['country']);
     }
     $this->status = $this->localeCatalog->getStr('countryset_status');
     $this->setChanged();
     $this->notifyObservers('status');
     $this->notifyObservers('javascript');
 }
 protected function generateSource()
 {
     $progress = $this->mArgs['progress'] == 0 ? '0' : round(100 * $this->mArgs['progress'] / $this->mArgs['totalsteps']);
     $left = 100 - $progress;
     $this->mLayout = $this->mComments ? '<!-- begin ' . $this->mName . ' progress -->' : '';
     $this->mLayout .= "<table border=\"0\" width=\"100%\" cellspacing=\"2\" cellpadding=\"1\"><tr><td bgcolor=\"" . $this->mThemeHandler->mColorsSet['frames']['border'] . "\">\n";
     $this->mLayout .= "<table border=\"0\" width=\"100%\" cellspacing=\"1\" cellpadding=\"0\" bgcolor=\"white\">\n";
     $this->mLayout .= "<tr>\n";
     $this->mLayout .= '<td width="' . $progress . '%" height="7" class="status" nowrap style="white-space: nowrap" align="center" bgcolor="' . $this->mThemeHandler->mColorsSet['buttons']['selected'] . '"><img src="' . \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getBaseUrl(false) . '/shared/clear.gif" alt="" height="7"></td>' . "\n";
     $this->mLayout .= '<td width="' . $left . '%" bgcolor="white"></td></tr>' . "\n</table>\n";
     $this->mLayout .= "</td></tr>\n</table>\n";
     $this->mLayout .= $this->mComments ? '<!-- end ' . $this->mName . " progressbar -->\n" : '';
     return true;
 }