Subversion Repositories computer_asset_manager_v2

Rev

Rev 71 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

<?php
   $VERSION='2.0.2';
   $BUILD_DATE='20211229';
   $DB_REQUIRED_VERSION = '0.1';
   include_once( dirname(__FILE__) . '/include/functions.php');
   global $configuration;
   global $activeOnly;
   $activeOnly = true;
   $error = '';

   $configStuff = loadConfig();
   if ( $configStuff['error'] ) {
      print $configStuff['error'];
      die;
   } else {
      $configuration = $configStuff['configuration'];
      $configPath = $configStuff['path'];
      unset( $configStuff );
   }

   // read all session settings and set them up
   // https://stackoverflow.com/questions/8311320/how-to-change-the-session-timeout-in-php
   foreach ( $configuration['session'] as $key => $value ) {
      ini_set( "session.$key", $value );
   }

   // get include directories for libraries
   foreach ( $configuration['locations']['include_dirs'] as $key => $dir ) {
      ini_set('include_path', ini_get('include_path') . PATH_SEPARATOR . $dir );
   }
   
   include_once( 'UsersPermissions.class.php' );
   include_once( 'UsersPermissionsDataSourceMySQLi.class.php' );
   include_once( 'DBQueryHTML.class.php' );
   include_once( 'functions.php' );

   // since we are storing some user defined classes in the session, session
   // MUST be started after the class definitions are loaded
   session_start();

   /*
    * $_SESSION will contain the following:
    * 'user'
    *    a copy of the login and permissions
    * ['workingon'][ClassName]
    *    an id entry for each class (Owner, Location and Device) recently worked on (used in filtering)
    * ['data'][ClassName]
    *    The data from the most recent load for the class in question
    * ['restrictions'][ClassName]
    *    a list of restrictions for the current user
    */

   // make the database connection
   $dbVersion = '';
   $dbConnection = new DBQueryHTML( $configuration['database']['dbserver'],$configuration['database']['dbusername'], $configuration['database']['dbpassword'], $configuration['database']['dbname'] );
   if ( $dbConnection->connect_errno ) {
      $error = "Failed to connect to MySQL: (" . $dbConnection->connect_errno . ") " . $dbConnection->connect_error;
   } else {
      $dbVersion = $dbConnection->getOneDBValue( "select key_value from _system where group_name = 'database' and key_name = 'version'" );
   }

   //print "<pre>\nSession" . print_r($configuration,true) . '</pre>';
   

   // create a connection for the Users class
   global $connection;
   $connection = new usersPermissionsDataSourceMySQLi( 
         $dbConnection,
         $configuration['customUsersFields']
      );
   // if they are not logged in, set up for logging in
   if ( ! isset( $_SESSION['user'] ) ) {
      $_SESSION['user'] = new UsersPermissions( $configuration['customUsersFields'] );
   }
   
   
   // check if the user has request a log out.
   if ( isset( $_REQUEST['logout'] ) )
      $_SESSION['user']->logout();
   //Setup our HTML header here.
   if(!isset($page_title)) { $page_title = "Untitled"; }
   // set up our "here I am" variable
   $url = htmlentities($configuration['locations']['base_url'] . '/' . $configuration['locations']['main_script'] );
   $baseURL = htmlentities($configuration['locations']['base_url'] );

?>

<html>
   <head>
      <title><?php echo $page_title;?></title>
      <script language="javascript"> 
         function eToggle(anctag,darg) {
            var ele = document.getElementById(darg);
            var text = document.getElementById(anctag);
            if(ele.style.display == "block") {
               ele.style.display = "none";
               text.innerHTML = "Show " + darg;
            } else {
               ele.style.display = "block";
               text.innerHTML = "Hide " + darg;
            }
         } 
      </script>
     <link rel="stylesheet" type="text/css" href="camp.css">
   </head>
   <body>
      <div class="grid-container">
      <div class="titleimage">
         <h1>
            Computer Asset Management Program 
         </h1>
         <h2>
            Version <?php print "$VERSION, $BUILD_DATE"; ?>
         </h2>
      </div>
      <?php
         if ( $error ) {
            print "<h1>Serious Error encountered</h1><p>$error</p>";
            die($error);
         }
         if ( $dbVersion != $DB_REQUIRED_VERSION ) {
            print "<h1><b>Warning</b>: Database is version $dbVersion, but requires version $DB_REQUIRED_VERSION. Repair immediately</h1>";
            die;
         }
      ?>
      <?php
         if ( isset( $_SESSION['user'] ) && $_SESSION['user']->name() === null ) {
            /* 
             * we have to run this first since the last call, where name
             * is actually populated, returns an empty screen, but the
             * div still exists, so we check first, then if it is not
             * empty, do the div and page.
             */
            $page = $_SESSION['user']->HTML($connection);
            if ( $page ) {
               print "<div class='login'>\n$page\n</div>\n";
            }
         } 
         if ( ! isset( $_SESSION['restrictions'] ) && isset( $_SESSION['user'] ) && $_SESSION['user']->name() !== null ) {
            // this must be new, so we have to build our where clause
            buildRestrictions();
         }
      ?>