Esempio n. 1
0
 public function getContent()
 {
     if (LoggedUser::whoIsLogged()) {
         if (isset($_COOKIE['ref_url'])) {
             $url = $_COOKIE['ref_url'];
             $absolute = FALSE;
         } else {
             $page = PageActionMap::getPageByTypeAndLanguage('rooms');
             $url = PageActionMap::createUrl($page['alias']);
             $absolute = TRUE;
         }
         Utils::redirect($url, $absolute);
     }
     if (Utils::post('login')) {
         MySmarty::assign('username', Utils::post('username'));
         $validation = LoggedUser::userLogin();
         //var_Dump($validation);exit();
         if ($validation === TRUE) {
             Utils::redirect(Utils::getActualUrlWithoutGetParameters(), FALSE);
         } else {
             MySmarty::assign('errors', $validation);
         }
     }
     return MySmarty::fetch('login.tpl');
 }
Esempio n. 2
0
 /**
  * log the user - if not exists register him/her and then log the user
  *
  * @return	void
  */
 public static function userLogin()
 {
     $errors = array();
     $hash = addslashes(Utils::get('hash'));
     if ($hash) {
         $userRepository = new UserRepository();
         $user = $userRepository->getOneByHash($hash);
     } else {
         if (Utils::post('username') != '') {
             $username = addslashes(Utils::post('username'));
             if (!ctype_alnum($username)) {
                 $errors['username'] = '******';
                 // TODO localize
             }
         } else {
             $errors['username'] = '******';
             // TODO localize
         }
         if (Utils::post('password') != '') {
             $password = md5(addslashes(Utils::post('password')));
         } else {
             $errors['password'] = '******';
             // TODO localize
         }
         if (empty($errors)) {
             $userRepository = new UserRepository();
             $userExist = $userRepository->getOneByUsername($username);
             if ($userExist === NULL) {
                 $colorRepository = new ColorRepository();
                 $count = $colorRepository->getCountAll();
                 $rand = rand(1, $count);
                 $params = array('username' => $username, 'password' => $password, 'color' => $rand);
                 $user = new User($params);
                 $user = $user->save(TRUE);
             } elseif ($userExist['password'] != $password) {
                 $errors['password'] = '******';
             } else {
                 $user = $userExist;
             }
         }
     }
     if ($user && empty($errors)) {
         // TODO po prihlaseni treba nejako zmazat v memcachi query, ktora vybera usera podla cookie_value
         // lebo teraz to stale vracia vysledok z memcache -> ked sa prihlasim v dvoch browsroch, v obidvoch to funguje
         // neodhlasi ma z toho prveho
         $cookieValue = md5(time() . $user['id'] . $user['username']);
         DB::update(DB_PREFIX . 'user', array('cookie_value' => $cookieValue), 'id = ' . $user['id']);
         $expire = Utils::post('remember') == 1 ? strtotime('+1 year') : 0;
         setcookie(self::$cookieName, $cookieValue, $expire, '/');
         return TRUE;
     } else {
         return $errors;
     }
 }
Esempio n. 3
0
 protected function setup()
 {
     $loggedUser = LoggedUser::whoIsLogged();
     if (Utils::post('change_settings')) {
         // TODO check if password and confirm password match
         $loggedUser['password'] = md5(Utils::post('password'));
         $loggedUser['name'] = Utils::post('name');
         $loggedUser['surname'] = Utils::post('surname');
         $loggedUser['color'] = intval(Utils::post('color'));
         $loggedUser->save();
     }
     MySmarty::assign('loggedUser', $loggedUser);
     $colorRepository = new ColorRepository();
     $colors = $colorRepository->getAll();
     MySmarty::assign('colors', $colors);
 }
Esempio n. 4
0
 protected function setup()
 {
     $loggedUser = LoggedUser::whoIsLogged();
     if (Utils::post('create_room') && $loggedUser['admin']) {
         $params = array('title' => Utils::post('title'), 'alias' => Utils::createAlias(Utils::post('title'), 'room'), 'description' => Utils::post('description'));
         $room = new Room($params);
         $room->save();
     }
     $roomRepository = new RoomRepository();
     $rooms = $roomRepository->getAll();
     $gameRepository = new GameRepository();
     $games = $gameRepository->getGamesByRooms(array_keys($rooms));
     foreach ($games as $game) {
         $rooms[$game['room']]['game'] = TRUE;
         $rooms[$game['room']]['status'] = Localize::getMessage('room_status_' . $game['status']);
     }
     MySmarty::assign('loggedUser', $loggedUser);
     MySmarty::assign('rooms', $rooms);
 }
Esempio n. 5
0
 public function main()
 {
     $gameId = intval(Utils::post('game'));
     $roomId = intval(Utils::post('room'));
     $gameRepository = new GameRepository();
     // $gameRepository->addAdditionalWhere(array('column' => 'status', 'value' => Game::GAME_STATUS_ENDED, 'xxx' => '!='));
     $gameRepository->addOrderBy(array('id' => 'DESC'));
     $game = $gameRepository->getOneByRoom($roomId);
     //		if ($gameId) {
     //			$game = $gameRepository->getOneById($gameId);
     //		} else {
     //
     //		}
     $roomRepository = new RoomRepository();
     $room = $roomRepository->getOneById($roomId);
     $gameBox = new GameBox();
     $gameBox->setRoom($room);
     if ($game) {
         $gameBox->setGame($game);
     }
     echo $gameBox->render();
 }
