source: extensions/NBC_News/trunk/admin/news_group_perm.php @ 5179

Last change on this file since 5179 was 5179, checked in by Eric, 14 years ago

[NBC_News]

  • Initial commit for Piwigo 2.0.x : Not fully functionnal and a lot work to do...
  • Property svn:eol-style set to LF
File size: 6.4 KB
Line 
1<?php
2
3global $user, $template, $lang, $conf, $page;
4
5if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
6
7include_once(NBC_NEWS_PATH.'include/constants.php');
8include_once(NBC_NEWS_PATH.'include/functions_news.inc.php');
9include(get_language_filepath('plugin.lang.php', NBC_NEWS_PATH));
10 
11
12
13// Gestion des onglets
14include_once(PHPWG_ROOT_PATH . 'admin/include/functions_tabsheet.inc.php');
15
16$page['tab'] = 'Groups';
17
18$page_news_admin = get_admin_plugin_menu_link(dirname(__FILE__).'/news_admin.php');
19
20$page['tabsheet'] = array(
21    'NewsAdmin' => array('caption' => l10n('title_admin_news'), 'url' => add_url_params($page_news_admin, array('tab' => 'NewsAdmin'))),
22    'Users' => array('caption' => l10n('title_users'), 'url' => add_url_params($page_news_admin, array('tab' => 'Users'))),
23    'Groups' => array('caption' => l10n('title_groups'), 'url' => add_url_params($page_news_admin, array('tab' => 'Groups'))),
24    'Config' => array('caption' => l10n('config'), 'url' => add_url_params($page_news_admin, array('tab' => 'Config'))),
25    );
26
27$page['tabsheet'][$page['tab']]['selected'] = true;
28template_assign_tabsheet();
29
30
31 
32include_once(PHPWG_ROOT_PATH.'admin/include/functions.php');
33
34// +-----------------------------------------------------------------------+
35// | Check Access and exit when user status is not ok                      |
36// +-----------------------------------------------------------------------+
37check_status(ACCESS_ADMINISTRATOR);
38
39// +-----------------------------------------------------------------------+
40// |                            variables init                             |
41// +-----------------------------------------------------------------------+
42
43if (isset($_GET['group_id']) and is_numeric($_GET['group_id']))
44{
45  $page['group'] = $_GET['group_id'];
46}
47else
48{
49  echo l10n('group_id URL parameter is missing');
50  exit();
51}
52
53
54// +-----------------------------------------------------------------------+
55// |                                updates                                |
56// +-----------------------------------------------------------------------+
57
58if (isset($_POST['falsify']) and isset($_POST['news_true']) and count($_POST['news_true']) > 0 and !is_adviser() )
59{
60  // if you forbid access to a news
61  $query = '
62    DELETE FROM '.NEWS_GROUP_ACCESS_TABLE.'
63    WHERE group_id = '.$page['group'].'
64    AND new_id IN ('.implode(',', $_POST['news_true']).')
65    ;';
66 
67  pwg_query($query);
68}
69else if (isset($_POST['falsify']) and isset($_POST['news_refuse']) and count($_POST['news_refuse']) > 0 and !is_adviser() )
70{
71  // if you forbid access to a news
72  $query = '
73    DELETE FROM '.NEWS_GROUP_REFUSED_TABLE.'
74    WHERE group_id = '.$page['group'].'
75    AND new_id IN ('.implode(',', $_POST['news_refuse']).')
76    ;';
77 
78  pwg_query($query);
79}
80else if (isset($_POST['trueify']) and isset($_POST['news_false']) and count($_POST['news_false']) > 0 and !is_adviser() )
81{
82  $inserts = array();
83
84  foreach ($_POST['news_false'] as $to_autorize_id)
85  {
86    array_push($inserts, array('group_id' => $page['group'],
87                               'new_id' => $to_autorize_id));
88  }
89
90  mass_inserts(NEWS_GROUP_ACCESS_TABLE, array('group_id','new_id'), $inserts);
91}
92else if (isset($_POST['refusify']) and isset($_POST['news_false']) and count($_POST['news_false']) > 0 and !is_adviser() )
93{
94  $inserts = array();
95
96  foreach ($_POST['news_false'] as $to_refuse_id)
97  {
98    array_push($inserts, array('group_id' => $page['group'],
99                               'new_id' => $to_refuse_id));
100  }
101
102  mass_inserts(NEWS_GROUP_REFUSED_TABLE, array('group_id','new_id'), $inserts);
103}
104
105
106// +-----------------------------------------------------------------------+
107// |                             template init                             |
108// +-----------------------------------------------------------------------+
109
110$template->set_filenames(
111  array(
112    'news_admin_perm' => NBC_NEWS_PATH . 'template/admin/news_admin_perm.tpl',
113    'news_double_select' => NBC_NEWS_PATH . 'template/admin/news_double_select.tpl'
114    )
115  );
116
117$template->assign_vars(
118  array(
119    'TITLE' => sprintf(l10n('Manage permissions for group "%s"'), get_groupname($page['group'])),
120    'U_HELP' => PHPWG_ROOT_PATH.'popuphelp.php?page=news_group_perm',
121    'F_ACTION' => add_url_params(get_admin_plugin_menu_link(dirname(__FILE__).'/news_group_perm.php'), array('group_id' => $page['group'])), 
122  )
123);
124
125// only private news are listed
126$query_refuse = '
127  SELECT nt.id, nt.title, nt.new_id
128  FROM '.NEWS_TRANSLATION_TABLE.' as nt
129  INNER JOIN '.NEWS_GROUP_REFUSED_TABLE.' as ngd ON nt.new_id = ngd.new_id
130  INNER JOIN '.NEWS_TABLE.' as n ON n.id = nt.new_id
131  WHERE n.status = \'private\'
132  AND ngd.group_id = '.$page['group'].'
133  ORDER BY nt.new_id;';
134 
135display_select_news_wrapper($query_refuse,array(),'news_option_refuse');
136
137$result = pwg_query($query_refuse);
138
139$refused_ids = array();
140
141while ($row = mysql_fetch_array($result))
142{
143  array_push($refused_ids, $row['new_id']);
144}
145
146$query_true = '
147  SELECT nt.id, nt.title, nt.new_id
148  FROM '.NEWS_TRANSLATION_TABLE.' as nt
149  INNER JOIN '.NEWS_GROUP_ACCESS_TABLE.' as nga ON nt.new_id = nga.new_id
150  INNER JOIN '.NEWS_TABLE.' as n ON n.id = nt.new_id
151  WHERE n.status = \'private\'
152  AND nga.group_id = '.$page['group'];
153$query_true .= (count($refused_ids) > 0) ? ' AND nt.new_id NOT IN ('.implode(',', $refused_ids).')' : '';
154$query_true .= ' ORDER BY nt.new_id;';
155
156display_select_news_wrapper($query_true,array(),'news_option_true');
157
158$result = pwg_query($query_true);
159
160$authorized_ids = array();
161
162while ($row = mysql_fetch_array($result))
163{
164  array_push($authorized_ids, $row['new_id']);
165}
166
167
168$query_false = '
169  SELECT nt.id, nt.title, nt.new_id
170  FROM '.NEWS_TRANSLATION_TABLE.' as nt
171  INNER JOIN '.NEWS_TABLE.' as n ON n.id = nt.new_id
172  WHERE n.status = \'private\'';
173$query_false.= (count($refused_ids) > 0) ? ' AND nt.new_id NOT IN ('.implode(',', $refused_ids).')': '';
174$query_false.= (count($authorized_ids) > 0)? ' AND nt.new_id NOT IN ('.implode(',', $authorized_ids).')' : '';
175$query_false.= ' ORDER BY nt.new_id;';
176
177display_select_news_wrapper($query_false,array(),'news_option_false');
178
179
180// +-----------------------------------------------------------------------+
181// |                           html code display                           |
182// +-----------------------------------------------------------------------+
183
184$template->assign_var_from_handle('NEWS_DOUBLE_SELECT', 'news_double_select');
185$template->assign_var_from_handle('ADMIN_CONTENT', 'news_admin_perm');
186
187?>
Note: See TracBrowser for help on using the repository browser.