// | Boston, MA 02111-1307, USA gnu@gnu.org | // | | // +-------------------------------------------------------------------+ /** * @package WiFiDogAuthServer * @copyright 2004-2006 Technologies Coeus inc. * @version Subversion $Id$ * @link http://www.wifidog.org/ */ /** * Load common include file */ require_once 'admin_common.php'; require_once 'classes/MainUI.php'; require_once 'classes/Server.php'; Security::requirePermission(Permission::P('SERVER_PERM_EDIT_SERVER_CONFIG'), Server::getServer()); $db = AbstractDb::getObject(); $html = ''; /** Affiche les informations sur le fichier envoy� par le client */ function PrintUploadedFileInfo($form_name_file) { $html .= "Nom du fichier envoy�:" . $_FILES[$form_name_file]['name'] . "<br>"; $html .= "Taille: " . $_FILES[$form_name_file]['size'] . " octets" . "<br>"; $html .= "Mime type: " . $_FILES[$form_name_file]['type'] . "<br>"; $html .= "Nom du fichier temporaire sur le serveur: " . $_FILES[$form_name_file]['tmp_name'] . "<br>"; $html .= "Erreurs au cours du transfert: " . $_FILES[$form_name_file]['error'] . "<br>"; } $html .= "<fieldset class=\"pretty_fieldset\">"; $html .= "<legend>" . _("NoCat user database import") . "</legend>"; if (empty($_REQUEST['action'])) {
/** * Delete this Object form the it's storage mechanism * * @param string &$errmsg Returns an explanation of the error on failure * * @return bool true on success, false on failure or access denied * * @access public */ public function delete(&$errmsg) { // Init values $retval = false; Security::requirePermission(Permission::P('NETWORK_PERM_DELETE_NETWORK'), $this); if ($this->isDefaultNetwork() === true) { $errmsg = _('Cannot delete default network, create another one and select it before you remove this one.'); } else { $db = AbstractDb::getObject(); $id = $db->escapeString($this->getId()); if (!$db->execSqlUpdate("DELETE FROM networks WHERE network_id='{$id}'", false)) { $errmsg = _('Could not delete network!'); } else { parent::_delete($errmsg); $retval = true; } } return $retval; }
public function processAdminUI() { $db = AbstractDb::getObject(); $currentUser = self::getCurrentUser(); if (Security::hasPermission(Permission::P('NETWORK_PERM_EDIT_ANY_USER'), $this->getNetwork())) { /* Account status */ $name = "user_" . $this->getId() . "_accountstatus"; $status = FormSelectGenerator::getResult($name, null); $this->setAccountStatus($status); } if ($this == $currentUser || Security::requirePermission(Permission::P('NETWORK_PERM_EDIT_ANY_USER'), $this->getNetwork())) { /* Username */ $name = "user_" . $this->getId() . "_username"; $this->setUsername($_REQUEST[$name]); /* Change password */ $nameOldpassword = "******" . $this->getId() . "_oldpassword"; $nameNewpassword = "******" . $this->getId() . "_newpassword"; $nameNewpasswordAgain = "user_" . $this->getId() . "_newpassword_again"; if ($_REQUEST[$nameNewpassword] != null) { if ($this == $currentUser && $this->getPasswordHash() != User::passwordHash($_REQUEST[$nameOldpassword])) { throw new Exception(_("Wrong password.")); } if ($_REQUEST[$nameNewpassword] != $_REQUEST[$nameNewpasswordAgain]) { throw new Exception(_("Passwords do not match.")); } $this->setPassword($_REQUEST[$nameNewpassword]); } // Pretend there is only one $profiles = $this->getAllProfiles(); if (!empty($profiles)) { $current_profile = $profiles[0]; if ($current_profile != null) { $current_profile->processAdminUI(); $name = "user_" . $this->getId() . "_delete_profile_" . $current_profile->getId(); if (!empty($_REQUEST[$name])) { $errmsg = null; $current_profile->delete($errmsg); } } } else { $name = "user_" . $this->getId() . "_add_profile"; if (!empty($_REQUEST[$name])) { // Get the list of profile templates for the users' network $profile_templates = ProfileTemplate::getAllProfileTemplates($this->getNetwork()); if (!empty($profile_templates)) { // Create a blank profile and link it to the user $current_profile = Profile::createNewObject(null, $profile_templates[0]); $this->addProfile($current_profile); } } } } }
/** * Process admin interface of this object * * @return void */ public function processAdminUI() { Security::requirePermission(Permission::P('SERVER_PERM_EDIT_ROLES'), Server::getServer()); $db = AbstractDb::getObject(); $errmsg = ""; // role_id $value = htmlspecialchars($this->getId(), ENT_QUOTES); // role_description_content_id if (empty($this->_row['role_description_content_id'])) { $name = "role_{$this->id}_description_new"; $description = Content::processNewContentUI($name); if ($description != null) { $description_id = $description->GetId(); $db->execSqlUpdate("UPDATE roles SET role_description_content_id = '{$description_id}' WHERE role_id = '{$this->id}'", FALSE); } } else { $description = Content::getObject($this->_row['role_description_content_id']); $name = "role_{$this->id}_description_erase"; if (!empty($_REQUEST[$name]) && $_REQUEST[$name] == true) { $db->execSqlUpdate("UPDATE roles SET role_description_content_id = NULL WHERE role_id = '{$this->id}'", FALSE); $description->delete($errmsg); } else { $description->processAdminUI(); } } // Permissions $permissionsArray = Permission::getPermissions(array('stakeholderTypeId' => $this->_row['stakeholder_type_id'])); $idStr = $db->escapeString($this->getId()); $stakeholderTypeIdStr = $db->escapeString($this->_row['stakeholder_type_id']); $sql = "SELECT permissions.permission_id, stakeholder_type_id, role_id FROM permissions LEFT JOIN role_has_permissions ON (role_has_permissions.permission_id = permissions.permission_id AND role_id = '{$idStr}') WHERE stakeholder_type_id='{$stakeholderTypeIdStr}'"; $db->execSql($sql, $permission_rows, false); $sql = null; if ($permission_rows) { foreach ($permission_rows as $row) { $permissionIdStr = $db->escapeString($row['permission_id']); $name = "role_{$this->id}_permission_" . htmlspecialchars($row['permission_id'], ENT_QUOTES) . "_included"; if (empty($row['role_id']) && !empty($_REQUEST[$name]) && $_REQUEST[$name] == 'included') { $sql = "INSERT INTO role_has_permissions (permission_id, role_id) VALUES ('{$permissionIdStr}','{$idStr}');\n"; } else { if (!empty($row['role_id']) && empty($_REQUEST[$name])) { $sql = "DELETE FROM role_has_permissions WHERE permission_id='{$permissionIdStr}' AND role_id='{$idStr}';\n"; } else { //echo "Do nothing for {$row['permission_id']}<br/>"; } } } } if ($sql) { $db->execSqlUpdate("BEGIN;\n{$sql}COMMIT;", false); } $this->refresh(); }
/** * Process admin interface of this object * * @return void */ public function processAdminUI() { require_once 'classes/User.php'; Security::requirePermission(Permission::P('SERVER_PERM_EDIT_SERVER_CONFIG'), $this); // Authentication if (isset($_REQUEST['use_global_auth'])) { $this->setUseGlobalUserAccounts($_REQUEST['use_global_auth']); } else { $this->setUseGlobalUserAccounts(false); } // Access rights require_once 'classes/Stakeholder.php'; Stakeholder::processAssignStakeholdersUI($this, $errMsg); if (!empty($errMsg)) { echo $errMsg; } }
// | | // +-------------------------------------------------------------------+ /** * @package WiFiDogAuthServer * @author Philippe April * @copyright 2004-2006 Philippe April * @version Subversion $Id$ * @link http://www.wifidog.org/ */ /** * Load common include file */ require_once 'admin_common.php'; require_once 'classes/Node.php'; require_once 'classes/MainUI.php'; Security::requirePermission(Permission::P('NETWORK_PERM_VIEW_ONLINE_USERS'), Network::getCurrentNetwork()); $db = AbstractDb::getObject(); $smarty = SmartyWifidog::getObject(); $online_users = null; $db->execSql("SELECT connections.user_id, name, username, account_origin, timestamp_in, incoming, outgoing FROM users,nodes,connections JOIN tokens USING (token_id) WHERE token_status='" . TOKEN_INUSE . "' AND users.user_id=connections.user_id AND nodes.node_id=connections.node_id ORDER BY account_origin, timestamp_in DESC", $online_users); $smarty->assign("users_array", $online_users); $ui = MainUI::getObject(); $ui->addContent('main_area_middle', $smarty->fetch("admin/templates/online_users.html")); $ui->display(); /* * Local variables: * tab-width: 4 * c-basic-offset: 4 * c-hanging-comment-ender-p: nil * End: */
/** * Process admin interface of this object * * @return void */ public function processAdminUI() { Security::requirePermission(Permission::P('SERVER_PERM_EDIT_PROFILE_TEMPLATES'), Server::getServer()); require_once 'classes/User.php'; $errmsg = ""; // label $_name = "profile_template_" . $this->getId() . "_label"; $this->setLabel($_REQUEST[$_name]); foreach ($this->getFields() as $field) { $name = "profile_template_" . $this->id . "_field_" . $field->GetId() . "_erase"; if (!empty($_REQUEST[$name]) && $_REQUEST[$name] == true) { $field->delete($errmsg); } else { $field->processAdminUI(); } } ProfileTemplateField::processCreateFieldUI("profile_template_{$this->id}_new_field", $this); }
/** * Process admin interface of this object. * * @return void * * @access public */ public function processAdminUI() { require_once 'classes/Stakeholder.php'; $user = User::getCurrentUser(); // Get information about the network $network = $this->getNetwork(); //pretty_print_r($_REQUEST); $permArray[] = array(Permission::P('NETWORK_PERM_EDIT_ANY_NODE_CONFIG'), $this->getNetwork()); $permArray[] = array(Permission::P('NODE_PERM_EDIT_CONFIG'), $this); $permArray[] = array(Permission::P('NODE_PERM_EDIT_GATEWAY_ID'), $this); $permArray[] = array(Permission::P('NODE_PERM_EDIT_DEPLOYMENT_DATE'), $this); Security::requireAnyPermission($permArray); // Check if user is a admin $_userIsAdmin = User::getCurrentUser()->DEPRECATEDisSuperAdmin(); // Information about the node $node_id = $this->getId(); // Gateway Id $permArray = null; $permArray[] = array(Permission::P('NETWORK_PERM_EDIT_ANY_NODE_CONFIG'), $network); $permArray[] = array(Permission::P('NODE_PERM_EDIT_GATEWAY_ID'), $this); if (Security::hasAnyPermission($permArray)) { $name = "node_" . $node_id . "_gw_id"; $this->setGatewayId($_REQUEST[$name]); } // Content processing parent::processContentAdminUI(); // Name $permArray = null; $permArray[] = array(Permission::P('NETWORK_PERM_EDIT_ANY_NODE_CONFIG'), $network); $permArray[] = array(Permission::P('NODE_PERM_EDIT_NAME'), $this); if (Security::hasAnyPermission($permArray)) { $name = "node_" . $node_id . "_name"; $this->setName($_REQUEST[$name]); } // Creation date $permArray = null; $permArray[] = array(Permission::P('NETWORK_PERM_EDIT_ANY_NODE_CONFIG'), $network); $permArray[] = array(Permission::P('NODE_PERM_EDIT_DEPLOYMENT_DATE'), $this); if (Security::hasAnyPermission($permArray)) { $name = "node_" . $node_id . "_creation_date"; $this->setCreationDate(DateTimeWD::processSelectDateTimeUI($name, DateTimeWD::INTERFACE_DATETIME_FIELD)->getIso8601FormattedString()); } // Homepage URL $name = "node_" . $node_id . "_homepage_url"; $this->setWebSiteUrl($_REQUEST[$name]); // Description $name = "node_" . $node_id . "_description"; $this->setDescription($_REQUEST[$name]); // Map URL $name = "node_" . $node_id . "_map_url"; $this->setMapUrl($_REQUEST[$name]); // Civic number $name = "node_" . $node_id . "_civic_number"; $this->setCivicNumber($_REQUEST[$name]); // Street name $name = "node_" . $node_id . "_street_name"; $this->setStreetName($_REQUEST[$name]); // City $name = "node_" . $node_id . "_city"; $this->setCity($_REQUEST[$name]); // Province $name = "node_" . $node_id . "_province"; $this->setProvince($_REQUEST[$name]); // Postal Code $name = "node_" . $node_id . "_postal_code"; $this->setPostalCode($_REQUEST[$name]); // Country $name = "node_" . $node_id . "_country"; $this->setCountry($_REQUEST[$name]); // Public phone # $name = "node_" . $node_id . "_public_phone"; $this->setTelephone($_REQUEST[$name]); // Public mail $name = "node_" . $node_id . "_public_email"; $this->setEmail($_REQUEST[$name]); // Mass transit info $name = "node_" . $node_id . "_mass_transit_info"; $this->setTransitInfo($_REQUEST[$name]); // GIS data // Get a geocoder for a given country if (!empty($_REQUEST['geocode_only'])) { if ($geocoder = AbstractGeocoder::getGeocoder($this->getCountry()) != null) { $geocoder = AbstractGeocoder::getGeocoder($this->getCountry()); } else { $geocoder = AbstractGeocoder::getGeocoder('Earth'); } if ($geocoder != null) { $geocoder->setCivicNumber($this->getCivicNumber()); $geocoder->setStreetName($this->getStreetName()); $geocoder->setCity($this->getCity()); $geocoder->setProvince($this->getProvince()); $geocoder->setPostalCode($this->getPostalCode()); if ($geocoder->validateAddress() == true) { if (($point = $geocoder->getGisLocation()) !== null) { $this->setGisLocation($point); } else { $this->_warningMessage = _("It appears that the Geocoder could not be reached or could not geocode the given address."); } } else { $this->_warningMessage = _("You must enter a valid address."); } } else { $this->_warningMessage = _("Unable to create geocoder. Are you sure you set the country?"); } } else { // Use what has been set by the user. $gis_lat_name = "node_" . $node_id . "_gis_latitude"; $gis_long_name = "node_" . $node_id . "_gis_longitude"; $this->setGisLocation(new GisPoint($_REQUEST[$gis_lat_name], $_REQUEST[$gis_long_name], 0.0)); } $name = "node_" . $node_id . "_show_on_map"; $this->setShowOnMap(empty($_REQUEST[$name]) ? false : true); // Statistics $name = "node_{$this->id}_get_stats"; if (!empty($_REQUEST[$name])) { header("Location: stats.php?" . urlencode("selected_nodes[]") . "=" . urlencode($this->getId())); } $permArray = null; $permArray[] = array(Permission::P('NETWORK_PERM_EDIT_ANY_NODE_CONFIG'), $network); $permArray[] = array(Permission::P('NODE_PERM_ALLOW_GENERATING_PUBLIC_STATS'), $this); if (Security::hasAnyPermission($permArray)) { if (isset($_REQUEST['allows_public_stats'])) { $this->setAllowsPublicStats($_REQUEST['allows_public_stats'] == 'on'); } else { $this->setAllowsPublicStats(false); } } // Node configuration section $network = $this->getNetwork(); // Deployment status $name = "node_" . $node_id . "_deployment_status"; $this->setDeploymentStatus(self::processSelectDeploymentStatus($name)); // Network selection $name = "node_" . $node_id . "_network_id"; $new_network = Network::processSelectUI($name); if ($new_network != $this->getNetwork()) { Security::requirePermission(Permission::P('NETWORK_PERM_ADD_NODE'), $new_network); $this->setNetwork($new_network); } // is_splash_only_node if ($network->getSplashOnlyNodesAllowed()) { $name = "node_" . $node_id . "_is_splash_only_node"; $this->setIsConfiguredSplashOnly(empty($_REQUEST[$name]) ? false : true); } // custom_portal_redirect_url if ($network->getCustomPortalRedirectAllowed()) { $name = "node_" . $node_id . "_custom_portal_redirect_url"; $this->setCustomPortalRedirectUrl($_REQUEST[$name]); } // allow_original_URL_redirect if ($network->getPortalOriginalUrlAllowed()) { $name = "node_" . $node_id . "_allow_original_URL_redirect"; $this->setPortalOriginalUrlAllowed(empty($_REQUEST[$name]) ? false : true); } // End Node configuration section parent::processGraphAdminUI($errMsg, $network); if (!empty($errMsg)) { echo $errMsg; $errMsg = null; } // Access rights Stakeholder::processAssignStakeholdersUI($this, $errMsg); if (!empty($errMsg)) { echo $errMsg; } }
/** * Process admin interface of this object * * @return void */ public function processAdminUI() { Security::requirePermission(Permission::P('SERVER_PERM_EDIT_CONTENT_TYPE_FILTERS'), Server::getServer()); require_once 'classes/User.php'; // label $name = "content_type_filter_" . $this->getId() . "_label"; $this->setLabel($_REQUEST[$name]); // rules $name = "content_type_filter_" . $this->getId() . "_rules"; $new_rules_array = self::parseScalarArray($_REQUEST[$name]); if (is_array($new_rules_array)) { $this->setRules($new_rules_array); } else { echo _("The rules must be given as a PHP array declaration."); } }
/** * Process the new object interface. * * Will return the new object if the user has the credentials and the form was fully filled. * @return the node object or null if no new node was created. */ public static function processCreateNewObjectUI() { // Init values $retval = null; $name = "new_node_group_name"; if (!empty($_REQUEST[$name])) { $ng_name = $_REQUEST[$name]; } else { $ng_name = null; } $name = "new_node_group_network_id"; if (!empty($_REQUEST[$name])) { $network = Network::getObject($_REQUEST[$name]); } else { $network = Network::processSelectUI('new_node_group'); } if ($network) { Security::requirePermission(Permission::P('NETWORK_PERM_ADD_NODEGROUP'), $network); $retval = self::createNewObject($ng_name, $network); } return $retval; }
/** * Process admin interface of this object * * @return void */ public function processAdminUI() { require_once 'classes/User.php'; Security::requirePermission(Permission::P('SERVER_PERM_EDIT_ANY_VIRTUAL_HOST'), Server::getServer()); // hostname $name = "server_" . $this->getId() . "_hostname"; $this->setHostname($_REQUEST[$name]); // default_network $name = "vhost_" . $this->getId() . "_default_network"; $this->setDefaultNetwork(Network::processSelectUI($name)); // is_default_server $name = "vhost_" . $this->getId() . "_is_default_vhost"; if (!empty($_REQUEST[$name]) && $_REQUEST[$name] == 'on') { $server = Server::getServer(); $server->setDefaultVirtualHost($this); } // ssl_available $name = "server_" . $this->getId() . "_ssl_available"; if (!empty($_REQUEST[$name]) && $_REQUEST[$name] == 'on') { $this->setSSLAvailable(true); } else { $this->setSSLAvailable(false); } // gmaps_api_key if (defined('GMAPS_HOTSPOTS_MAP_ENABLED') && GMAPS_HOTSPOTS_MAP_ENABLED == true) { $name = "server_" . $this->getId() . "_gmaps_api_key"; $this->setGoogleAPIKey($_REQUEST[$name]); } }