Example #1
0
 private function getBooks($project_id, $page = 1)
 {
     if (!Session::exists('member')) {
         Router::redirect('home.index');
     }
     $nb = self::NUMBER_ITEM_PER_PAGE;
     $member = Session::get('member');
     $user = $this->checkUser($member['id'], $member['nickname']);
     $search = Helper::post('research');
     $project = Projects::select()->where('id', $project_id)->andWhere('id_leader', $member['id'])->get(0, 1);
     if (empty($project)) {
         Router::url('home.index');
     }
     $project = $project[0];
     $book = UsersBook::select()->addFields(['users_book.status' => 'status', 'F.id' => 'id_from', 'F.nickname' => 'nickname_from', 'T.id' => 'id_to', 'T.nickname' => 'nickname_to'])->innerJoin('users', 'F')->onJoin('F.id', '=', 'users_book.id_user_from')->innerJoin('users', 'T')->onJoin('T.id', '=', 'users_book.id_user_to')->where('status', 2)->andGroup([new Condition('WHERE', '', 'users_book.id_user_from', '!=', $project->id_client, false), new Condition('WHERE', 'AND', 'users_book.id_user_to', '!=', $project->id_client, false)])->andGroup([new Condition('WHERE', '', 'F.nickname', 'LIKE', '%' . $search . '%', false), new Condition('WHERE', 'OR', 'F.mail', 'LIKE', '%' . $search . '%', false), new Condition('WHERE', 'OR', 'T.nickname', 'LIKE', '%' . $search . '%', false), new Condition('WHERE', 'OR', 'T.mail', 'LIKE', '%' . $search . '%', false)])->andGroup([new Condition('WHERE', '', 'id_user_from', '=', $member['id'], false), new Condition('WHERE', 'OR', 'id_user_to', '=', $member['id'], false)])->get(($page - 1) * $nb, $nb);
     $count = UsersBook::select()->addFields(['COUNT(*)' => 'nb_row'])->innerJoin('users', 'F')->onJoin('F.id', '=', 'users_book.id_user_from')->innerJoin('users', 'T')->onJoin('T.id', '=', 'users_book.id_user_to')->where('status', 2)->andGroup([new Condition('WHERE', '', 'F.nickname', 'LIKE', '%' . $search . '%', false), new Condition('WHERE', 'OR', 'F.mail', 'LIKE', '%' . $search . '%', false), new Condition('WHERE', 'OR', 'T.nickname', 'LIKE', '%' . $search . '%', false), new Condition('WHERE', 'OR', 'T.mail', 'LIKE', '%' . $search . '%', false)])->andGroup([new Condition('WHERE', '', 'id_user_from', '=', $member['id'], false), new Condition('WHERE', 'OR', 'id_user_to', '=', $member['id'], false)])->get(0, 1)[0];
     $max_page = ceil($count->nb_row / $nb);
     if ($max_page == 0) {
         $max_page = 1;
     }
     $this->set('books', $book);
     $this->set('max_page', $max_page);
     $this->set('project', $project);
     $this->set('user', $user);
     $this->render('task/detail_user');
 }
Example #2
0
 public function index()
 {
     if (!Groups::check('site', Groups::getAuth('site', 'show_admin'))) {
         Router::redirect('home.index');
     }
     $this->render('admin/home', 'home.admin.title');
 }
Example #3
0
 private function checker($name, $ajax = false)
 {
     if (!Groups::check('site', Groups::getAuth('site', $name))) {
         if ($ajax) {
             echo "Vous n'avez pas les droits !";
         } else {
             Router::redirect('home.index');
         }
     }
 }
Example #4
0
 public static function redirect($name, $params = [])
 {
     if (!headers_sent()) {
         header('location: ' . Router::url($name, $params));
         exit;
     }
 }
