source: trunk/admin.php @ 800

Last change on this file since 800 was 800, checked in by plg, 19 years ago
  • category permissions management comes back! (it disappeared in branch 1.4) This time, it is designed to support better long users list. On this screen, for a particular category, admin can say which groups and users are permitted.
  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 10.8 KB
Line 
1<?php
2// +-----------------------------------------------------------------------+
3// | PhpWebGallery - a PHP based picture gallery                           |
4// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
5// | Copyright (C) 2003-2005 PhpWebGallery Team - http://phpwebgallery.net |
6// +-----------------------------------------------------------------------+
7// | branch        : BSF (Best So Far)
8// | file          : $RCSfile$
9// | last update   : $Date: 2005-06-30 21:20:06 +0000 (Thu, 30 Jun 2005) $
10// | last modifier : $Author: plg $
11// | revision      : $Revision: 800 $
12// +-----------------------------------------------------------------------+
13// | This program is free software; you can redistribute it and/or modify  |
14// | it under the terms of the GNU General Public License as published by  |
15// | the Free Software Foundation                                          |
16// |                                                                       |
17// | This program is distributed in the hope that it will be useful, but   |
18// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
19// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
20// | General Public License for more details.                              |
21// |                                                                       |
22// | You should have received a copy of the GNU General Public License     |
23// | along with this program; if not, write to the Free Software           |
24// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
25// | USA.                                                                  |
26// +-----------------------------------------------------------------------+
27
28//----------------------------------------------------------- include
29define('PHPWG_ROOT_PATH','./');
30define('IN_ADMIN', true);
31include_once( PHPWG_ROOT_PATH.'include/common.inc.php' );
32include_once( PHPWG_ROOT_PATH.'admin/include/isadmin.inc.php' );
33//--------------------------------------- validating page and creation of title
34$page_valide = false;
35$title = '';
36$username='';
37if (isset($_POST['username']))
38{
39  $username = $_POST['username'];
40}
41else if (isset($_POST['userid']))
42{
43  $username = get_username($_POST['userid']);
44}
45else if (isset($_GET['user_id']))
46{
47  $username = get_username($_GET['user_id']);
48}
49
50if (isset( $_GET['page'] ))
51switch ( $_GET['page'] )
52{
53  case 'user_list' :
54  {
55    $title = $lang['title_liste_users'];
56    $page_valide = true;
57    break;
58  }
59  case 'profile' :
60  {
61    $title = $lang['title_user_modify'];
62    $page_valide = true; 
63    break;
64  }
65 case 'user_perm':
66   $title = $lang['title_user_perm'].' '.$username;
67   $page_valide = true; break;
68 case 'group_list' :
69   $title = $lang['title_groups'];        $page_valide = true; break;
70 case 'group_perm' :
71   /*if ( !is_numeric( $_GET['group_id'] ) ) $_GET['group_id'] = -1;
72   $query = 'SELECT name FROM '.GROUPS_TABLE;
73   $query.= ' WHERE id = '.$_GET['group_id'];
74   $query.= ';';
75   $result = pwg_query( $query );
76   if ( mysql_num_rows( $result ) > 0 )
77   {
78     $row = mysql_fetch_array( $result );*/
79     $title = $lang['title_group_perm'];//.' "'.$row['name'].'"';
80     $page_valide = true;
81   /*}
82   else
83   {
84     $page_valide = false;
85   }*/
86   break;
87 case 'stats':
88   $title = $lang['title_history'];       $page_valide = true; break;
89 case 'update':
90   $title = $lang['title_update'];        $page_valide = true; break;
91 case 'configuration':
92   $title = $lang['title_configuration']; $page_valide = true; break;
93 case 'admin_phpinfo':
94   $title = $lang['phpinfos']; $page_valide = true; break;
95 case 'help':
96   $title = $lang['title_instructions'];  $page_valide = true; break;
97 case 'cat_perm':
98   $title = $lang['title_cat_perm'];
99   if ( isset( $_GET['cat'] ) )
100   {
101     check_cat_id( $_GET['cat'] );
102     if ( isset( $page['cat'] ) and is_numeric( $page['cat'] ) )
103     {
104       $result = get_cat_info( $page['cat'] );
105       $name = get_cat_display_name($result['name'], '');
106       $title.= ' "'.$name.'"';
107     }
108   }
109   $page_valide = true;
110   break;
111 case 'cat_list':
112   $title = $lang['title_categories'];    $page_valide = true; break;
113 case 'cat_modify':
114   $title = $lang['title_edit_cat'];      $page_valide = true; break;
115 case 'infos_images':
116   $title = $lang['title_info_images'];   $page_valide = true; break;
117 case 'waiting':
118   $title = $lang['title_waiting'];       $page_valide = true; break;
119 case 'thumbnail':
120   $title = $lang['title_thumbnails'];
121   if ( isset( $_GET['dir'] ) )
122   {
123     $title.= ' '.$lang['title_thumbnails_2'].' <span class="titreImg">';
124     // $_GET['dir'] contains :
125     // ./galleries/vieux_lyon ou
126     // ./galleries/vieux_lyon/visite ou
127     // ./galleries/vieux_lyon/visite/truc ...
128     $dir = explode( "/", $_GET['dir'] );
129     $title.= $dir[2];
130     for ( $i = 2; $i < sizeof( $dir ) - 1; $i++ )
131     {
132       $title.= ' &gt; '.$dir[$i+1];
133     }
134     $title.= "</span>";
135   }
136   $page_valide = true;
137   break;
138 case 'comments' :
139   $title = $lang['title_comments'];
140   $page_valide = true;
141   break;
142 case 'picture_modify' :
143   $title = $lang['title_picmod'];
144   $page_valide = true;
145   break;
146 case 'remote_site' :
147 {
148   $title = $lang['remote_sites'];
149   $page_valide = true;
150   break;
151 }
152 case 'cat_options' :
153 {
154   $title = $lang['title_cat_options'];
155   $page_valide = true;
156   break;
157 }
158 case 'element_set' :
159 {
160   $title = 'batch management';
161   $page_valide = true;
162   break;
163 }
164//  case 'element_set_unit' :
165//  {
166//    $title = 'batch management';
167//    $page_valide = true;
168//    break;
169//  }
170 default:
171   $title = $lang['title_default']; break;
172}
173if ( $title == '' ) $title = $lang['title_default'];
174
175// waiting
176$query = 'SELECT id FROM '.WAITING_TABLE;
177$query.= " WHERE validated='false'";
178$query.= ';';
179$result = pwg_query( $query );
180$nb_waiting = '';
181if ( mysql_num_rows( $result ) > 0 )
182{
183  $nb_waiting =  ' [ '.mysql_num_rows( $result ).' ]';
184}
185// comments
186$query = 'SELECT id FROM '.COMMENTS_TABLE;
187$query.= " WHERE validated='false'";
188$query.= ';';
189$result = pwg_query( $query );
190$nb_comments = '';
191if ( mysql_num_rows( $result ) > 0 )
192{
193  $nb_comments =  ' [ '.mysql_num_rows( $result ).' ]';
194}
195
196$link_start = PHPWG_ROOT_PATH.'admin.php?page=';
197$conf_link = $link_start.'configuration&amp;section=';
198$opt_link = $link_start.'cat_options&amp;section=';
199//----------------------------------------------------- template initialization
200include(PHPWG_ROOT_PATH.'include/page_header.php');
201$template->set_filenames( array('admin'=>'admin.tpl') );
202
203$template->assign_vars(array(
204  'L_TITLE'=>$lang['admin_panel'],
205  'L_LINKS'=>$lang['links'],
206  'L_GALLERY_INDEX'=>$lang['home'],
207  'L_GENERAL'=>$lang['general'],
208  'L_DEFAULT'=>$lang['gallery_default'],
209  'L_PHPINFO'=>$lang['phpinfos'],
210  'L_HISTORY'=>$lang['history'],
211  'L_FAQ'=>$lang['instructions'],
212  'L_CONFIGURATION'=>$lang['config'],
213  'L_CONFIG_GENERAL'=>$lang['general'],
214  'L_CONFIG_COMMENTS'=>$lang['comments'],
215  'L_CONFIG_DISPLAY'=>$lang['conf_default'],
216  'L_CONFIG_UPLOAD'=>$lang['upload'],
217  'L_CONFIG_SESSION'=>$lang['conf_cookie'],
218  'L_CONFIG_METADATA'=>$lang['metadata'],
219  'L_SITES'=>$lang['remote_sites'],
220  'L_CATEGORIES'=>$lang['categories'],
221  'L_MANAGE'=>$lang['manage'],
222  'L_IMAGES'=>$lang['pictures'],
223  'L_WAITING'=>$lang['waiting'].$nb_waiting,
224  'L_COMMENTS'=>$lang['comments'].$nb_comments,
225  'L_THUMBNAILS'=>$lang['thumbnails'],
226  'L_IDENTIFY'=>$lang['identification'],
227  'L_USERS'=>$lang['users'],
228  'L_GROUPS'=>$lang['groups'],
229  'L_AUTH'=>$lang['permissions'],
230  'L_UPDATE'=>$lang['update'],
231  'L_CAT_UPLOAD'=>$lang['upload'],
232  'L_CAT_COMMENTS'=>$lang['comments'],
233  'L_CAT_VISIBLE'=>$lang['lock'],
234  'L_CAT_STATUS'=>$lang['cat_security'],
235
236  'U_HISTORY'=>add_session_id($link_start.'stats' ),
237  'U_FAQ'=>add_session_id($link_start.'help' ),
238  'U_SITES'=>add_session_id($link_start.'remote_site'),
239  'U_PHPINFO'=>add_session_id($link_start.'admin_phpinfo' ),
240  'U_CONFIG_GENERAL'=>add_session_id($conf_link.'general' ),
241  'U_CONFIG_COMMENTS'=>add_session_id($conf_link.'comments' ),
242  'U_CONFIG_DISPLAY'=>add_session_id($conf_link.'default' ),
243  'U_CONFIG_UPLOAD'=>add_session_id($conf_link.'upload' ),
244  'U_CONFIG_SESSION'=>add_session_id($conf_link.'session' ),
245  'U_CONFIG_METADATA'=>add_session_id($conf_link.'metadata' ),
246  'U_CATEGORIES'=>add_session_id($link_start.'cat_list' ),
247  'U_CAT_UPLOAD'=>add_session_id($opt_link.'upload'),
248  'U_CAT_COMMENTS'=>add_session_id($opt_link.'comments'),
249  'U_CAT_VISIBLE'=>add_session_id($opt_link.'visible'),
250  'U_CAT_STATUS'=>add_session_id($opt_link.'status'),
251  'U_CAT_OPTIONS'=>add_session_id($link_start.'cat_options'),
252  'U_CAT_UPDATE'=>add_session_id($link_start.'update'),
253  'U_WAITING'=>add_session_id($link_start.'waiting' ),
254  'U_COMMENTS'=>add_session_id($link_start.'comments' ),
255  'U_CADDIE'=>add_session_id($link_start.'element_set&amp;cat=caddie'),
256  'U_THUMBNAILS'=>add_session_id($link_start.'thumbnail' ),
257  'U_USERS'=>add_session_id($link_start.'user_list' ),
258  'U_GROUPS'=>add_session_id($link_start.'group_list' ),
259  'U_USERS_AUTH'=>add_session_id($link_start.'user_perm' ),
260  'U_GROUPS_AUTH'=>add_session_id($link_start.'group_perm'),
261  'U_CAT_AUTH'=>add_session_id($link_start.'cat_perm' ),
262  'U_RETURN'=>add_session_id(PHPWG_ROOT_PATH.'category.php')
263  ));
264
265//--------------------------------------------------------------------- summary
266$link_start = PHPWG_ROOT_PATH.'admin.php?page=';
267//------------------------------------------------------------- content display
268$page['errors'] = array();
269$page['infos'] = array();
270
271if ($page_valide)
272{
273  switch ($_GET['page'])
274  {
275    case 'comments' :
276    {
277      include(PHPWG_ROOT_PATH.'comments.php');
278      break;
279    }
280    case 'profile' :
281    {
282      include(PHPWG_ROOT_PATH.'profile.php');
283      break;
284    }
285    default :
286    {
287      include(PHPWG_ROOT_PATH.'admin/'.$_GET['page'].'.php');
288    }
289  }
290}
291else
292{
293  $template->assign_vars(
294    array(
295      'ADMIN_CONTENT'
296      =>'<div style="text-align:center">'.$lang['default_message'].'</div>'
297      )
298    );
299}
300// +-----------------------------------------------------------------------+
301// |                            errors & infos                             |
302// +-----------------------------------------------------------------------+
303if (count($page['errors']) != 0)
304{
305  $template->assign_block_vars('errors',array());
306  foreach ($page['errors'] as $error)
307  {
308    $template->assign_block_vars('errors.error',array('ERROR'=>$error));
309  }
310}
311if (count($page['infos']) != 0)
312{
313  $template->assign_block_vars('infos',array());
314  foreach ($page['infos'] as $info)
315  {
316    $template->assign_block_vars('infos.info',array('INFO'=>$info));
317  }
318}
319
320$template->parse('admin');
321include(PHPWG_ROOT_PATH.'include/page_tail.php');
322// +-----------------------------------------------------------------------+
323// |                     order permission refreshment                      |
324// +-----------------------------------------------------------------------+
325$query = '
326UPDATE '.USER_FORBIDDEN_TABLE.'
327  SET need_update = \'true\'
328;';
329pwg_query($query);
330?>
Note: See TracBrowser for help on using the repository browser.