1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
|
<?php
/***************************************************************************
* group_perm.php *
* ------------------ *
* application : PhpWebGallery 1.3 <http://phpwebgallery.net> *
* author : Pierrick LE GALL <pierrick@z0rglub.com> *
* *
* $Id$
* *
***************************************************************************/
/***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; *
* *
***************************************************************************/
include_once( './include/isadmin.inc.php' );
//----------------------------------------------------- template initialization
$sub = $vtp->Open( '../template/'.$user['template'].'/admin/group_perm.vtp' );
$error = array();
$tpl = array( 'permuser_authorized','permuser_forbidden','submit',
'permuser_parent_forbidden','permuser_info_message',
'adduser_info_back','permuser_only_private' );
templatize_array( $tpl, 'lang', $sub );
$vtp->setGlobalVar( $sub, 'user_template', $user['template'] );
//--------------------------------------------------------------------- updates
if ( isset( $_POST['submit'] ) )
{
// cleaning the user_access table for this group
$query = 'DELETE FROM '.PREFIX_TABLE.'group_access';
$query.= ' WHERE group_id = '.$_GET['group_id'];
$query.= ';';
mysql_query( $query );
// selecting all private categories
$query = 'SELECT id';
$query.= ' FROM '.PREFIX_TABLE.'categories';
$query.= " WHERE status = 'private'";
$query.= ';';
$result = mysql_query( $query );
while ( $row = mysql_fetch_array( $result ) )
{
$radioname = 'access-'.$row['id'];
if ( $_POST[$radioname] == 0 )
{
$query = 'INSERT INTO '.PREFIX_TABLE.'group_access';
$query.= ' (group_id,cat_id) VALUES';
$query.= ' ('.$_GET['group_id'].','.$row['id'].')';
$query.= ';';
mysql_query ( $query );
}
}
// checking users favorites
$query = 'SELECT id';
$query.= ' FROM '.PREFIX_TABLE.'users';
$query.= ';';
$result = mysql_query( $query );
while ( $row = mysql_fetch_array( $result ) )
{
check_favorites( $row['id'] );
}
// synchronization of calculated data
synchronize_group( $_GET['group_id'] );
// confirmation display
$vtp->addSession( $sub, 'confirmation' );
$url = './admin.php?page=group_list';
$vtp->setVar( $sub, 'confirmation.back_url', add_session_id( $url ) );
$vtp->closeSession( $sub, 'confirmation' );
}
//---------------------------------------------------------------- form display
$restrictions = get_group_restrictions( $_GET['group_id'] );
$action = './admin.php?page=group_perm&group_id='.$_GET['group_id'];
$vtp->setVar( $sub, 'action', add_session_id( $action ) );
// only private categories are listed
$query = 'SELECT id';
$query.= ' FROM '.PREFIX_TABLE.'categories';
$query.= " WHERE status = 'private'";
$query.= ';';
$result = mysql_query( $query );
while ( $row = mysql_fetch_array( $result ) )
{
$vtp->addSession( $sub, 'category' );
$vtp->setVar( $sub, 'category.id', $row['id'] );
$url = './admin.php?page=cat_perm&cat_id='.$row['id'];
$vtp->setVar( $sub, 'category.cat_perm_link', add_session_id( $url ) );
// Is the group allowed to access this category
$is_group_allowed = is_group_allowed( $row['id'], $restrictions );
if ( $is_group_allowed == 0 )
{
$vtp->setVar( $sub, 'category.color', 'green' );
}
else
{
$vtp->setVar( $sub, 'category.color', 'red' );
}
// category name
$cat_infos = get_cat_info( $row['id'] );
$name = get_cat_display_name( $cat_infos['name'],' > ',
'font-weight:bold;' );
$vtp->setVar( $sub, 'category.name', $name );
// any subcat forbidden for this group ?
if ( $is_group_allowed == 2 )
{
$vtp->addSession( $sub, 'parent_forbidden' );
$vtp->closeSession( $sub, 'parent_forbidden' );
}
// forbidden or authorized access ?
if ( $is_group_allowed == 0 or $is_group_allowed == 2 )
{
$vtp->setVar( $sub, 'category.authorized_checked', ' checked="checked"' );
}
else
{
$vtp->setVar( $sub, 'category.forbidden_checked', ' checked="checked"' );
}
$vtp->closeSession( $sub, 'category' );
}
//----------------------------------------------------------- sending html code
$vtp->Parse( $handle , 'sub', $sub );
?>
|