Esempio n. 6
0
                $type = 'recette';
            }
            Utils::redirect('/admin/compta/operations/saisir.php?' . $type . '&ok=' . (int) $id);
        } catch (UserException $e) {
            $error = $e->getMessage();
        }
    }
}
$tpl->assign('error', $error);
$tpl->assign('type', $type);
if ($type === null) {
    $tpl->assign('comptes', $comptes->listTree());
} else {
    $tpl->assign('moyens_paiement', $cats->listMoyensPaiement());
    $tpl->assign('moyen_paiement', Utils::post('moyen_paiement') ?: 'ES');
    $tpl->assign('categories', $cats->getList($type === 'dette' ? Compta\Categories::DEPENSES : $type));
    $tpl->assign('comptes_bancaires', $banques->getList());
    $tpl->assign('banque', Utils::post('banque'));
}
if (!$membres->sessionGet('compta_date')) {
    $exercices = new Compta\Exercices();
    $exercice = $exercices->getCurrent();
    if ($exercice['debut'] > time() || $exercice['fin'] < time()) {
        $membres->sessionStore('compta_date', date('Y-m-d', $exercice['debut']));
    } else {
        $membres->sessionStore('compta_date', date('Y-m-d'));
    }
}
$tpl->assign('date', $membres->sessionGet('compta_date') ?: false);
$tpl->assign('ok', (int) Utils::get('ok'));
$tpl->display('admin/compta/operations/saisir.tpl');
Esempio n. 7
0
 public function main()
 {
     $gameId = intval(Utils::post('game'));
     $gameRepository = new GameRepository();
     $game = $gameRepository->getOneById($gameId);
     $commandParams = array();
     $commandParams['command'] = addslashes(Utils::post('command'));
     $commandParams['useCharacter'] = intval(Utils::post('useCharacter'));
     $commandParams['playCardId'] = intval(Utils::post('playCard'));
     if ($commandParams['playCardId']) {
         $cardRepository = new CardRepository(TRUE);
         $card = $cardRepository->getOneById($commandParams['playCardId']);
         $commandParams['playCardName'] = str_replace('-', '', $card->getItemAlias());
     }
     // TODO mozno ich niekedy bude viac
     $commandParams['additionalCardsId'] = intval(Utils::post('additionalCard'));
     if ($commandParams['additionalCardsId']) {
         $cardRepository = new CardRepository(TRUE);
         $card = $cardRepository->getOneById($commandParams['additionalCardsId']);
         $commandParams['additionalCardsName'] = str_replace('-', '', $card->getItemAlias());
     }
     $commandParams['enemyPlayerId'] = intval(Utils::post('player'));
     if ($commandParams['enemyPlayerId']) {
         $playerRepository = new PlayerRepository();
         $player = $playerRepository->getOneById($commandParams['enemyPlayerId']);
         if ($player) {
             $user = $player->getUser();
             if ($user) {
                 $commandParams['enemyPlayerUsername'] = $user['username'];
             }
         }
     }
     if ($commandParams['command'] == 'fanning') {
         $commandParams['additionalEnemyPlayerId'] = intval(Utils::post('additionalPlayer'));
         if ($commandParams['additionalEnemyPlayerId']) {
             $playerRepository = new PlayerRepository();
             $player = $playerRepository->getOneById($commandParams['additionalEnemyPlayerId']);
             if ($player) {
                 $user = $player->getUser();
                 if ($user) {
                     $commandParams['additionalEnemyPlayerUsername'] = $user['username'];
                 }
             }
         }
     }
     // TODO brawl tu dava addslashes
     if ($commandParams['command'] == 'brawl') {
         $commandParams['enemyCardsId'] = addslashes(Utils::post('card'));
     } elseif ($commandParams['command'] == 'choose_cards') {
         $commandParams['selectedCards'] = addslashes(Utils::post('card'));
     } else {
         $commandParams['enemyCardsId'] = intval(Utils::post('card'));
         if ($commandParams['enemyCardsId']) {
             $cardRepository = new CardRepository(TRUE);
             $card = $cardRepository->getOneById($commandParams['enemyCardsId']);
             $commandParams['enemyCardsName'] = str_replace('-', '', $card->getItemAlias());
         }
     }
     $commandParams['place'] = addslashes(Utils::post('place'));
     if (Utils::post('peyoteColor')) {
         $commandParams['peyoteColor'] = addslashes(Utils::post('peyoteColor'));
     }
     if (Utils::post('text')) {
         $commandParams['text'] = addslashes(Utils::post('text'));
     }
     $params = array();
     foreach ($commandParams as $key => $value) {
         $params[] = $key . '=' . $value;
     }
     $commandString = implode('&', $params);
     Log::command($commandString);
     Command::setup($commandString, $game);
 }