Example #5
0
use EasyHQ\Router\Router;
// BASE
Router::get('/', 'Home@index');
Router::get('/error/404', 'Error@error404');
// USER CONNECTION
Router::get('/login', 'User@signIn');
Router::get('/register', 'User@signUp');
Router::get('/logout', 'User@logout');
Router::get('/forget', 'User@forget');
Router::get('/verify/:key', 'Account@verify');
Router::post('/login', 'User@login');
Router::post('/register', 'User@register');
Router::post('/forget', 'User@newPassword');
// USER SEARCH
Router::post('/users/ajax', 'Book@getNonMember');
Router::post('/users/ajax/:page', 'Book@getNonMemberByPage')->with('page', '[0-9]+');
// ACCOUNT
Router::get('/account/:id-:name', 'Account@show')->with('id', '[0-9]+')->with('name', '[a-zA-Z0-9\\_\\.]+');
Router::get('/account/modif/:id-:name', 'Account@form')->with('id', '[0-9]+')->with('name', '[a-zA-Z0-9\\_\\.]+');
Router::post('/account/modif/:id-:name', 'Account@update')->with('id', '[0-9]+')->with('name', '[a-zA-Z0-9\\_\\.]+');
// ACCOUNT : FRIEND AND CLIENT
Router::get('/account/book/:id-:name', 'Book@index')->with('id', '[0-9]+')->with('name', '[a-zA-Z0-9\\_\\.]+');
Router::get('/account/book/add/:id_from-:id_to-:csrf', 'Book@add')->with('id_from', '[0-9]+')->with('id_to', '[0-9]+')->with('csrf', '[a-z0-9]+');
Router::get('/account/book/ban/:id_from-:id_to-:csrf', 'Book@ban')->with('id_from', '[0-9]+')->with('id_to', '[0-9]+')->with('csrf', '[a-z0-9]+');
Router::get('/account/book/accept/:id_from-:id_to-:csrf', 'Book@accept')->with('id_from', '[0-9]+')->with('id_to', '[0-9]+')->with('csrf', '[a-z0-9]+');
Router::get('/account/book/delete/:id_from-:id_to-:csrf', 'Book@delete')->with('id_from', '[0-9]+')->with('id_to', '[0-9]+')->with('csrf', '[a-z0-9]+');
Router::post('/account/book/ajax', 'Book@get');
Router::post('/account/book/ajax/:page', 'Book@getPage')->with('page', '[0-9]+');
// ADMIN
require __DIR__ . '/other_path/tasks.php';
require __DIR__ . '/other_path/admin.php';
Example #6
0
<?php

use EasyHQ\Router\Router;
Router::get('/admin', 'Admin\\Home@index');
// ADMIN : USERS
Router::get('/admin/users', 'Admin\\User@show');
Router::post('/admin/ajax_users', 'Admin\\User@get');
Router::post('/admin/ajax_users/:page', 'Admin\\User@getPage')->with('page', '[0-9]+');
Router::get('/admin/user/mail/:id', 'Admin\\User@resend')->with('id', '[0-9]+');
Router::post('/admin/ajax_user/:id', 'Admin\\User@ajaxShow')->with('id', '[0-9]+');
Router::post('/admin/user/:id', 'Admin\\User@update')->with('id', '[0-9]+');
// ADMIN : GROUPS
Router::get('/admin/groups', 'Admin\\Group@show');
Router::post('/admin/group', 'Admin\\Group@insert');
Router::post('/admin/ajax_group', 'Admin\\Group@ajaxInsert');
Router::post('/admin/group/:id', 'Admin\\Group@update')->with('id', '[0-9]+');
Router::post('/admin/ajax_group/:id', 'Admin\\Group@ajaxShow')->with('id', '[0-9]+');
Router::get('/admin/group/default/:id-:csrf', 'Admin\\Group@defineDefault')->with('id', '[0-9]+')->with('csrf', '[a-z0-9]+');
Router::get('/admin/group/delete/:id-:csrf', 'Admin\\Group@delete')->with('id', '[0-9]+')->with('csrf', '[a-z0-9]+');
Example #7
0
 public function verify($key)
 {
     //Users::redirectIf(true);
     $users = Users::select()->where('mail_check', $key)->andWhere('TIMESTAMPDIFF(MINUTE, mail_check_at, NOW())', '<', 30, false)->get();
     if (!empty($users)) {
         $user = $users[0];
         $user->mail_check = '1';
         $user->save();
     }
     $users = Users::select()->where('mail_check', '!=', '1')->andWhere('TIMESTAMPDIFF(MINUTE, mail_check_at, NOW())', '>', 35, false)->get();
     foreach ($users as $user) {
         $user->delete();
     }
     Session::setFlash('success', '', Translate::get('user.success.register_mail'));
     Router::redirect('home.index');
 }
Example #8
0
 public function newPassword()
 {
     Users::redirectIf(true);
     try {
         $user = Users::findOrFail('mail', Helper::post('mail'));
         $pass = Config::randomString(8);
         $user->password = password_hash($pass, PASSWORD_BCRYPT);
         $user->save();
         Users::resendPassword($user, $pass);
     } catch (\Exception $e) {
         Session::setFlash('danger', '', 'Aucun compte trouvée avec cette adresse email !');
     }
     Router::redirect('user.signin');
 }
Example #9
0
<?php

