SHARE
TWEET

Untitled

a guest Mar 20th, 2017 127 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #auth-process.php
  2.  
  3. require $_SERVER['DOCUMENT_ROOT']."/core/core-mono.php";
  4.  
  5. error_reporting(1);
  6. ini_set('display_errors',1);
  7.  
  8. myitv\Session::session__start();
  9.  
  10. if (isset($_POST['login-form']) && !empty($_POST['login-form'])){
  11.     myitv\Login::user__login($_POST['username'],$_POST['password']);
  12.     header('Location:/');
  13. }
  14.  
  15. #core-mono.php
  16.  
  17. /*
  18.  * MyITV
  19.  * Monolithic core
  20.  * Be careful when updating it.
  21.  */
  22.  
  23. //Before main namespace
  24. namespace {
  25.     require 'loader.php';
  26.  
  27.     error_reporting(E_ALL ^ E_NOTICE);
  28. }
  29.  
  30. namespace myitv{
  31.  
  32.     //use MyITV\User\Session;
  33.     use R;
  34.     use Faker;
  35.     use utilphp\util;
  36.  
  37.     /**
  38.      * Class Main
  39.      * @package myitv
  40.      */
  41.     class Main{
  42.  
  43.     }
  44.  
  45.     /**
  46.      * Class Meta
  47.      * @package myitv
  48.      */
  49.     class Metadata extends Main{
  50.         // Meta
  51.         /**
  52.          * Meta name
  53.          * @var string
  54.          */
  55.         private static $meta_name = "myitv";
  56.         /**
  57.          * Meta version
  58.          * @var string
  59.          */
  60.         private static $meta_version = "2.0";
  61.         /**
  62.          * Meta state
  63.          * @var string
  64.          */
  65.         private static $meta_state = "beta";
  66.  
  67.         /**
  68.          * Display meta
  69.          * @return string
  70.          */
  71.         public static function meta(){
  72.             return self::$meta_name."/".self::$meta_version." ".self::$meta_state;
  73.  
  74.         }
  75.     }
  76.  
  77.     /**
  78.      * Class Template
  79.      * @package myitv
  80.      */
  81.     class Template{
  82.         public static function dwoo($tpl,$params=[]){
  83.             $dwoo = new \Dwoo\Core();
  84.  
  85.             function set_paths($theme_root, $theme_dir, $tpl_dir){
  86.  
  87.                 $path = [
  88.                     "tpl_path" => '' . $theme_root . '/' . $theme_dir . '/' . $tpl_dir . '/',
  89.                     "theme_path" => '' . $theme_root . '/' . $theme_dir,
  90.                     "cache_path" => '' . $theme_root . '/' . $theme_dir . '/' . 'cache/'
  91.                 ];
  92.  
  93.                 return $path;
  94.             }
  95.  
  96.             $dwoo_paths = set_paths('themes','colorbars','tpl');
  97.  
  98.             $params=[
  99.                 'theme' => [
  100.                     'path' => $dwoo_paths['tpl_path'],
  101.                     'assets_path' => $dwoo_paths['theme_path'] . '/assets/'
  102.                 ]
  103.             ];
  104.  
  105. //cache
  106.             $dwoo->setCompileDir($dwoo_paths['cache_path']);
  107.  
  108.             $dwoo->setTemplateDir($dwoo_paths['tpl_path']);
  109.  
  110.  
  111.             echo $dwoo->get($tpl, $params);
  112.         }
  113.     }
  114.  
  115.     /**
  116.      * Class User
  117.      * @package myitv
  118.      */
  119.     class User{
  120.         function __construct()
  121.         {
  122.  
  123.         }
  124.  
  125.         function __destruct()
  126.         {
  127.             // TODO: Implement __destruct() method.
  128.         }
  129.     }
  130.  
  131.     class Session extends User
  132.     {
  133.         public static function session__start()
  134.         {
  135.             $session_lifetime = 3600 * 24 * 1; // x days
  136.             session_set_cookie_params($session_lifetime);
  137.             session_name('MYITVSESSID');
  138.             session_start();
  139.         }
  140.  
  141.         public static function session__kill()
  142.         {
  143.             //session_start();
  144.             session_unset();
  145.             session_destroy();
  146.         }
  147.     }
  148.  
  149.     class Auth extends User{
  150.         function __construct()
  151.         {
  152.  
  153.         }
  154.  
  155.         function __destruct()
  156.         {
  157.             // TODO: Implement __destruct() method.
  158.         }
  159.     }
  160.  
  161.     class Register extends Auth{
  162.         public static function user__register()
  163.         {
  164.             $reg_form = [
  165.                 'username' => $_POST['username'],
  166.                 'password' => $_POST['password'],
  167.                 'password_confirm' => $_POST['password_confirm'],
  168.                 'email' => $_POST['email']
  169.             ];
  170.  
  171.             $db_user = R::dispense('user');
  172.  
  173.             if($reg_form['password'] == $reg_form['password_confirm']){
  174.  
  175.                 //encoding password (hashing)
  176.                 $pwd_hash = password_hash($reg_form['password'], PASSWORD_BCRYPT);
  177.  
  178.                 $db_user->password_hash = $pwd_hash;
  179.             }
  180.             else{
  181.                 return "ERR_USER_REG: Passwords don't match";
  182.             }
  183.  
  184.             if (!empty($reg_form['email'])){
  185.                 $db_user->email = $reg_form['email'];
  186.             } else{
  187.                 return "ERR_USER_REG: No email";
  188.             }
  189.  
  190.             $db_user->group_id = 1;
  191.             $db_user->screenname = $db_user->username;
  192.  
  193.             R::store($db_user);
  194.  
  195.             return "Registration successful";
  196.  
  197.         }
  198.     }
  199.  
  200.     class Login extends Auth{
  201.         public static function user__login($login, $password)
  202.         {
  203.             $login_form = [
  204.                 'username' => $_POST['username'],
  205.                 'password' => $_POST['password']
  206.             ];
  207.  
  208.             $login = $login_form['username'];
  209.             $password = $login_form['password'];
  210.  
  211.             $uid = R::getRow( 'SELECT id FROM `user` WHERE user.username = :username',[':username' => $login] );
  212.             $uid_isadmin = R::getRow('select user.id from `user` WHERE user.username = :username AND user.group_id=1',[':username' => $login]);
  213.             $user_pwd = R::getRow('select user.password_hash from `user` WHERE user.username = :username',[':username' => $login]);
  214.  
  215.             if (isset($password) && !empty($password)){
  216.                 if(password_verify($password,$user_pwd['password_hash']) == true){
  217.                     if(isset($_SESSION['user_id']) && !empty($_SESSION['user_id']))
  218.                     {
  219.                         session_unset();
  220.                         Session::session__start();
  221.                         return 'already_logged_in';
  222.                     } else {
  223.                         Session::session__start();
  224.                     }
  225.  
  226.                     $_SESSION['user_id'] = $uid['id'];
  227.                     $_SESSION['username'] = $login;
  228.                     $_SESSION['login'] = 1;
  229.                     if ($_SESSION['user_id'] == $uid_isadmin['id']){
  230.                         $_SESSION['isadmin'] = 1;
  231.                     }
  232.                     return "success";
  233.  
  234.  
  235.                 } else {
  236.                     return "wrong_password";
  237.                 }
  238.             } else {
  239.                 return "no_password";
  240.             }
  241.  
  242.         }
  243.     }
  244.  
  245. }
  246.  
  247. //After main namespace
  248. namespace{
  249.  
  250. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top