// | 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'])) {
Beispiel #2
0
 /**
  * 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;
 }
Beispiel #3
0
 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);
                 }
             }
         }
     }
 }
Beispiel #4
0
 /**
  * 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();
 }
Beispiel #5
0
 /**
  * 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;
     }
 }
Beispiel #6
0
// |                                                                   |
// +-------------------------------------------------------------------+
/**
 * @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);
 }
Beispiel #8
0
 /**
  * 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.");
     }
 }
Beispiel #10
0
 /**
  * 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;
 }
Beispiel #11
0
 /**
  * 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]);
     }
 }