Esempio n. 8
0
    if (!Utils::CSRF_check('config')) {
        $error = 'Une erreur est survenue, merci de renvoyer le formulaire.';
    } else {
        try {
            $config->set('nom_asso', Utils::post('nom_asso'));
            $config->set('email_asso', Utils::post('email_asso'));
            $config->set('adresse_asso', Utils::post('adresse_asso'));
            $config->set('site_asso', Utils::post('site_asso'));
            $config->set('email_envoi_automatique', Utils::post('email_envoi_automatique'));
            $config->set('accueil_wiki', Utils::post('accueil_wiki'));
            $config->set('accueil_connexion', Utils::post('accueil_connexion'));
            $config->set('categorie_membres', Utils::post('categorie_membres'));
            $config->set('champ_identite', Utils::post('champ_identite'));
            $config->set('champ_identifiant', Utils::post('champ_identifiant'));
            $config->set('pays', Utils::post('pays'));
            $config->set('monnaie', Utils::post('monnaie'));
            $config->save();
            Utils::redirect('/admin/config/?ok');
        } catch (UserException $e) {
            $error = $e->getMessage();
        }
    }
}
$tpl->assign('error', $error);
$tpl->assign('garradin_version', garradin_version() . ' [' . (garradin_manifest() ?: 'release') . ']');
$tpl->assign('php_version', phpversion());
$v = \SQLite3::version();
$tpl->assign('sqlite_version', $v['versionString']);
$tpl->assign('pays', Utils::getCountryList());
$cats = new Membres\Categories();
$tpl->assign('membres_cats', $cats->listSimple());
Esempio n. 9
0
<?php

namespace Garradin;

require_once __DIR__ . '/../_inc.php';
if ($user['droits']['compta'] < Membres::DROIT_ADMIN) {
    throw new UserException("Vous n'avez pas le droit d'accéder à cette page.");
}
$banque = new Compta\Comptes_Bancaires();
$compte = $banque->get(Utils::get('id'));
if (!$compte) {
    throw new UserException('Le compte demandé n\'existe pas.');
}
$error = false;
if (!empty($_POST['save'])) {
    if (!Utils::CSRF_check('compta_edit_banque_' . $compte['id'])) {
        $error = 'Une erreur est survenue, merci de renvoyer le formulaire.';
    } else {
        try {
            $id = $banque->edit($compte['id'], ['libelle' => Utils::post('libelle'), 'banque' => Utils::post('banque'), 'iban' => Utils::post('iban'), 'bic' => Utils::post('bic')]);
            Utils::redirect('/admin/compta/banques/');
        } catch (UserException $e) {
            $error = $e->getMessage();
        }
    }
}
$tpl->assign('error', $error);
$tpl->assign('compte', $compte);
$tpl->display('admin/compta/banques/modifier.tpl');
Esempio n. 10
0
$rappel = $rappels->get(Utils::get('id'));
if (!$rappel) {
    throw new UserException("Ce rappel n'existe pas.");
}
$cotisations = new Cotisations();
$error = false;
if (!empty($_POST['save'])) {
    if (!Utils::CSRF_check('edit_rappel_' . $rappel['id'])) {
        $error = 'Une erreur est survenue, merci de renvoyer le formulaire.';
    } else {
        try {
            if (Utils::post('delai_choix') == 0) {
                $delai = 0;
            } elseif (Utils::post('delai_choix') > 0) {
                $delai = (int) Utils::post('delai_post');
            } else {
                $delai = -(int) Utils::post('delai_pre');
            }
            $rappels->edit($rappel['id'], ['sujet' => Utils::post('sujet'), 'texte' => Utils::post('texte'), 'delai' => $delai, 'id_cotisation' => Utils::post('id_cotisation')]);
            Utils::redirect('/admin/membres/cotisations/gestion/rappels.php');
        } catch (UserException $e) {
            $error = $e->getMessage();
        }
    }
}
$tpl->assign('error', $error);
$rappel['delai_pre'] = $rappel['delai_post'] = abs($rappel['delai']) ?: 30;
$rappel['delai_choix'] = $rappel['delai'] == 0 ? 0 : ($rappel['delai'] > 0 ? 1 : -1);
$tpl->assign('rappel', $rappel);
$tpl->assign('cotisations', $cotisations->listCurrent());
$tpl->display('admin/membres/cotisations/gestion/rappel_modifier.tpl');
Esempio n. 11
0
namespace Garradin;

require_once __DIR__ . '/../_inc.php';
if ($user['droits']['compta'] < Membres::DROIT_ADMIN) {
    throw new UserException("Vous n'avez pas le droit d'accéder à cette page.");
}
$e = new Compta\Exercices();
$exercice = $e->get((int) Utils::get('id'));
if (!$exercice) {
    throw new UserException('Exercice inconnu.');
}
if ($exercice['cloture']) {
    throw new UserException('Impossible de modifier un exercice clôturé.');
}
$error = false;
if (!empty($_POST['edit'])) {
    if (!Utils::CSRF_check('compta_modif_exercice_' . $exercice['id'])) {
        $error = 'Une erreur est survenue, merci de renvoyer le formulaire.';
    } else {
        try {
            $id = $e->edit($exercice['id'], ['libelle' => Utils::post('libelle'), 'debut' => Utils::post('debut'), 'fin' => Utils::post('fin')]);
            Utils::redirect('/admin/compta/exercices/');
        } catch (UserException $e) {
            $error = $e->getMessage();
        }
    }
}
$tpl->assign('error', $error);
$tpl->assign('exercice', $exercice);
$tpl->display('admin/compta/exercices/modifier.tpl');
Esempio n. 12
0
namespace Garradin;

