Moving to GitHub.
[platal.git] / classes / xorg.php
1 <?php
2 /***************************************************************************
3 * Copyright (C) 2003-2014 Polytechnique.org *
4 * http://opensource.polytechnique.org/ *
5 * *
6 * This program is free software; you can redistribute it and/or modify *
7 * it under the terms of the GNU General Public License as published by *
8 * the Free Software Foundation; either version 2 of the License, or *
9 * (at your option) any later version. *
10 * *
11 * This program is distributed in the hope that it will be useful, *
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
14 * GNU General Public License for more details. *
15 * *
16 * You should have received a copy of the GNU General Public License *
17 * along with this program; if not, write to the Free Software *
18 * Foundation, Inc., *
19 * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *
20 ***************************************************************************/
21
22 class Xorg extends Platal
23 {
24 public function __construct()
25 {
26 parent::__construct(
27 'auth',
28
29 'admin',
30 'api',
31 'axletter',
32 'bandeau',
33 'carnet',
34 'comletter',
35 'deltaten',
36 'email',
37 'epletter',
38 'events',
39 'forums',
40 'fusionax',
41 'fxletter',
42 'gadgets',
43 'geoloc',
44 'googleapps',
45 'lists',
46 'marketing',
47 'newsletter',
48 'openid',
49 'payment',
50 'platal',
51 'poison',
52 'profile',
53 'register',
54 'reminder',
55 'search',
56 'sharingapi',
57 'stats',
58 'survey',
59 'urlshortener'
60 );
61 }
62
63 public function find_hook()
64 {
65 if ($this->path{0} >= 'A' && $this->path{0} <= 'Z') {
66 return self::wiki_hook();
67 }
68 return parent::find_hook();
69 }
70
71 public function force_login(PlPage $page)
72 {
73 header($_SERVER['SERVER_PROTOCOL'] . ' 403 Forbidden');
74 if (S::logged()) {
75 $page->changeTpl('core/password_prompt_logged.tpl');
76 } else {
77 $page->changeTpl('core/password_prompt.tpl');
78 }
79 $page->assign_by_ref('platal', $this);
80 $page->run();
81 }
82
83 public function setup_raven()
84 {
85 $sentry_dsn = self::globals()->core->sentry_dsn;
86
87 if (strlen($sentry_dsn) == 0) {
88 return null;
89 }
90
91 require_once('raven/lib/Raven/Autoloader.php');
92
93 Raven_Autoloader::register();
94
95 return new Raven_Client($sentry_dsn);
96 }
97
98 protected function report_error($error)
99 {
100 parent::report_error($error);
101
102 $raven = $this->setup_raven();
103 if ($raven != null) {
104 $raven->captureException($error);
105 }
106 }
107 }
108
109 // vim:set et sw=4 sts=4 sws=4 foldmethod=marker fenc=utf-8:
110 ?>