Formatting fixes
This commit is contained in:
parent
4125c033fc
commit
49a7c4f634
1
.gitignore
vendored
1
.gitignore
vendored
@ -1 +1,2 @@
|
||||
sys/*.sqlite
|
||||
docs/*
|
43
app/classes/controller.php
Normal file
43
app/classes/controller.php
Normal file
@ -0,0 +1,43 @@
|
||||
<?php
|
||||
/**
|
||||
* meta
|
||||
*
|
||||
* Hierarchial data tool
|
||||
*
|
||||
* @package meta
|
||||
* @author Timothy J. Warren
|
||||
* @copyright Copyright (c) 2012
|
||||
* @link https://github.com/aviat4ion/meta
|
||||
* @license http://philsturgeon.co.uk/code/dbad-license
|
||||
*/
|
||||
|
||||
// --------------------------------------------------------------------------
|
||||
|
||||
namespace meta;
|
||||
|
||||
/**
|
||||
* Base controller class to hold common functionality
|
||||
*
|
||||
* @param package meta
|
||||
*/
|
||||
abstract class Controller extends \miniMVC\Controller {
|
||||
|
||||
/**
|
||||
* Create the controller and build page header
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
$this->load_model('meta\model');
|
||||
$this->page->build_header();
|
||||
}
|
||||
|
||||
/**
|
||||
* Destruct controller and build page footer
|
||||
*/
|
||||
public function __destruct()
|
||||
{
|
||||
$this->page->build_footer();
|
||||
}
|
||||
|
||||
}
|
@ -18,7 +18,7 @@
|
||||
*
|
||||
* @package meta
|
||||
*/
|
||||
class Category extends miniMVC\Controller {
|
||||
class category extends meta\controller {
|
||||
|
||||
/**
|
||||
* Initialize the Controller
|
||||
@ -26,10 +26,6 @@ class Category extends miniMVC\Controller {
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
$this->load_model('meta\model');
|
||||
|
||||
$this->page->build_header();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -37,13 +33,6 @@ class Category extends miniMVC\Controller {
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
$id = (int) miniMVC\get_last_segment();
|
||||
|
||||
if ($id === 0)
|
||||
{
|
||||
return miniMVC\show_404();
|
||||
}
|
||||
|
||||
$this->detail();
|
||||
}
|
||||
|
||||
@ -69,15 +58,23 @@ class Category extends miniMVC\Controller {
|
||||
}
|
||||
|
||||
// Render the basic page
|
||||
$this->index();
|
||||
$this->detail(-1);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the sections / editing options for a category
|
||||
*/
|
||||
public function detail()
|
||||
public function detail($id = 0)
|
||||
{
|
||||
if ($id === 0)
|
||||
{
|
||||
$id = (int) miniMVC\get_last_segment();
|
||||
}
|
||||
|
||||
if ($id === 0)
|
||||
{
|
||||
miniMVC\show_404();
|
||||
}
|
||||
|
||||
$data = array(
|
||||
'category' => $this->model->get_category_by_id($id),
|
||||
@ -86,7 +83,6 @@ class Category extends miniMVC\Controller {
|
||||
);
|
||||
|
||||
$this->load_view('category_detail', $data);
|
||||
$this->page->build_footer();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -18,7 +18,7 @@
|
||||
*
|
||||
* @package meta
|
||||
*/
|
||||
class Genre extends miniMVC\Controller {
|
||||
class genre extends meta\controller {
|
||||
|
||||
/**
|
||||
* Initialize the Controller
|
||||
@ -26,10 +26,6 @@ class Genre extends miniMVC\Controller {
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
$this->load_model('meta\model');
|
||||
|
||||
$this->page->build_header();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -51,7 +47,6 @@ class Genre extends miniMVC\Controller {
|
||||
$data['genres'] = $this->model->get_genres();
|
||||
|
||||
$this->load_view('genres', $data);
|
||||
$this->page->build_footer();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -95,7 +90,6 @@ class Genre extends miniMVC\Controller {
|
||||
);
|
||||
|
||||
$this->load_view('genre_detail', $data);
|
||||
$this->page->build_footer();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -16,12 +16,25 @@
|
||||
/**
|
||||
* Section Controller
|
||||
*/
|
||||
class Section extends \miniMVC\Controller {
|
||||
class section extends meta\controller {
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
public function index()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds a new section to the current category
|
||||
*/
|
||||
public function add()
|
||||
{
|
||||
|
||||
}
|
||||
|
@ -18,7 +18,7 @@
|
||||
*
|
||||
* @package meta
|
||||
*/
|
||||
class Welcome extends miniMVC\Controller {
|
||||
class welcome extends miniMVC\Controller {
|
||||
|
||||
/**
|
||||
* Initialize the constructor
|
||||
@ -30,6 +30,7 @@ class Welcome extends miniMVC\Controller {
|
||||
parent::__construct();
|
||||
|
||||
$this->load_model('meta\model');
|
||||
$this->load_model('meta\user_model');
|
||||
|
||||
}
|
||||
|
||||
|
@ -20,7 +20,7 @@ namespace meta;
|
||||
*
|
||||
* @package meta
|
||||
*/
|
||||
class Model extends \miniMVC\Model {
|
||||
class model extends \miniMVC\Model {
|
||||
|
||||
/**
|
||||
* Reference to database connection
|
||||
|
@ -20,7 +20,14 @@ namespace meta;
|
||||
*
|
||||
* @package meta
|
||||
*/
|
||||
class User_model extends \miniMVC\Model {
|
||||
class user_model extends \miniMVC\Model {
|
||||
|
||||
/**
|
||||
* Reference to bcrypt object
|
||||
*
|
||||
* @var Bcrypt
|
||||
*/
|
||||
protected $bcrypt;
|
||||
|
||||
/**
|
||||
* Initialize the User model
|
||||
@ -28,6 +35,34 @@ class User_model extends \miniMVC\Model {
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
$this->bcrypt = new \Bcrypt(15);
|
||||
}
|
||||
|
||||
// --------------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Check and see if the login is valid
|
||||
*
|
||||
* @param string
|
||||
* @param string
|
||||
* @return bool
|
||||
*/
|
||||
public function check_login($username, $pass)
|
||||
{
|
||||
$query = $this->db->from('user')
|
||||
->where('username', $username)
|
||||
->get();
|
||||
|
||||
$row = $query->fetch(\PDO::FETCH_ASSOC);
|
||||
|
||||
// The user does not exist
|
||||
if (empty($row))
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
return $this->bcrypt->verify($pass, $row['hash']);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -21,10 +21,10 @@
|
||||
*/
|
||||
|
||||
//Get config files
|
||||
require('./config/config.php');
|
||||
require './config/config.php';
|
||||
|
||||
//Include the css groups
|
||||
$groups = require("./config/css_groups.php");
|
||||
$groups = require './config/css_groups.php';
|
||||
|
||||
//The name of this file
|
||||
$this_file = __FILE__;
|
||||
|
@ -18,6 +18,7 @@ a:hover {
|
||||
|
||||
/* form styles */
|
||||
form dt, form dd {
|
||||
display:-moz-inline-box; /* For older versions of Mozilla/Firefox */
|
||||
display:inline-block;
|
||||
padding:0.25em 0;
|
||||
}
|
||||
|
@ -21,7 +21,7 @@
|
||||
*/
|
||||
|
||||
//Get config files
|
||||
require('./config/config.php');
|
||||
require './config/config.php';
|
||||
|
||||
//Include the js groups
|
||||
$groups_file = "./config/js_groups.php";
|
||||
|
@ -298,7 +298,6 @@ if ( ! function_exists('do_include'))
|
||||
function init()
|
||||
{
|
||||
// Catch fatal errors, don't show them
|
||||
error_reporting((-1) & ~(E_ERROR | E_PARSE));
|
||||
register_shutdown_function('miniMVC\shutdown');
|
||||
|
||||
//Set error handlers
|
||||
@ -330,40 +329,6 @@ function get_last_segment()
|
||||
|
||||
// --------------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Call a method in another controller
|
||||
*
|
||||
* @param string
|
||||
* @param string
|
||||
* @param args
|
||||
*/
|
||||
function call_controller_method($controller, $method="index", $args=array())
|
||||
{
|
||||
// Load the routes config file
|
||||
$routes = include(MM_APP_PATH . 'config/routes.php');
|
||||
|
||||
// Set the default route
|
||||
$module = $routes['default_module'];
|
||||
$class = $routes['default_controller'];
|
||||
|
||||
// Split the controller into module/controller if possible
|
||||
$parts = explode('/', $controller);
|
||||
|
||||
if (count($parts) === 2)
|
||||
{
|
||||
list($module, $class) = $parts;
|
||||
}
|
||||
else
|
||||
{
|
||||
$class = $parts[0];
|
||||
}
|
||||
|
||||
// Call the method
|
||||
run($module, $class, $method, $args);
|
||||
}
|
||||
|
||||
// --------------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Gets an array of the segments of the current url
|
||||
*
|
||||
@ -397,13 +362,11 @@ function get_segments()
|
||||
*/
|
||||
function route()
|
||||
{
|
||||
$sn = $_SERVER['SCRIPT_NAME'];
|
||||
$ru = $_SERVER['REQUEST_URI'];
|
||||
|
||||
// Get the equivalent to path info
|
||||
$pi = (isset($_SERVER['PATH_INFO']))
|
||||
? str_replace($sn, '', $ru)
|
||||
: '/';
|
||||
// Get the path info
|
||||
$pi = $_SERVER['PATH_INFO'];
|
||||
$ru = $_SERVER['REQUEST_URI'];
|
||||
$sn = $_SERVER['SCRIPT_NAME'];
|
||||
|
||||
// Make sure the home page works when in a sub_directory
|
||||
if (strlen($sn) > strlen($ru))
|
||||
|
@ -151,22 +151,14 @@ class Page {
|
||||
|
||||
if ( ! empty($this->buffer))
|
||||
{
|
||||
$errors = error_get_last();
|
||||
if (empty($errors))
|
||||
{
|
||||
// Compression is good!
|
||||
ob_start("ob_gzhandler");
|
||||
}
|
||||
else
|
||||
{
|
||||
// @todo Figure out how to adjust content compression for 5.4.4
|
||||
ob_start();
|
||||
}
|
||||
|
||||
echo $this->buffer;
|
||||
|
||||
// Check if a buffer exists
|
||||
// so that it doesn't throw a notice
|
||||
if (ob_get_level > 0)
|
||||
if (ob_get_level() > 0)
|
||||
{
|
||||
ob_end_flush();
|
||||
}
|
||||
|
@ -21,7 +21,7 @@ namespace miniMVC;
|
||||
* @package miniMVC
|
||||
* @subpackage System
|
||||
*/
|
||||
class DB extends \Query_Builder {
|
||||
class db extends \Query_Builder {
|
||||
|
||||
/**
|
||||
* DB connection instances
|
||||
|
2
sys/db
2
sys/db
@ -1 +1 @@
|
||||
Subproject commit 977434977e4177fe5a09fffa0f3a152faa82f606
|
||||
Subproject commit 1e71b225c533bada107f439106c9216982b62daa
|
201
sys/libraries/Bcrypt.php
Normal file
201
sys/libraries/Bcrypt.php
Normal file
@ -0,0 +1,201 @@
|
||||
<?php
|
||||
/**
|
||||
* MiniMVC
|
||||
*
|
||||
* Convention-based micro-framework for PHP
|
||||
*
|
||||
* @package miniMVC
|
||||
* @author Timothy J. Warren
|
||||
* @copyright Copyright (c) 2011 - 2012
|
||||
* @link https://github.com/aviat4ion/miniMVC
|
||||
* @license http://philsturgeon.co.uk/code/dbad-license
|
||||
*/
|
||||
|
||||
// --------------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Class to simplify dealing with bcrypt for password handling
|
||||
*
|
||||
* @see
|
||||
* @package miniMVC
|
||||
* @subpackage libraries
|
||||
*/
|
||||
class Bcrypt {
|
||||
|
||||
/**
|
||||
* Number of times to recurse
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
private $rounds;
|
||||
|
||||
/**
|
||||
* Stores random seed
|
||||
*
|
||||
* @var mixed
|
||||
*/
|
||||
private $randomState;
|
||||
|
||||
/**
|
||||
* Create a new Bcrypt object
|
||||
*
|
||||
* @param int $rounds
|
||||
*/
|
||||
public function __construct($rounds = 12)
|
||||
{
|
||||
if (CRYPT_BLOWFISH != 1)
|
||||
{
|
||||
throw new Exception("bcrypt not supported in this installation. See http://php.net/crypt");
|
||||
}
|
||||
|
||||
$this->rounds = $rounds;
|
||||
}
|
||||
|
||||
// --------------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Returns a has for the input string
|
||||
*
|
||||
* @param string
|
||||
* @return string
|
||||
*/
|
||||
public function hash($input)
|
||||
{
|
||||
$hash = crypt($input, $this->getSalt());
|
||||
|
||||
if (strlen($hash) > 13)
|
||||
return $hash;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
// --------------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Check if a password hash is valid
|
||||
*
|
||||
* @param string
|
||||
* @param string
|
||||
* @return bool
|
||||
*/
|
||||
public function verify($input, $existingHash)
|
||||
{
|
||||
$hash = crypt($input, $existingHash);
|
||||
|
||||
return $hash === $existingHash;
|
||||
}
|
||||
|
||||
// --------------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Private function to generate the random salt
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
private function getSalt()
|
||||
{
|
||||
$salt = sprintf('$2a$%02d$', $this->rounds);
|
||||
|
||||
$bytes = $this->getRandomBytes(16);
|
||||
|
||||
$salt .= $this->encodeBytes($bytes);
|
||||
|
||||
return $salt;
|
||||
}
|
||||
|
||||
// --------------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Private method to generate random characters for salt
|
||||
*
|
||||
* @param int
|
||||
* @return string
|
||||
*/
|
||||
private function getRandomBytes($count)
|
||||
{
|
||||
$bytes = '';
|
||||
|
||||
if (function_exists('openssl_random_pseudo_bytes') && (strtoupper(substr(PHP_OS, 0, 3)) !== 'WIN')) // OpenSSL slow on Win
|
||||
{
|
||||
$bytes = openssl_random_pseudo_bytes($count);
|
||||
}
|
||||
|
||||
if ($bytes === '' && is_readable('/dev/urandom') && ($hRand = @fopen('/dev/urandom', 'rb')) !== FALSE)
|
||||
{
|
||||
$bytes = fread($hRand, $count);
|
||||
fclose($hRand);
|
||||
}
|
||||
|
||||
if (strlen($bytes) < $count)
|
||||
{
|
||||
$bytes = '';
|
||||
|
||||
if ($this->randomState === null)
|
||||
{
|
||||
$this->randomState = microtime();
|
||||
if (function_exists('getmypid'))
|
||||
{
|
||||
$this->randomState .= getmypid();
|
||||
}
|
||||
}
|
||||
|
||||
for ($i = 0; $i < $count; $i += 16)
|
||||
{
|
||||
$this->randomState = md5(microtime() . $this->randomState);
|
||||
|
||||
if (PHP_VERSION >= '5')
|
||||
{
|
||||
$bytes .= md5($this->randomState, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
$bytes .= pack('H*', md5($this->randomState));
|
||||
}
|
||||
}
|
||||
|
||||
$bytes = substr($bytes, 0, $count);
|
||||
}
|
||||
|
||||
return $bytes;
|
||||
}
|
||||
|
||||
// --------------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Further randomizes salt?
|
||||
*
|
||||
* @param string
|
||||
* @return string
|
||||
*/
|
||||
private function encodeBytes($input)
|
||||
{
|
||||
// The following is code from the PHP Password Hashing Framework
|
||||
$itoa64 = './ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
|
||||
|
||||
$output = '';
|
||||
$i = 0;
|
||||
do
|
||||
{
|
||||
$c1 = ord($input[$i++]);
|
||||
$output .= $itoa64[$c1 >> 2];
|
||||
$c1 = ($c1 & 0x03) << 4;
|
||||
if ($i >= 16)
|
||||
{
|
||||
$output .= $itoa64[$c1];
|
||||
break;
|
||||
}
|
||||
|
||||
$c2 = ord($input[$i++]);
|
||||
$c1 |= $c2 >> 4;
|
||||
$output .= $itoa64[$c1];
|
||||
$c1 = ($c2 & 0x0f) << 2;
|
||||
|
||||
$c2 = ord($input[$i++]);
|
||||
$c1 |= $c2 >> 6;
|
||||
$output .= $itoa64[$c1];
|
||||
$output .= $itoa64[$c2 & 0x3f];
|
||||
} while (1);
|
||||
|
||||
return $output;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user