const LOGIN_PROCESS = true;
require_once __DIR__ . '/_inc.php';
$error = false;
if (trim(Utils::get('c'))) {
    if ($membres->recoverPasswordConfirm(Utils::get('c'))) {
        Utils::redirect('/admin/password.php?new_sent');
    }
    $error = 'EXPIRED';
} elseif (!empty($_POST['recover'])) {
    if (!Utils::CSRF_check('recoverPassword')) {
        $error = 'OTHER';
    } else {
        if (trim(Utils::post('id')) && $membres->recoverPasswordCheck(Utils::post('id'))) {
            Utils::redirect('/admin/password.php?sent');
        }
        $error = 'MAIL';
    }
}
if (!$error && isset($_GET['sent'])) {
    $tpl->assign('sent', true);
} elseif (!$error && isset($_GET['new_sent'])) {
    $tpl->assign('new_sent', true);
}
$champs = $config->get('champs_membres');
$champ = $champs->get($config->get('champ_identifiant'));
$tpl->assign('champ', $champ);
$tpl->assign('error', $error);
$tpl->display('admin/password.tpl');
Esempio n. 13
0
namespace Garradin;

require_once __DIR__ . '/../_inc.php';
if ($user['droits']['compta'] < Membres::DROIT_ADMIN) {
    throw new UserException("Vous n'avez pas le droit d'accéder à cette page.");
}
$cats = new Compta\Categories();
$error = false;
if (!empty($_POST['add'])) {
    if (!Utils::CSRF_check('compta_ajout_cat')) {
        $error = 'Une erreur est survenue, merci de renvoyer le formulaire.';
    } else {
        try {
            $id = $cats->add(['intitule' => Utils::post('intitule'), 'description' => Utils::post('description'), 'compte' => Utils::post('compte'), 'type' => Utils::post('type')]);
            if (Utils::post('type') == Compta\Categories::DEPENSES) {
                $type = 'depenses';
            } elseif (Utils::post('type') == Compta\Categories::AUTRES) {
                $type = 'autres';
            } else {
                $type = 'recettes';
            }
            Utils::redirect('/admin/compta/categories/?' . $type);
        } catch (UserException $e) {
            $error = $e->getMessage();
        }
    }
}
$tpl->assign('error', $error);
$tpl->assign('type', isset($_POST['type']) ? Utils::post('type') : Compta\Categories::RECETTES);
$tpl->assign('comptes', $comptes->listTree());
$tpl->display('admin/compta/categories/ajouter.tpl');
Esempio n. 14
0
if ($user['droits']['compta'] < Membres::DROIT_ADMIN) {
    throw new UserException("Vous n'avez pas le droit d'accéder à cette page.");
}
$cats = new Compta\Categories();
$id = (int) Utils::get('id');
$cat = $cats->get($id);
if (!$cat) {
    throw new UserException('Cette catégorie n\'existe pas.');
}
$error = false;
if (!empty($_POST['save'])) {
    if (!Utils::CSRF_check('compta_edit_cat_' . $cat['id'])) {
        $error = 'Une erreur est survenue, merci de renvoyer le formulaire.';
    } else {
        try {
            $id = $cats->edit($id, ['intitule' => Utils::post('intitule'), 'description' => Utils::post('description')]);
            if ($cat['type'] == Compta\Categories::DEPENSES) {
                $type = 'depenses';
            } elseif ($cat['type'] == Compta\Categories::AUTRES) {
                $type = 'autres';
            } else {
                $type = 'recettes';
            }
            Utils::redirect('/admin/compta/categories/?' . $type);
        } catch (UserException $e) {
            $error = $e->getMessage();
        }
    }
}
$tpl->assign('error', $error);
$tpl->assign('cat', $cat);
Esempio n. 15
0
 protected function setup()
 {
     $roomAlias = Utils::get('identifier');
     $roomRepository = new RoomRepository();
     $room = $roomRepository->getOneByAlias($roomAlias);
     $loggedUser = LoggedUser::whoIsLogged();
     if ($room) {
         $gameRepository = new GameRepository();
         // $gameRepository->addAdditionalWhere(array('column' => 'status', 'value' => Game::GAME_STATUS_ENDED, 'xxx' => '!='));
         $gameRepository->addOrderBy(array('id' => 'DESC'));
         $game = $gameRepository->getOneByRoom($room['id']);
         if (Utils::post()) {
             $message = addslashes(trim(Utils::post('message')));
             if ($message != '') {
                 if (strpos($message, '.') === 0) {
                     $response = Command::setup('command=' . substr($message, 1), $game);
                 } else {
                     $response = Command::setup('command=say&text=' . $message . '&room=' . $room['id'] . '&game=' . $game['id'], $game);
                 }
                 Room::updateUserLastActivity($loggedUser['id'], $room['id']);
             } elseif (Utils::post('create')) {
                 $response = Command::setup('command=create', $game);
             } elseif (Utils::post('join')) {
                 $response = Command::setup('command=join', $game);
             } elseif (Utils::post('add_ai_player')) {
                 $response = Command::setup('command=add_ai_player', $game);
             } elseif (Utils::post('start')) {
                 $response = Command::setup('command=init', $game);
             } elseif (Utils::post('choose_character')) {
                 $response = Command::setup('command=choose_character&selectedCharacter=' . Utils::post('character'), $game);
             } elseif (Utils::post('choose_cards')) {
                 $commandParams = array();
                 $commandParams['command'] = 'choose_cards';
                 $commandParams['selectedCards'] = array();
                 if (Utils::post('card')) {
                     $commandParams['selectedCards'] = implode(',', Utils::post('card'));
                 }
                 $params = array();
                 foreach ($commandParams as $key => $value) {
                     $params[] = $key . '=' . $value;
                 }
                 $commandString = implode('&', $params);
                 $response = Command::setup($commandString, $game);
             }
             Utils::redirect(Utils::getActualUrl(), FALSE);
             // TODO tu by sa mohol spravit redirect asi lebo respons bude v db
             MySmarty::assign('response', $response);
         }
         $gameBox = new GameBox();
         $gameBox->setRoom($room);
         if ($game !== NULL) {
             $gameBox->setGame($game);
         }
         MySmarty::assign('gameBox', $gameBox->render());
         $chatBox = new ChatBox();
         $chatBox->setRoom($room);
         if ($game !== NULL) {
             $chatBox->setGame($game);
         }
         MySmarty::assign('chatBox', $chatBox->render());
     } else {
         // TODO 404 room not found
     }
 }
