public static function save($type_, $element_, $group_) { Logger::debug('main', "Abstract_Liaison::save ({$type_},{$element_},{$group_})"); $sql2 = SQL::getInstance(); $res = $sql2->DoQuery('SELECT @3,@4 FROM #1 WHERE @2=%5 AND @3=%6 AND @4=%7', self::table, 'type', 'element', 'group', $type_, $element_, $group_); if ($sql2->NumRows() > 0) { ErrorManager::report('liaison(type=' . $type_ . ',element=' . $element_ . ',group=' . $group_ . ') already exists'); return false; } $res = $sql2->DoQuery('INSERT INTO #1 ( @2,@3,@4 ) VALUES ( %5,%6,%7)', self::table, 'type', 'element', 'group', $type_, $element_, $group_); return $res !== false; }
public function init() { $server = Abstract_Server::load($this->server); if (!is_object($server)) { Logger::error('apt-get', 'TASK::init for task ' . $this->id . ' returned an error (unknown server ' . $this->server . ')'); return false; } $dom = new DomDocument('1.0', 'utf-8'); $node = $dom->createElement('debian'); $node->setAttribute('request', $this->getRequest()); foreach ($this->getPackages() as $package) { $buf = $dom->createElement('package'); $buf->setAttribute('name', $package); $node->appendChild($buf); } $dom->appendChild($node); $xml = $dom->saveXML(); $xml = query_url_post_xml($server->getBaseURL() . '/aps/debian', $xml); if (!$xml) { ErrorManager::report('Unable to submit Task to server "' . $server->fqdn . '"'); return false; } $dom = new DomDocument('1.0', 'utf-8'); $buf = @$dom->loadXML($xml); if (!$buf) { return false; } if (!$dom->hasChildNodes()) { return false; } $node = $dom->getElementsByTagname('debian_request')->item(0); if (is_null($node)) { return false; } $this->job_id = $node->getAttribute('id'); $this->status = $node->getAttribute('status'); return true; }
public function getSessionSettings($container_) { $prefs = Preferences::getInstance(); $overriden = array(); $default_settings = $prefs->get('general', $container_); // load rules (overriden settings) $user_groups_preferences = Abstract_UserGroup_Preferences::load_all('general', $container_); $users_group_id = array(); foreach ($user_groups_preferences as $key => $pref) { if (in_array($pref->usergroup_id, $users_group_id)) { continue; } array_push($users_group_id, $pref->usergroup_id); } // from this group, which are these I am into $users_groups_mine_ids = $this->get_my_usersgroups_from_list($users_group_id); // Finnaly, overwrite default settings with users groups settings foreach ($user_groups_preferences as $pref) { $key = $pref->element_id; if (!in_array($pref->usergroup_id, $users_groups_mine_ids)) { continue; } $element = $pref->toConfigElement(); if (isset($overriden[$key]) && $overriden[$key] == true && $element->content != $default_settings[$key]) { ErrorManager::report('User "' . $this->getAttribute('login') . '" has at least two groups with the same overriden rule but with different values, the result will be unpredictable.'); } $default_settings[$key] = $element->content; $overriden[$key] = true; } $prefs_of_a_user_unsort = Abstract_User_Preferences::loadByUserLogin($this->getAttribute('login'), 'general', $container_); foreach ($prefs_of_a_user_unsort as $key => $pref) { $element = $pref->toConfigElement(); if (isset($overriden[$key]) && $overriden[$key] == true && $element->content != $default_settings[$key]) { Logger::debug("User '" . $this->getAttribute('login') . "' has at least overriden preferences but with different values, the result will be unpredictable."); } $default_settings[$key] = $element->content; $overriden[$key] = true; } return $default_settings; }
public function addToServer($sharedfolder_, $an_fs_server_) { Logger::debug('main', "SharedFolderDB::internal::addToServer({$sharedfolder_}, {$an_fs_server_})"); if (is_object($sharedfolder_) == false) { Logger::error('main', 'SharedFolderDB::internal sharedfolder parameter is not an object (content: ' . serialize($sharedfolder_)); return false; } if (is_object($an_fs_server_) == false) { Logger::error('main', 'SharedFolderDB::internal fs parameter is not an object (content: ' . serialize($an_fs_server_)); return false; } $sharedfolder_->server = $an_fs_server_->id; if ($this->exists($sharedfolder_->id) === false) { // we save the object first $ret = $this->add($sharedfolder_); // if ($ret !== true) { // Logger::error('main', "SharedFolderDB::internal failed to add $sharedfolder_ to the DB"); // return false; // } } // do the request to the server $ret = $an_fs_server_->createNetworkFolder($sharedfolder_->id); if (!$ret) { ErrorManager::report('SharedFolderDB::internal Unable to create shared folder on file server "' . $sharedfolder_->server . '"'); $this->remove($sharedfolder_); return false; } return true; }
public function isOnline() { if (!in_array($this->getAttribute('status'), array('ready', 'pending'))) { Logger::debug('main', 'Server::isOnline server "' . $this->fqdn . ':' . $this->web_port . '" is not "ready"'); return false; } $warn = false; if (!$this->hasAttribute('status') || !$this->uptodateAttribute('status')) { $warn = true; $this->getStatus(); } if ($this->hasAttribute('status') && in_array($this->getAttribute('status'), array('ready', 'pending'))) { return true; } if ($warn === true && $this->getAttribute('locked') == 0) { ErrorManager::report('"' . $this->fqdn . '": is NOT online!'); } $this->isNotReady(); return false; }
public function add($user_) { Logger::debug('main', 'UserDB::sql::add'); if ($this->isOK($user_)) { // user already exists ? $user_from_db = $this->exists($user_->getAttribute('login')); if ($user_from_db === true) { ErrorManager::report('user (login='******'login') . ') already exists'); return false; } $query_keys = ""; $query_values = ""; $attributes = $user_->getAttributesList(); foreach ($attributes as $key) { if ($key == 'password') { $value = crypt($user_->getAttribute($key), '$1$' . md5($user_->getAttribute('login'))); } else { $value = $user_->getAttribute($key); } $query_keys .= '`' . $key . '`,'; $query_values .= '"' . mysql_escape_string($value) . '",'; } $query_keys = substr($query_keys, 0, -1); // del the last , $query_values = substr($query_values, 0, -1); // del the last , $SQL = SQL::getInstance(); $query = 'INSERT INTO #1 ( ' . $query_keys . ' ) VALUES (' . $query_values . ' )'; $ret = $SQL->DoQuery($query, self::table); $id = $SQL->InsertId(); $user_->setAttribute('id', $id); return $ret; } else { if ($user_->hasAttribute('login')) { Logger::debug('main', 'UserDB::sql::add failed (user \'' . $user_->getAttribute('login') . '\' not ok)'); } else { Logger::debug('main', 'UserDB::sql::add failed (user not ok)'); } return false; } }
public function add($usergroup_) { Logger::debug('main', "USERGROUPDB::add({$usergroup_})"); $sql2 = SQL::getInstance(); // usergroup already exists ? $res = $sql2->DoQuery('SELECT 1 FROM #1 WHERE @2 = %3 AND @4 = %5', self::table, 'name', $usergroup_->name, 'description', $usergroup_->description); if ($sql2->NumRows($res) > 0) { ErrorManager::report('usersgroup (name=' . $usergroup_->name . ',description=' . $usergroup_->description . ') already exists'); return false; } $res = $sql2->DoQuery('INSERT INTO #1 (@2,@3,@4) VALUES (%5,%6,%7)', self::table, 'name', 'description', 'published', $usergroup_->name, $usergroup_->description, $usergroup_->published); if ($res !== false) { $usergroup_->id = $sql2->InsertId(); return is_object($this->import($sql2->InsertId())); } else { return false; } }