PageRenderTime 49ms CodeModel.GetById 19ms RepoModel.GetById 1ms app.codeStats 0ms

/editor_access.php

https://github.com/adamfranco/segue-1.x
PHP | 338 lines | 282 code | 36 blank | 20 comment | 47 complexity | d9c044525b6e8c1e168c0bd6c91f67d3 MD5 | raw file
  1. <? /* $Id$ */
  2. $content = '';
  3. ob_start();
  4. session_start();
  5. // include all necessary files
  6. include("includes.inc.php");
  7. db_connect($dbhost, $dbuser, $dbpass, $dbdb);
  8. ?>
  9. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  10. <html>
  11. <head>
  12. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  13. <title>Editor Access</title>
  14. <style type='text/css'>
  15. a {
  16. color: #a33;
  17. text-decoration: none;
  18. }
  19. a:hover {text-decoration: underline;}
  20. table {
  21. border: 1px solid #555;
  22. }
  23. th, td {
  24. border: 0px;
  25. background-color: #ddd;
  26. }
  27. .td1 {
  28. background-color: #ccc;
  29. }
  30. .td0 {
  31. background-color: #ddd;
  32. }
  33. th {
  34. background-color: #bbb;
  35. font-variant: small-caps;
  36. }
  37. body {
  38. background-color: white;
  39. }
  40. body, table, td, th, input {
  41. font-size: 12px;
  42. font-family: "Verdana", "sans-serif";
  43. }
  44. input {
  45. border: 1px solid black;
  46. background-color: white;
  47. font-size: 10px;
  48. }
  49. </style>
  50. <? print $content; ?>
  51. <?
  52. $sa = db_get_line("sites","name='".addslashes($site)."'");
  53. $sections = decode_array($sa['sections']);
  54. $nl='';
  55. if (!$user) $user = $_SESSION['auser'];
  56. else $nl = 'disabled';
  57. $site_owner = db_get_value("sites","addedby","name='".addslashes($site)."'");
  58. if ($_SESSION['auser'] == $site_owner) {
  59. // print $sa[editors]; // Debug
  60. $editors = explode(",",$sa[editors]);
  61. $total_columns = count($editors)*3 +1;
  62. print "<table cellspacing='1' width='100%'>";
  63. print "<tr>";
  64. print "<td colspan='$total_columns' style='font-variant: small-caps'>";
  65. print "Editor permissions for <b>$sa[title]</b>";
  66. print "</td>";
  67. print "</tr>";
  68. print "<tr>";
  69. print "<th> &nbsp; </th>";
  70. foreach($editors as $editor) {
  71. print "<th colspan='3' style='border-left: 2px solid #fff;'>$editor</th>";
  72. }
  73. print "</tr>";
  74. print "<tr>";
  75. print "<th>Section</th>";
  76. foreach($editors as $editor) {
  77. print "<td align='center' style='border-left: 2px solid #fff; background-color: #bbb; '>Add</td>";
  78. print "<td align='center' style='background-color: #bbb;'>Edit</td>";
  79. print "<td align='center' style='background-color: #bbb;'>Del</td>";
  80. }
  81. print "</tr>";
  82. $color = 0;
  83. print "<tr>";
  84. print "<td class='td$color' style='font-variant: small-caps'><a href='#' onClick$nl='opener.window.location=\"index.php?$sid&action=viewsite&site=$site\"'>$sa[title]</a></td>";
  85. $permissions=decode_array($sa[permissions]);
  86. foreach($editors as $user) {
  87. $classes=getuserclasses($user);
  88. if (isclass($site)) {
  89. // print "is class"; //debug
  90. foreach ($permissions as $e=>$p) {
  91. if (isclass($e)) {
  92. $l = array();
  93. if ($r = isgroup($e)) {
  94. $l = $r;
  95. } else $l[]=$e;
  96. foreach ($l as $c) {
  97. if ($classes[$c]) $user = $e;
  98. }
  99. }
  100. }
  101. }
  102. for ($i=0;$i<3;$i++) {
  103. print "<td class='td$color' align='center'".(($i==0)?" style='border-left: 2px solid #fff;'":"").">";
  104. print ($permissions[$user][$i])?"X":"&nbsp;";
  105. print "</td>";
  106. }
  107. }
  108. print "</tr>";
  109. $color = 1-$color;
  110. if (count($sections)) {
  111. foreach ($sections as $sec) {
  112. print "<tr>";
  113. $seca = db_get_line("sections","id='".addslashes($sec)."'");
  114. $secp = decode_array($seca[permissions]);
  115. print "<td class='td$color' style='padding-left: 10px'>";
  116. if ($seca[type]=='section') print "<a href='#' onClick$nl='opener.window.location=\"index.php?$sid&action=viewsite&site=$site&section=$sec\"'>";
  117. print "$seca[title]";
  118. if ($seca[type]=='section') print "</a>";
  119. // print "<br /><pre>";print_r($secp);print "</pre>";
  120. print "</td>";
  121. foreach($editors as $user) {
  122. for ($i=0;$i<3;$i++) {
  123. print "<td class='td$color' align='center'".(($i==0)?" style='border-left: 2px solid #fff;'":"").">";
  124. print ($seca[type]!='url' && $secp[$user][$i])?"X":"&nbsp;";
  125. print "</td>";
  126. }
  127. }
  128. print "</tr>";
  129. $color = 1-$color;
  130. $pages = decode_array($seca['pages']);
  131. foreach ($pages as $p) {
  132. $pa = db_get_line("pages","id='".addslashes($p)."'");
  133. $pp = decode_array($pa[permissions]);
  134. if ($pa[type]=='divider' || $pa[type]=='heading') next;
  135. print "<tr>";
  136. print "<td class='td$color' style='padding-left: 20px'>";
  137. print "-&gt; ";
  138. if ($pa[type]=='page') print "<a href='#' onClick$nl='opener.window.location=\"index.php?$sid&action=viewsite&site=$site&section=$s&page=$p\"'>";
  139. print "$pa[title]";
  140. if ($pa[type]=='page') print "</a>";
  141. foreach($editors as $user) {
  142. for ($i=0;$i<3;$i++) {
  143. print "<td class='td$color' align='center'".(($i==0)?" style='border-left: 2px solid #fff;'":"").">";
  144. print ($pa[type]!='url' && $pp[$user][$i])?"X":"&nbsp;";
  145. print "</td>";
  146. }
  147. }
  148. print "</tr>";
  149. $color = 1-$color;
  150. $stories = decode_array($pa['stories']);
  151. $j=1;
  152. foreach ($stories as $s) {
  153. print "<tr>";
  154. $sa = db_get_line("stories","id='".addslashes($s)."'");
  155. $sp = decode_array($sa[permissions]);
  156. print "<td class='td$color' style='padding-left: 40px'>";
  157. /*if ($sa[type]=='story')*/ print "<a href='#' onClick$nl='opener.window.location=\"index.php?$sid&action=viewsite&site=$site&section=$sec&page=$p\"'>";
  158. print "$j. &nbsp; $sa[title]";
  159. /*if ($sa[type]=='story')*/ print "</a>";
  160. // print "<br /><pre>";print_r($sp);print "</pre>";
  161. print "</td>";
  162. foreach($editors as $user) {
  163. print "<td class='td$color' align='center'".((1)?" style='border-left: 2px solid #fff;'":"").">n/a</td>";
  164. for ($i=1;$i<3;$i++) {
  165. print "<td class='td$color' align='center'".(($i==0)?" style='border-left: 2px solid #fff;'":"").">";
  166. print ($sa[type]!='url' && $sp[$user][$i])?"X":"&nbsp;";
  167. print "</td>";
  168. }
  169. }
  170. print "</tr>";
  171. $color = 1-$color;
  172. $j++;
  173. }
  174. }
  175. }
  176. } else {
  177. print "<tr><td class='td$color' colspan='4'>No sections in this site.</td></tr>";
  178. }
  179. print "</table><br />";
  180. } else {
  181. $total_columns = 4;
  182. print "<table cellspacing='1' width='100%'>";
  183. print "<tr>";
  184. print "<td colspan='$total_columns' style='font-variant: small-caps'>";
  185. print "Editor permissions for <b>$user</b> on <b>$sa[title]</b>";
  186. print "</td>";
  187. print "</tr>";
  188. print "<tr>";
  189. print "<th> &nbsp; </th>";
  190. // foreach($editors as $editor) {
  191. print "<th colspan='3' style='border-left: 2px solid #fff;'>$user</th>";
  192. // }
  193. print "</tr>";
  194. print "<tr>";
  195. print "<th>Section</th>";
  196. // foreach($editors as $editor) {
  197. print "<td align='center' style='border-left: 2px solid #fff; background-color: #bbb; '>Add</td>";
  198. print "<td align='center' style='background-color: #bbb;'>Edit</td>";
  199. print "<td align='center' style='background-color: #bbb;'>Del</td>";
  200. // }
  201. print "</tr>";
  202. $color = 0;
  203. print "<tr>";
  204. print "<td class='td$color' style='font-variant: small-caps'><a href='#' onClick$nl='opener.window.location=\"index.php?$sid&action=viewsite&site=$site\"'>$sa[title]</a></td>";
  205. $permissions=decode_array($sa[permissions]);
  206. // foreach($editors as $user) {
  207. $classes=getuserclasses($user);
  208. if (isclass($site)) {
  209. // print "is class"; //debug
  210. foreach ($permissions as $e=>$p) {
  211. if (isclass($e)) {
  212. $l = array();
  213. if ($r = isgroup($e)) {
  214. $l = $r;
  215. } else $l[]=$e;
  216. foreach ($l as $c) {
  217. if ($classes[$c]) $user = $e;
  218. }
  219. }
  220. }
  221. }
  222. for ($i=0;$i<3;$i++) {
  223. print "<td class='td$color' align='center'".(($i==0)?" style='border-left: 2px solid #fff;'":"").">";
  224. print ($permissions[$user][$i])?"X":"&nbsp;";
  225. print "</td>";
  226. }
  227. // }
  228. print "</tr>";
  229. $color = 1-$color;
  230. if (count($sections)) {
  231. foreach ($sections as $sec) {
  232. print "<tr>";
  233. $seca = db_get_line("sections","id='".addslashes($sec)."'");
  234. $secp = decode_array($seca[permissions]);
  235. print "<td class='td$color' style='padding-left: 10px'>";
  236. if ($seca[type]=='section') print "<a href='#' onClick$nl='opener.window.location=\"index.php?$sid&action=viewsite&site=$site&section=$sec\"'>";
  237. print "$seca[title]";
  238. if ($seca[type]=='section') print "</a>";
  239. // print "<br /><pre>";print_r($secp);print "</pre>";
  240. print "</td>";
  241. // foreach($editors as $user) {
  242. for ($i=0;$i<3;$i++) {
  243. print "<td class='td$color' align='center'".(($i==0)?" style='border-left: 2px solid #fff;'":"").">";
  244. print ($seca[type]!='url' && $secp[$user][$i])?"X":"&nbsp;";
  245. print "</td>";
  246. }
  247. // }
  248. print "</tr>";
  249. $color = 1-$color;
  250. $pages = decode_array($seca['pages']);
  251. foreach ($pages as $p) {
  252. $pa = db_get_line("pages","id='".addslashes($p)."'");
  253. $pp = decode_array($pa[permissions]);
  254. if ($pa[type]=='divider' || $pa[type]=='heading') next;
  255. print "<tr>";
  256. print "<td class='td$color' style='padding-left: 20px'>";
  257. print "-&gt; ";
  258. if ($pa[type]=='page') print "<a href='#' onClick$nl='opener.window.location=\"index.php?$sid&action=viewsite&site=$site&section=$s&page=$p\"'>";
  259. print "$pa[title]";
  260. if ($pa[type]=='page') print "</a>";
  261. // foreach($editors as $user) {
  262. for ($i=0;$i<3;$i++) {
  263. print "<td class='td$color' align='center'".(($i==0)?" style='border-left: 2px solid #fff;'":"").">";
  264. print ($pa[type]!='url' && $pp[$user][$i])?"X":"&nbsp;";
  265. print "</td>";
  266. }
  267. // }
  268. print "</tr>";
  269. $color = 1-$color;
  270. $stories = decode_array($pa['stories']);
  271. $j=1;
  272. foreach ($stories as $s) {
  273. print "<tr>";
  274. $sa = db_get_line("stories","id='".addslashes($s)."'");
  275. $sp = decode_array($sa[permissions]);
  276. print "<td class='td$color' style='padding-left: 40px'>";
  277. /*if ($sa[type]=='story')*/ print "<a href='#' onClick$nl='opener.window.location=\"index.php?$sid&action=viewsite&site=$site&section=$sec&page=$p\"'>";
  278. print "$j. &nbsp; $sa[title]";
  279. /*if ($sa[type]=='story')*/ print "</a>";
  280. // print "<br /><pre>";print_r($sp);print "</pre>";
  281. print "</td>";
  282. // foreach($editors as $user) {
  283. print "<td class='td$color' align='center'".((1)?" style='border-left: 2px solid #fff;'":"").">n/a</td>";
  284. for ($i=1;$i<3;$i++) {
  285. print "<td class='td$color' align='center'".(($i==0)?" style='border-left: 2px solid #fff;'":"").">";
  286. print ($sa[type]!='url' && $sp[$user][$i])?"X":"&nbsp;";
  287. print "</td>";
  288. }
  289. // }
  290. print "</tr>";
  291. $color = 1-$color;
  292. $j++;
  293. }
  294. }
  295. }
  296. } else {
  297. print "<tr><td class='td$color' colspan='4'>No sections in this site.</td></tr>";
  298. }
  299. print "</table><br />";
  300. }
  301. ?>
  302. <div align='right'><input type='button' value='Close Window' onclick='window.close()' /></div>