Esempio n. 16
0
<?php

namespace Garradin;

require_once __DIR__ . '/../_inc.php';
if ($user['droits']['membres'] < Membres::DROIT_ADMIN) {
    throw new UserException("Vous n'avez pas le droit d'accéder à cette page.");
}
$membre = $membres->get(Utils::get('id'));
if (!$membre) {
    throw new UserException("Ce membre n'existe pas.");
}
$error = false;
if (Utils::post('delete')) {
    if (!Utils::CSRF_check('delete_membre_' . $membre['id'])) {
        $error = 'Une erreur est survenue, merci de renvoyer le formulaire.';
    } else {
        try {
            $membres->delete($membre['id']);
            Utils::redirect('/admin/membres/');
        } catch (UserException $e) {
            $error = $e->getMessage();
        }
    }
}
$tpl->assign('membre', $membre);
$tpl->assign('error', $error);
$tpl->display('admin/membres/supprimer.tpl');
Esempio n. 17
0
        }
    }
}
if (!$debut || !$fin) {
    $date = $exercice['fin'];
    $debut = date('Y-m-01', $date);
    $fin = date('Y-m-t', $date);
}
$journal = $rapprochement->getJournal($compte['id'], $debut, $fin, $solde_initial, $solde_final);
// Enregistrement des cases cochées
if (Utils::post('save')) {
    if (!Utils::CSRF_check('compta_rapprocher_' . $compte['id'])) {
        $error = 'Une erreur est survenue, merci de renvoyer le formulaire.';
    } else {
        try {
            $rapprochement->record($compte['id'], $journal, Utils::post('rapprocher'), $user['id']);
            Utils::redirect(Utils::getSelfURL());
        } catch (UserException $e) {
            $error = $e->getMessage();
        }
    }
}
if (substr($debut, 0, 7) == substr($fin, 0, 7)) {
    $tpl->assign('prev', Utils::modifyDate($debut, '-1 month', true));
    $tpl->assign('next', Utils::modifyDate($fin, '+1 month', true));
}
$tpl->assign('compte', $compte);
$tpl->assign('debut', $debut);
$tpl->assign('fin', $fin);
$tpl->assign('journal', $journal);
$tpl->assign('solde_initial', $solde_initial);
Esempio n. 18
0
function tpl_select_compte($params)
{
    $name = $params['name'];
    $comptes = $params['comptes'];
    $selected = isset($params['data'][$params['name']]) ? $params['data'][$params['name']] : Utils::post($name);
    $out = '<select name="' . $name . '" id="f_' . $name . '" class="large">';
    foreach ($comptes as $compte) {
        // Ne pas montrer les comptes désactivés
        if (!empty($compte['desactive'])) {
            continue;
        }
        if (!isset($compte['id'][1])) {
            $out .= '<optgroup label="' . htmlspecialchars($compte['libelle'], ENT_QUOTES, 'UTF-8', false) . '" class="niveau_1"></optgroup>';
        } elseif (!isset($compte['id'][2]) && empty($params['create'])) {
            if ($compte['id'] > 10) {
                $out .= '</optgroup>';
            }
            $out .= '<optgroup label="' . htmlspecialchars($compte['id'] . ' - ' . $compte['libelle'], ENT_QUOTES, 'UTF-8', false) . '" class="niveau_2">';
        } else {
            $out .= '<option value="' . htmlspecialchars($compte['id'], ENT_QUOTES, 'UTF-8', false) . '" class="niveau_' . strlen($compte['id']) . '"';
            if ($selected == $compte['id']) {
                $out .= ' selected="selected"';
            }
            $out .= '>' . htmlspecialchars($compte['id'] . ' - ' . $compte['libelle'], ENT_QUOTES, 'UTF-8', false);
            $out .= '</option>';
        }
    }
    $out .= '</optgroup>';
    $out .= '</select>';
    return $out;
}
Esempio n. 19
0
    throw new UserException("Argument du numéro de cotisation manquant.");
}
$cotisations = new Cotisations();
$co = $cotisations->get(Utils::get('id'));
$cats = new Compta\Categories();
if (!$co) {
    throw new UserException("Cette cotisation n'existe pas.");
}
$error = false;
if (!empty($_POST['save'])) {
    if (!Utils::CSRF_check('edit_co_' . $co['id'])) {
        $error = 'Une erreur est survenue, merci de renvoyer le formulaire.';
    } else {
        try {
            $duree = Utils::post('periodicite') == 'jours' ? (int) Utils::post('duree') : null;
            $debut = Utils::post('periodicite') == 'date' ? Utils::post('debut') : null;
            $fin = Utils::post('periodicite') == 'date' ? Utils::post('fin') : null;
            $id_cat = Utils::post('categorie') ? (int) Utils::post('id_categorie_compta') : null;
            $cotisations->edit($co['id'], ['intitule' => Utils::post('intitule'), 'description' => Utils::post('description'), 'montant' => (double) Utils::post('montant'), 'duree' => $duree, 'debut' => $debut, 'fin' => $fin, 'id_categorie_compta' => $id_cat]);
            Utils::redirect('/admin/membres/cotisations/');
        } catch (UserException $e) {
            $error = $e->getMessage();
        }
    }
}
$tpl->assign('error', $error);
$co['periodicite'] = $co['duree'] ? 'jours' : ($co['debut'] ? 'date' : 'ponctuel');
$co['categorie'] = $co['id_categorie_compta'] ? 1 : 0;
$tpl->assign('cotisation', $co);
$tpl->assign('categories', $cats->getList(Compta\Categories::RECETTES));
$tpl->display('admin/membres/cotisations/gestion/modifier.tpl');
Esempio n. 20
0
             $id = $cats->add(['nom' => 'Anciens membres', 'droit_inscription' => Membres::DROIT_AUCUN, 'droit_wiki' => Membres::DROIT_AUCUN, 'droit_membres' => Membres::DROIT_AUCUN, 'droit_compta' => Membres::DROIT_AUCUN, 'droit_config' => Membres::DROIT_AUCUN, 'droit_connexion' => Membres::DROIT_AUCUN, 'cacher' => 1]);
             $id = $cats->add(['nom' => ucfirst(Utils::post('cat_membre')), 'droit_inscription' => Membres::DROIT_AUCUN, 'droit_wiki' => Membres::DROIT_ADMIN, 'droit_membres' => Membres::DROIT_ADMIN, 'droit_compta' => Membres::DROIT_ADMIN, 'droit_config' => Membres::DROIT_ADMIN]);
             // Création premier membre
             $membres = new Membres();
             $id_membre = $membres->add(['id_categorie' => $id, 'nom' => Utils::post('nom_membre'), 'email' => Utils::post('email_membre'), 'passe' => Utils::post('passe_membre'), 'pays' => 'FR']);
             // Création wiki
             $page = Wiki::transformTitleToURI(Utils::post('nom_asso'));
             $config->set('accueil_wiki', $page);
             $wiki = new Wiki();
             $id_page = $wiki->create(['titre' => Utils::post('nom_asso'), 'uri' => $page]);
             $wiki->editRevision($id_page, 0, ['id_auteur' => $id_membre, 'contenu' => "Bienvenue dans le wiki de " . Utils::post('nom_asso') . " !\n\nCliquez sur le bouton « éditer » pour modifier cette page."]);
             // Création page wiki connexion
             $page = Wiki::transformTitleToURI('Bienvenue');
             $config->set('accueil_connexion', $page);
             $id_page = $wiki->create(['titre' => 'Bienvenue', 'uri' => $page]);
             $wiki->editRevision($id_page, 0, ['id_auteur' => $id_membre, 'contenu' => "Bienvenue dans l'administration de " . Utils::post('nom_asso') . " !\n\n" . "Utilisez le menu à gauche pour accéder aux différentes rubriques."]);
             // Mise en place compta
             $comptes = new Compta\Comptes();
             $comptes->importPlan();
             $comptes = new Compta\Categories();
             $comptes->importCategories();
             $ex = new Compta\Exercices();
             $ex->add(['libelle' => 'Premier exercice', 'debut' => date('Y-01-01'), 'fin' => date('Y-12-31')]);
             $config->save();
             Utils::redirect('/admin/login.php');
         } catch (UserException $e) {
             @unlink(DB_FILE);
             $error = $e->getMessage();
         }
     }
 }