use EasyHQ\Router\Router;
Router::get('/tasks', 'Task\\Home@index');
/* TASK : PROJECT */
Router::post('/tasks/project/ajax', 'Task\\Project@ajaxInsert');
Router::post('/tasks/project/ajax/:id', 'Task\\Project@ajaxUpdate')->with('id', '[0-9]+');
Router::post('/tasks/project/insert', 'Task\\Project@insert');
Router::post('/tasks/project/update/:id', 'Task\\Project@update')->with('id', '[0-9]+');
Router::get('/tasks/project/:id', 'Task\\Project@detail')->with('id', '[0-9]+');
Router::get('/tasks/project/delete/:id-:csrf', 'Task\\Project@delete')->with('id', '[0-9]+')->with('csrf', '[a-z0-9]+');
Router::get('/tasks/project/change/client/:idProject-:idFrom-:idTo-:csrf', 'Task\\Details@changeClient')->with('idProject', '[0-9]+')->with('idFrom', '[0-9]+')->with('idTo', '[0-9]+')->with('csrf', '[a-z0-9]+');
/* AJAX IN DETAILS */
Router::post('/tasks/details/ajax/:id', 'Task\\Details@get')->with('id', '[0-9]+');
Router::post('/tasks/details/ajax/:id-:page', 'Task\\Details@getPage')->with('id', '[0-9]+')->with('page', '[0-9]+');
Example #10
0
 private function ajaxSub($id = 0)
 {
     if (!Groups::check('site', Groups::getAuth('site', 'update_full_admin'))) {
         return;
     }
     $group = Groups::findOrCreate('id', $id);
     $get = [];
     foreach (Groups::$authorization as $k => $v) {
         if (!isset($get[$k])) {
             $get[$k] = [];
         }
         $name = "auth_{$k}";
         foreach ($v as $key => $value) {
             $get[$k][$key] = $this->isActive($k, $key, $group->{$name});
         }
         $this->set($k, $get[$k]);
     }
     if ($group->id == 0) {
         $url = Router::url('admin:group.insert');
     } else {
         $url = Router::url('admin:group.update', ['id' => $group->id]);
     }
     $this->set(['group' => $group, 'url' => $url]);
     $this->render('admin/groups_spec');
 }
Example #11
0
<?php

header('Content-Type: text/html; charset=utf-8');
require __DIR__ . '/vendor/autoload.php';
use EasyHQ\Config;
use EasyHQ\Translate;
use EasyHQ\Router\Router;
Config::setup();
/* Define language */
$language = 'fr_FR';
if (!isset($_GET['lang'])) {
    if (isset($_COOKIE['language'])) {
        if (Translate::checkLang($_COOKIE['language'])) {
            $language = $_COOKIE['language'];
        }
    }
} else {
    $language = Translate::getLang($_GET['lang']);
    setcookie('language', $language, time() + 7 * 24 * 3600, '/', null, false, true);
    $go = isset($_GET['url']) ? $_GET['url'] : '';
    header("location: /{$go}");
}
Translate::setup($language);
Router::init();
Example #12
0
 public static function redirectIf($connected)
 {
     if (Session::exists('member') == $connected) {
         Router::redirect('home.index');
     }
 }
Example #13
0
 private function getForContact($page = 1)
 {
     if (!Session::exists('member')) {
         Router::redirect('home.index');
     }
     $nb = self::NUMBER_ITEM_PER_PAGE;
     $member = Session::get('member');
     $member = $this->checkUser($member['id'], $member['nickname']);
     $search = Helper::post('research');
     $all_contact = UsersBook::select()->where('id_user_from', $member->id)->orWhere('id_user_to', $member->id)->get();
     $list = [$member->id];
     foreach ($all_contact as $contact) {
         if ($contact->id_user_from == $member->id) {
             $list[] = $contact->id_user_to;
         } else {
             $list[] = $contact->id_user_from;
         }
     }
     $users = Users::select()->addFields(['users.id' => 'user_id', 'users.nickname' => 'user_nickname', 'users.mail' => 'user_mail'])->where('users.mail_check', '1')->andWhere('users.id', 'NOT IN', $list)->andGroup([new Condition('WHERE', '', 'users.nickname', 'LIKE', '%' . $search . '%', false), new Condition('WHERE', 'OR', 'users.mail', 'LIKE', '%' . $search . '%', false)])->get(($page - 1) * $nb, $nb);
     $count = Users::select()->addFields(['COUNT(*)' => 'nb_user'])->where('users.mail_check', '1')->andWhere('users.id', 'NOT IN', $list)->andGroup([new Condition('WHERE', '', 'users.nickname', 'LIKE', '%' . $search . '%', false), new Condition('WHERE', 'OR', 'users.mail', 'LIKE', '%' . $search . '%', false)])->get(0, 1);
     $max_page = 0;
     if (!empty($count)) {
         $count = $count[0];
         $max_page = ceil($count->nb_user / $nb);
     }
     if ($max_page == 0) {
         $max_page = 1;
     }
     $this->set('max_page', $max_page);
     $this->set('users', $users);
     $this->set('member', $member);
     $this->render('user/search');
 }
Example #14
0
 private function ajaxSub($id = 0)
 {
     Users::redirectIf(false);
     $member = Session::get('member');
     $project = Projects::findOrCreate('id', $id);
     if ($project->id == 0) {
         $dl = new \DateTime();
         $deadline = $dl->format('d/m/Y H:i');
         $url = Router::url('task:project.insert');
     } else {
         if ($project->id_leader != $member['id']) {
             return;
         }
         $dl = new \DateTime($project->deadline);
         $deadline = $dl->format('d/m/Y H:i');
         $url = Router::url('task:project.update', ['id' => $id]);
     }
     $this->set(['url' => $url, 'deadline' => explode(' ', $deadline), 'project' => $project]);
     $this->render('task/project_spec');
 }