Esempio n. 21
0
$import = new Compta\Import();
if (isset($_GET['export'])) {
    header('Content-type: application/csv');
    header('Content-Disposition: attachment; filename="Export comptabilité - ' . $config->get('nom_asso') . ' - ' . date('Y-m-d') . '.csv"');
    $import->toCSV($e->getCurrentId());
    exit;
}
$error = false;
if (!empty($_POST['import'])) {
    if (!Utils::CSRF_check('compta_import')) {
        $error = 'Une erreur est survenue, merci de renvoyer le formulaire.';
    } elseif (empty($_FILES['upload']['tmp_name'])) {
        $error = 'Aucun fichier fourni.';
    } else {
        try {
            if (Utils::post('type') == 'citizen') {
                $import->fromCitizen($_FILES['upload']['tmp_name']);
            } elseif (Utils::post('type') == 'garradin') {
                $import->fromCSV($_FILES['upload']['tmp_name']);
            } else {
                throw new UserException('Import inconnu.');
            }
            Utils::redirect('/admin/compta/import.php?ok');
        } catch (UserException $e) {
            $error = $e->getMessage();
        }
    }
}
$tpl->assign('error', $error);
$tpl->assign('ok', isset($_GET['ok']) ? true : false);
$tpl->display('admin/compta/import.tpl');
Esempio n. 22
0
<?php

namespace Garradin;

require_once __DIR__ . '/../_inc.php';
if ($user['droits']['compta'] < Membres::DROIT_ADMIN) {
    throw new UserException("Vous n'avez pas le droit d'accéder à cette page.");
}
$id = Utils::get('id');
$compte = $comptes->get($id);
if (!$compte) {
    throw new UserException('Le compte demandé n\'existe pas.');
}
$error = false;
if (!empty($_POST['save'])) {
    if (!Utils::CSRF_check('compta_edit_compte_' . $compte['id'])) {
        $error = 'Une erreur est survenue, merci de renvoyer le formulaire.';
    } else {
        try {
            $id = $comptes->edit($compte['id'], ['libelle' => Utils::post('libelle'), 'position' => Utils::post('position')]);
            Utils::redirect('/admin/compta/comptes/?classe=' . substr($compte['id'], 0, 1));
        } catch (UserException $e) {
            $error = $e->getMessage();
        }
    }
}
$tpl->assign('error', $error);
$tpl->assign('positions', $comptes->getPositions());
$tpl->assign('position', Utils::post('position') ?: $compte['position']);
$tpl->assign('compte', $compte);
$tpl->display('admin/compta/comptes/modifier.tpl');
Esempio n. 23
0
    $page['contenu'] = $page['contenu']['contenu'];
}
if (Utils::post('date')) {
    $date = Utils::post('date') . ' ' . Utils::post('date_h') . ':' . Utils::post('date_min');
} else {
    $date = false;
}
if (!empty($_POST['save'])) {
    if (!Utils::CSRF_check('wiki_edit_' . $page['id'])) {
        $error = 'Une erreur est survenue, merci de renvoyer le formulaire.';
    } elseif ($page['date_modification'] > (int) Utils::post('debut_edition')) {
        $error = 'La page a été modifiée par quelqu\'un d\'autre depuis que vous avez commencé l\'édition.';
    } else {
        try {
            $wiki->edit($page['id'], ['titre' => Utils::post('titre'), 'uri' => Utils::post('uri'), 'parent' => Utils::post('parent'), 'droit_lecture' => Utils::post('droit_lecture'), 'droit_ecriture' => Utils::post('droit_ecriture'), 'date_creation' => $date]);
            $wiki->editRevision($page['id'], (int) Utils::post('revision_edition'), ['contenu' => Utils::post('contenu'), 'modification' => Utils::post('modification'), 'id_auteur' => $user['id'], 'chiffrement' => Utils::post('chiffrement')]);
            $page = $wiki->getById($page['id']);
            Utils::redirect('/admin/wiki/?' . $page['uri']);
        } catch (UserException $e) {
            $error = $e->getMessage();
        }
    }
}
$parent = (int) Utils::post('parent') ?: (int) $page['parent'];
$tpl->assign('parent', $parent ? $wiki->getTitle($parent) : 0);
$tpl->assign('error', $error);
$tpl->assign('page', $page);
$tpl->assign('time', time());
$tpl->assign('date', $date ? $date : $page['date_creation']);
$tpl->assign('custom_js', ['wiki_editor.js', 'wiki-encryption.js']);
$tpl->display('admin/wiki/editer.tpl');
Esempio n. 24
0
namespace Garradin;

require_once __DIR__ . '/../_inc.php';
if ($user['droits']['compta'] < Membres::DROIT_ADMIN) {
    throw new UserException("Vous n'avez pas le droit d'accéder à cette page.");
}
$e = new Compta\Exercices();
$exercice = $e->get((int) Utils::get('id'));
if (!$exercice) {
    throw new UserException('Exercice inconnu.');
}
$error = false;
if (!empty($_POST['close'])) {
    if (!Utils::CSRF_check('compta_cloturer_exercice_' . $exercice['id'])) {
        $error = 'Une erreur est survenue, merci de renvoyer le formulaire.';
    } else {
        try {
            $id = $e->close($exercice['id'], Utils::post('fin'));
            if ($id && Utils::post('reports')) {
                $e->doReports($exercice['id'], Utils::modifyDate(Utils::post('fin'), '+1 day'));
            }
            Utils::redirect('/admin/compta/exercices/');
        } catch (UserException $e) {
            $error = $e->getMessage();
        }
    }
}
$tpl->assign('error', $error);
$tpl->assign('exercice', $exercice);
$tpl->display('admin/compta/exercices/cloturer.tpl');
Esempio n. 25
0
$champs = $config->get('champs_membres');
$error = false;
if (!empty($_POST['save'])) {
    if (!Utils::CSRF_check('new_member')) {
        $error = 'Une erreur est survenue, merci de renvoyer le formulaire.';
    } elseif (Utils::post('passe') != Utils::post('repasse')) {
        $error = 'La vérification ne correspond pas au mot de passe.';
    } else {
        try {
            if ($user['droits']['membres'] == Membres::DROIT_ADMIN) {
                $id_categorie = Utils::post('id_categorie');
            } else {
                $id_categorie = $config->get('categorie_membres');
            }
            $data = ['id_categorie' => $id_categorie];
            foreach ($champs->getAll() as $key => $dismiss) {
                $data[$key] = Utils::post($key);
            }
            $id = $membres->add($data);
            Utils::redirect('/admin/membres/fiche.php?id=' . (int) $id);
        } catch (UserException $e) {
            $error = $e->getMessage();
        }
    }
}
$tpl->assign('error', $error);
$tpl->assign('passphrase', Utils::suggestPassword());
$tpl->assign('champs', $champs->getAll());
$tpl->assign('membres_cats', $cats->listSimple());
$tpl->assign('current_cat', Utils::post('id_categorie') ?: $config->get('categorie_membres'));
$tpl->display('admin/membres/ajouter.tpl');
Esempio n. 26
0
<?php

namespace Garradin;

require_once __DIR__ . '/_inc.php';
if ($user['droits']['wiki'] < Membres::DROIT_ECRITURE) {
    throw new UserException("Vous n'avez pas le droit d'accéder à cette page.");
}
$tpl->assign('contenu', Utils::post('contenu'));
$tpl->display('admin/wiki/_preview.tpl');
Esempio n. 27
0
}
$error = false;
$champs = $config->get('champs_membres')->getAll();
$champs['date_inscription'] = ['title' => 'Date inscription', 'type' => 'date'];
if (Utils::post('import')) {
    // FIXME
    if (false && !Utils::CSRF_check('membres_import')) {
        $error = 'Une erreur est survenue, merci de renvoyer le formulaire.';
    } elseif (empty($_FILES['upload']['tmp_name'])) {
        $error = 'Aucun fichier fourni.';
    } else {
        try {
            if (Utils::post('type') == 'galette') {
                $import->fromGalette($_FILES['upload']['tmp_name'], Utils::post('galette_translate'));
            } elseif (Utils::post('type') == 'garradin') {
                $import->fromCSV($_FILES['upload']['tmp_name']);
            } else {
                throw new UserException('Import inconnu.');
            }
            Utils::redirect('/admin/membres/import.php?ok');
        } catch (UserException $e) {
            $error = $e->getMessage();
        }
    }
}
$tpl->assign('error', $error);
$tpl->assign('ok', isset($_GET['ok']) ? true : false);
$tpl->assign('garradin_champs', $champs);
$tpl->assign('galette_champs', $import->galette_fields);
$tpl->assign('translate', Utils::post('galette_translate'));
$tpl->display('admin/membres/import.tpl');
Esempio n. 28
0
                        throw new UserException('Le compte bancaire choisi est invalide.');
                    }
                    if (!array_key_exists(Utils::post('banque'), $banques->getList())) {
                        throw new UserException('Le compte bancaire choisi n\'existe pas.');
                    }
                    $a = Utils::post('banque');
                    $b = $cat['compte'];
                }
                if ($type == Compta\Categories::DEPENSES) {
                    $debit = $b;
                    $credit = $a;
                } elseif ($type == Compta\Categories::RECETTES) {
                    $debit = $a;
                    $credit = $b;
                }
                $journal->edit($operation['id'], ['libelle' => Utils::post('libelle'), 'montant' => Utils::post('montant'), 'date' => Utils::post('date'), 'moyen_paiement' => Utils::post('moyen_paiement'), 'numero_cheque' => Utils::post('numero_cheque'), 'compte_credit' => $credit, 'compte_debit' => $debit, 'numero_piece' => Utils::post('numero_piece'), 'remarques' => Utils::post('remarques'), 'id_categorie' => (int) $cat['id']]);
            }
            Utils::redirect('/admin/compta/operations/voir.php?id=' . (int) $operation['id']);
        } catch (UserException $e) {
            $error = $e->getMessage();
        }
    }
}
$tpl->assign('error', $error);
$tpl->assign('type', $type);
if ($type === null) {
    $tpl->assign('comptes', $comptes->listTree());
} else {
    $tpl->assign('moyens_paiement', $cats->listMoyensPaiement());
    $tpl->assign('categories', $cats->getList($type));
    $tpl->assign('comptes_bancaires', $banques->getList());
Esempio n. 29
0
                    $champs->add($new, $config);
                }
                $membres->sessionStore('champs_membres', (string) $champs);
                Utils::redirect('/admin/config/membres.php?added');
            } catch (UserException $e) {
                $error = $e->getMessage();
            }
        } elseif (!empty($_POST['save'])) {
            try {
                $champs->save();
                $membres->sessionStore('champs_membres', null);
                Utils::redirect('/admin/config/membres.php?ok');
            } catch (UserException $e) {
                $error = $e->getMessage();
            }
        }
    }
}
$tpl->assign('error', $error);
$tpl->assign('review', isset($_GET['review']) ? true : false);
$types = $champs->getTypes();
$tpl->assign('champs', $champs->getAll());
$tpl->assign('types', $types);
$tpl->assign('presets', Membres\Champs::listUnusedPresets($champs));
$tpl->assign('new', Utils::post('new'));
$tpl->register_modifier('get_type', function ($type) use($types) {
    return $types[$type];
});
$tpl->assign('csrf_name', Utils::CSRF_field_name('config_membres'));
$tpl->assign('csrf_value', Utils::CSRF_create('config_membres'));
$tpl->display('admin/config/membres.tpl');
Esempio n. 30
0
            Utils::redirect('/admin/config/site.php?ok');
        } catch (UserException $e) {
            $error = $e->getMessage();
        }
    }
}
if (Utils::get('edit')) {
    $source = Squelette::getSource(Utils::get('edit'));
    if (!$source) {
        throw new UserException("Ce squelette n'existe pas.");
    }
    $csrf_key = 'edit_skel_' . md5(Utils::get('edit'));
    if (Utils::post('save')) {
        if (!Utils::CSRF_check($csrf_key)) {
            $error = 'Une erreur est survenue, merci de renvoyer le formulaire.';
        } else {
            if (Squelette::editSource(Utils::get('edit'), Utils::post('content'))) {
                Utils::redirect('/admin/config/site.php?edit=' . rawurlencode(Utils::get('edit')) . '&ok');
            } else {
                $error = "Impossible d'enregistrer le squelette.";
            }
        }
    }
    $tpl->assign('edit', ['file' => trim(Utils::get('edit')), 'content' => $source]);
    $tpl->assign('csrf_key', $csrf_key);
    $tpl->assign('sources_json', json_encode(Squelette::listSources()));
} else {
    $tpl->assign('sources', Squelette::listSources());
}
$tpl->assign('error', $error);
$tpl->display('admin/config/site.tpl');