00001 <?php
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00062 unset($MCONF);
00063 require('conf.php');
00064 require($BACK_PATH.'init.php');
00065 require($BACK_PATH.'template.php');
00066 $LANG->includeLLFile('EXT:lang/locallang_mod_web_perm.xml');
00067 require_once (PATH_t3lib.'class.t3lib_pagetree.php');
00068 require_once (PATH_t3lib.'class.t3lib_page.php');
00069
00070 $BE_USER->modAccess($MCONF,1);
00071
00072
00073
00074
00075
00076
00089 class SC_mod_web_perm_index {
00090
00091
00092 var $getLevels = 10;
00093
00094
00095 var $MCONF=array();
00096 var $doc;
00097 var $content;
00098
00099 var $MOD_MENU=array();
00100 var $MOD_SETTINGS=array();
00101
00102 var $perms_clause;
00103 var $pageinfo;
00104
00105 var $color;
00106 var $color2;
00107 var $color3;
00108
00109 var $editingAllowed;
00110
00111
00112 var $id;
00113 var $edit;
00114 var $return_id;
00115 var $lastEdited;
00116
00117
00123 function init() {
00124 global $BE_USER,$BACK_PATH;
00125
00126
00127 $this->id = intval(t3lib_div::_GP('id'));
00128 $this->edit = t3lib_div::_GP('edit');
00129 $this->return_id = t3lib_div::_GP('return_id');
00130 $this->lastEdited = t3lib_div::_GP('lastEdited');
00131
00132
00133 $this->MCONF = $GLOBALS['MCONF'];
00134
00135
00136 $this->perms_clause = $BE_USER->getPagePermsClause(1);
00137
00138
00139 $this->doc = t3lib_div::makeInstance('mediumDoc');
00140 $this->doc->backPath = $BACK_PATH;
00141 $this->doc->docType = 'xhtml_trans';
00142 $this->doc->form='<form action="'.$BACK_PATH.'tce_db.php" method="post" name="editform">';
00143 $this->doc->JScode = '<script type="text/javascript" src="'.$BACK_PATH.'t3lib/jsfunc.updateform.js"></script>';
00144 $this->doc->JScode.= $this->doc->wrapScriptTags('
00145 function checkChange(checknames, varname) {
00146 var res = 0;
00147 for (var a=1; a<=5; a++) {
00148 if (document.editform[checknames+"["+a+"]"].checked) {
00149 res|=Math.pow(2,a-1);
00150 }
00151 }
00152 document.editform[varname].value = res | (checknames=="check[perms_user]"?1:0) ;
00153 setCheck (checknames,varname);
00154 }
00155 function setCheck(checknames, varname) {
00156 if (document.editform[varname]) {
00157 var res = document.editform[varname].value;
00158 for (var a=1; a<=5; a++) {
00159 document.editform[checknames+"["+a+"]"].checked = (res & Math.pow(2,a-1));
00160 }
00161 }
00162 }
00163 function jumpToUrl(URL) {
00164 document.location = URL;
00165 }
00166 ');
00167
00168
00169 $CMparts=$this->doc->getContextMenuCode();
00170 $this->doc->bodyTagAdditions = $CMparts[1];
00171 $this->doc->JScode.=$CMparts[0];
00172 $this->doc->postCode.= $CMparts[2];
00173
00174
00175 $this->menuConfig();
00176 }
00177
00183 function menuConfig() {
00184 global $LANG;
00185
00186
00187
00188
00189
00190 $temp = $LANG->getLL('levels');
00191 $this->MOD_MENU = array(
00192 'depth' => array(
00193 1 => '1 '.$temp,
00194 2 => '2 '.$temp,
00195 3 => '3 '.$temp,
00196 4 => '4 '.$temp,
00197 10 => '10 '.$temp
00198 ),
00199 'mode' => array(
00200 0 => $LANG->getLL('user_overview'),
00201 'perms' => $LANG->getLL('permissions')
00202 )
00203 );
00204
00205
00206 $this->MOD_SETTINGS = t3lib_BEfunc::getModuleData($this->MOD_MENU, t3lib_div::_GP('SET'), $this->MCONF['name']);
00207 }
00208
00214 function main() {
00215 global $BE_USER,$LANG;
00216
00217
00218
00219 $this->pageinfo = t3lib_BEfunc::readPageAccess($this->id,$this->perms_clause);
00220 $access = is_array($this->pageinfo) ? 1 : 0;
00221
00222
00223 if (($this->id && $access) || ($BE_USER->user['admin'] && !$this->id)) {
00224 if ($BE_USER->user['admin'] && !$this->id) {
00225 $this->pageinfo=array('title' => '[root-level]','uid'=>0,'pid'=>0);
00226 }
00227
00228
00229 $this->editingAllowed = ($this->pageinfo['perms_userid']==$BE_USER->user['uid'] || $BE_USER->isAdmin());
00230 $this->edit = $this->edit && $this->editingAllowed;
00231
00232
00233 if ($this->edit) {
00234 $this->doc->postCode.= $this->doc->wrapScriptTags('
00235 setCheck("check[perms_user]","data[pages]['.$this->id.'][perms_user]");
00236 setCheck("check[perms_group]","data[pages]['.$this->id.'][perms_group]");
00237 setCheck("check[perms_everybody]","data[pages]['.$this->id.'][perms_everybody]");
00238 ');
00239 }
00240
00241
00242 $this->content.=$this->doc->startPage($LANG->getLL('permissions'));
00243 $this->content.=$this->doc->header($LANG->getLL('permissions').($this->edit?': '.$LANG->getLL('Edit'):''));
00244 $this->content.=$this->doc->spacer(5);
00245 $this->content.=$this->doc->section('',
00246 $this->doc->funcMenu(
00247 $this->doc->getHeader('pages',$this->pageinfo,htmlspecialchars($this->pageinfo['_thePath'])).'<br />'.
00248 $LANG->sL('LLL:EXT:lang/locallang_core.php:labels.path',1).': '.
00249 '<span title="'.htmlspecialchars($this->pageinfo['_thePathFull']).'">'.htmlspecialchars(t3lib_div::fixed_lgd_cs($this->pageinfo['_thePath'],-50)).'</span>',
00250 t3lib_BEfunc::getFuncMenu($this->id,'SET[mode]',$this->MOD_SETTINGS['mode'],$this->MOD_MENU['mode'])
00251 ));
00252 $this->content.=$this->doc->divider(5);
00253
00254
00255
00256 $vContent = $this->doc->getVersionSelector($this->id,1);
00257 if ($vContent) {
00258 $this->content.=$this->doc->section('',$vContent);
00259 }
00260
00261
00262
00263
00264 if (!$this->edit) {
00265 $this->notEdit();
00266 } else {
00267 $this->doEdit();
00268 }
00269
00270
00271 if ($BE_USER->mayMakeShortcut()) {
00272 $this->content.=
00273 $this->doc->spacer(20).
00274 $this->doc->section('',$this->doc->makeShortcutIcon('id,edit,return_id',implode(',',array_keys($this->MOD_MENU)),$this->MCONF['name']));
00275 }
00276 } else {
00277
00278 $this->content.=$this->doc->startPage($LANG->getLL('permissions'));
00279 $this->content.=$this->doc->header($LANG->getLL('permissions'));
00280 }
00281
00282
00283 $this->content.=$this->doc->endPage();
00284 }
00285
00291 function printContent() {
00292
00293 echo $this->content;
00294 }
00295
00296
00297
00298
00299
00300
00301
00302
00303
00304
00305
00306
00307
00308
00309
00310
00317 function doEdit() {
00318 global $BE_USER,$LANG;
00319
00320
00321 $be_group_Array=t3lib_BEfunc::getListGroupNames('title,uid');
00322 $groupArray=array_keys($be_group_Array);
00323
00324 $be_user_Array = t3lib_BEfunc::getUserNames();
00325 if (!$GLOBALS['BE_USER']->isAdmin()) $be_user_Array = t3lib_BEfunc::blindUserNames($be_user_Array,$groupArray,1);
00326 $be_group_Array_o = $be_group_Array = t3lib_BEfunc::getGroupNames();
00327 if (!$GLOBALS['BE_USER']->isAdmin()) $be_group_Array = t3lib_BEfunc::blindGroupNames($be_group_Array_o,$groupArray,1);
00328 $firstGroup = $groupArray[0] ? $be_group_Array[$groupArray[0]] : '';
00329
00330
00331
00332 $options='';
00333 $userset=0;
00334 foreach($be_user_Array as $uid => $row) {
00335 if ($uid==$this->pageinfo['perms_userid']) {
00336 $userset = 1;
00337 $selected=' selected="selected"';
00338 } else {$selected='';}
00339 $options.='
00340 <option value="'.$uid.'"'.$selected.'>'.htmlspecialchars($row['username']).'</option>';
00341 }
00342 $options='
00343 <option value="0"></option>'.$options;
00344 $selector='
00345 <select name="data[pages]['.$this->id.'][perms_userid]">
00346 '.$options.'
00347 </select>';
00348
00349 $this->content.=$this->doc->section($LANG->getLL('Owner').':',$selector);
00350
00351
00352
00353 $options='';
00354 $userset=0;
00355 foreach($be_group_Array as $uid => $row) {
00356 if ($uid==$this->pageinfo['perms_groupid']) {
00357 $userset = 1;
00358 $selected=' selected="selected"';
00359 } else {$selected='';}
00360 $options.='
00361 <option value="'.$uid.'"'.$selected.'>'.htmlspecialchars($row['title']).'</option>';
00362 }
00363 if (!$userset && $this->pageinfo['perms_groupid']) {
00364 $options='
00365 <option value="'.$this->pageinfo['perms_groupid'].'" selected="selected">'.
00366 htmlspecialchars($be_group_Array_o[$this->pageinfo['perms_groupid']]['title']).
00367 '</option>'.
00368 $options;
00369 }
00370 $options='
00371 <option value="0"></option>'.$options;
00372 $selector='
00373 <select name="data[pages]['.$this->id.'][perms_groupid]">
00374 '.$options.'
00375 </select>';
00376
00377 $this->content.=$this->doc->divider(5);
00378 $this->content.=$this->doc->section($LANG->getLL('Group').':',$selector);
00379
00380
00381 $code='
00382 <table border="0" cellspacing="2" cellpadding="0" id="typo3-permissionMatrix">
00383 <tr>
00384 <td></td>
00385 <td class="bgColor2">'.str_replace(' ','<br />',$LANG->getLL('1',1)).'</td>
00386 <td class="bgColor2">'.str_replace(' ','<br />',$LANG->getLL('16',1)).'</td>
00387 <td class="bgColor2">'.str_replace(' ','<br />',$LANG->getLL('2',1)).'</td>
00388 <td class="bgColor2">'.str_replace(' ','<br />',$LANG->getLL('4',1)).'</td>
00389 <td class="bgColor2">'.str_replace(' ','<br />',$LANG->getLL('8',1)).'</td>
00390 </tr>
00391 <tr>
00392 <td align="right" class="bgColor2">'.$LANG->getLL('Owner',1).'</td>
00393 <td class="bgColor-20">'.$this->printCheckBox('perms_user',1).'</td>
00394 <td class="bgColor-20">'.$this->printCheckBox('perms_user',5).'</td>
00395 <td class="bgColor-20">'.$this->printCheckBox('perms_user',2).'</td>
00396 <td class="bgColor-20">'.$this->printCheckBox('perms_user',3).'</td>
00397 <td class="bgColor-20">'.$this->printCheckBox('perms_user',4).'</td>
00398 </tr>
00399 <tr>
00400 <td align="right" class="bgColor2">'.$LANG->getLL('Group',1).'</td>
00401 <td class="bgColor-20">'.$this->printCheckBox('perms_group',1).'</td>
00402 <td class="bgColor-20">'.$this->printCheckBox('perms_group',5).'</td>
00403 <td class="bgColor-20">'.$this->printCheckBox('perms_group',2).'</td>
00404 <td class="bgColor-20">'.$this->printCheckBox('perms_group',3).'</td>
00405 <td class="bgColor-20">'.$this->printCheckBox('perms_group',4).'</td>
00406 </tr>
00407 <tr>
00408 <td align="right" class="bgColor2">'.$LANG->getLL('Everybody',1).'</td>
00409 <td class="bgColor-20">'.$this->printCheckBox('perms_everybody',1).'</td>
00410 <td class="bgColor-20">'.$this->printCheckBox('perms_everybody',5).'</td>
00411 <td class="bgColor-20">'.$this->printCheckBox('perms_everybody',2).'</td>
00412 <td class="bgColor-20">'.$this->printCheckBox('perms_everybody',3).'</td>
00413 <td class="bgColor-20">'.$this->printCheckBox('perms_everybody',4).'</td>
00414 </tr>
00415 </table>
00416 <br />
00417
00418 <input type="hidden" name="data[pages]['.$this->id.'][perms_user]" value="'.$this->pageinfo['perms_user'].'" />
00419 <input type="hidden" name="data[pages]['.$this->id.'][perms_group]" value="'.$this->pageinfo['perms_group'].'" />
00420 <input type="hidden" name="data[pages]['.$this->id.'][perms_everybody]" value="'.$this->pageinfo['perms_everybody'].'" />
00421 '.$this->getRecursiveSelect($this->id,$this->perms_clause).'
00422 <input type="submit" name="submit" value="'.$LANG->getLL('Save',1).'" />'.
00423 '<input type="submit" value="'.$LANG->getLL('Abort',1).'" onclick="'.htmlspecialchars('jumpToUrl(\'index.php?id='.$this->id.'\'); return false;').'" />
00424 <input type="hidden" name="redirect" value="'.htmlspecialchars(TYPO3_MOD_PATH.'index.php?mode='.$this->MOD_SETTINGS['mode'].'&depth='.$this->MOD_SETTINGS['depth'].'&id='.intval($this->return_id).'&lastEdited='.$this->id).'" />
00425 ';
00426
00427
00428 $this->content.=$this->doc->divider(5);
00429 $this->content.=$this->doc->section($LANG->getLL('permissions').':',$code);
00430
00431
00432 $this->content.= t3lib_BEfunc::cshItem('xMOD_csh_corebe', 'perm_module_setting', $GLOBALS['BACK_PATH'],'<br/><br/>');
00433
00434
00435 if ($BE_USER->uc['helpText']) {
00436 $this->content.=$this->doc->divider(20);
00437 $legendText = '<b>'.$LANG->getLL('1',1).'</b>: '.$LANG->getLL('1_t',1);
00438 $legendText.= '<br /><b>'.$LANG->getLL('16',1).'</b>: '.$LANG->getLL('16_t',1);
00439 $legendText.= '<br /><b>'.$LANG->getLL('2',1).'</b>: '.$LANG->getLL('2_t',1);
00440 $legendText.= '<br /><b>'.$LANG->getLL('4',1).'</b>: '.$LANG->getLL('4_t',1);
00441 $legendText.= '<br /><b>'.$LANG->getLL('8',1).'</b>: '.$LANG->getLL('8_t',1);
00442
00443 $code=$legendText.'<br /><br />'.$LANG->getLL('def',1);
00444 $this->content.=$this->doc->section($LANG->getLL('Legend',1).':',$code);
00445 }
00446 }
00447
00454 function notEdit() {
00455 global $BE_USER,$LANG,$BACK_PATH;
00456
00457
00458 $groupArray = $BE_USER->userGroupsUID;
00459 $be_user_Array = t3lib_BEfunc::getUserNames();
00460 if (!$GLOBALS['BE_USER']->isAdmin()) $be_user_Array = t3lib_BEfunc::blindUserNames($be_user_Array,$groupArray,0);
00461 $be_group_Array = t3lib_BEfunc::getGroupNames();
00462 if (!$GLOBALS['BE_USER']->isAdmin()) $be_group_Array = t3lib_BEfunc::blindGroupNames($be_group_Array,$groupArray,0);
00463
00464
00465 $tLen= ($this->MOD_SETTINGS['mode']=='perms' ? 20 : 30);
00466
00467
00468
00469 $code.=$LANG->getLL('Depth').': ';
00470 $code.=t3lib_BEfunc::getFuncMenu($this->id,'SET[depth]',$this->MOD_SETTINGS['depth'],$this->MOD_MENU['depth']);
00471 $this->content.=$this->doc->section('',$code);
00472 $this->content.=$this->doc->spacer(5);
00473
00474
00475 $tree = t3lib_div::makeInstance('t3lib_pageTree');
00476 $tree->init('AND '.$this->perms_clause);
00477
00478 $tree->addField('perms_user',1);
00479 $tree->addField('perms_group',1);
00480 $tree->addField('perms_everybody',1);
00481 $tree->addField('perms_userid',1);
00482 $tree->addField('perms_groupid',1);
00483 $tree->addField('hidden');
00484 $tree->addField('fe_group');
00485 $tree->addField('starttime');
00486 $tree->addField('endtime');
00487 $tree->addField('editlock');
00488
00489
00490 $HTML=t3lib_iconWorks::getIconImage('pages',$this->pageinfo,$BACK_PATH,'align="top"');
00491 $tree->tree[]=Array('row'=>$this->pageinfo,'HTML'=>$HTML);
00492
00493
00494 $tree->getTree($this->id,$this->MOD_SETTINGS['depth'],'');
00495
00496
00497 $code='';
00498 if ($this->MOD_SETTINGS['mode']=='perms') {
00499 $code.='
00500 <tr>
00501 <td class="bgColor2" colspan="2"> </td>
00502 <td class="bgColor2"><img'.t3lib_iconWorks::skinImg($BACK_PATH,'gfx/line.gif','width="5" height="16"').' alt="" /></td>
00503 <td class="bgColor2" align="center"><b>'.$LANG->getLL('Owner',1).'</b></td>
00504 <td class="bgColor2"><img'.t3lib_iconWorks::skinImg($BACK_PATH,'gfx/line.gif','width="5" height="16"').' alt="" /></td>
00505 <td class="bgColor2" align="center"><b>'.$LANG->getLL('Group',1).'</b></td>
00506 <td class="bgColor2"><img'.t3lib_iconWorks::skinImg($BACK_PATH,'gfx/line.gif','width="5" height="16"').' alt="" /></td>
00507 <td class="bgColor2" align="center"><b>'.$LANG->getLL('Everybody',1).'</b></td>
00508 <td class="bgColor2"><img'.t3lib_iconWorks::skinImg($BACK_PATH,'gfx/line.gif','width="5" height="16"').' alt="" /></td>
00509 <td class="bgColor2" align="center"><b>'.$LANG->getLL('EditLock',1).'</b></td>
00510 </tr>
00511 ';
00512 } else {
00513 $code.='
00514 <tr>
00515 <td class="bgColor2" colspan="2"> </td>
00516 <td class="bgColor2"><img'.t3lib_iconWorks::skinImg($BACK_PATH,'gfx/line.gif','width="5" height="16"').' alt="" /></td>
00517 <td class="bgColor2" align="center" nowrap="nowrap"><b>'.$LANG->getLL('User',1).':</b> '.$BE_USER->user['username'].'</td>
00518 '.(!$BE_USER->isAdmin()?'<td class="bgColor2"><img'.t3lib_iconWorks::skinImg($BACK_PATH,'gfx/line.gif','width="5" height="16"').' alt="" /></td>
00519 <td class="bgColor2" align="center"><b>'.$LANG->getLL('EditLock',1).'</b></td>':'').'
00520 </tr>';
00521 }
00522
00523
00524 foreach($tree->tree as $data) {
00525 $cells = array();
00526
00527
00528 if ($this->lastEdited==$data['row']['uid']) {$bgCol = ' class="bgColor-20"';} else {$bgCol = '';}
00529 $lE_bgCol = $bgCol;
00530
00531
00532 $userN = $be_user_Array[$data['row']['perms_userid']] ? $be_user_Array[$data['row']['perms_userid']]['username'] : ($data['row']['perms_userid'] ? '<i>['.$data['row']['perms_userid'].']!</i>' : '');
00533 $groupN = $be_group_Array[$data['row']['perms_groupid']] ? $be_group_Array[$data['row']['perms_groupid']]['title'] : ($data['row']['perms_groupid'] ? '<i>['.$data['row']['perms_groupid'].']!</i>' : '');
00534 $groupN = t3lib_div::fixed_lgd_cs($groupN,20);
00535
00536
00537 $editPermsAllowed=($data['row']['perms_userid']==$BE_USER->user['uid'] || $BE_USER->isAdmin());
00538
00539
00540 $cells[]='
00541 <td align="left" nowrap="nowrap"'.$bgCol.'>'.$data['HTML'].htmlspecialchars(t3lib_div::fixed_lgd($data['row']['title'],$tLen)).' </td>';
00542
00543
00544 if ($editPermsAllowed && $data['row']['uid']) {
00545 $aHref = 'index.php?mode='.$this->MOD_SETTINGS['mode'].'&depth='.$this->MOD_SETTINGS['depth'].'&id='.$data['row']['uid'].'&return_id='.$this->id.'&edit=1';
00546 $cells[]='
00547 <td'.$bgCol.'><a href="'.htmlspecialchars($aHref).'"><img'.t3lib_iconWorks::skinImg($BACK_PATH,'gfx/edit2.gif','width="11" height="12"').' border="0" title="'.$LANG->getLL('ch_permissions',1).'" align="top" alt="" /></a></td>';
00548 } else {
00549 $cells[]='
00550 <td'.$bgCol.'></td>';
00551 }
00552
00553
00554 if ($this->MOD_SETTINGS['mode']=='perms') {
00555 $cells[]='
00556 <td'.$bgCol.'><img'.t3lib_iconWorks::skinImg($BACK_PATH,'gfx/line.gif','width="5" height="16"').' alt="" /></td>
00557 <td'.$bgCol.' nowrap="nowrap">'.($data['row']['uid']?$this->printPerms($data['row']['perms_user']).' '.$userN:'').'</td>
00558
00559 <td'.$bgCol.'><img'.t3lib_iconWorks::skinImg($BACK_PATH,'gfx/line.gif','width="5" height="16"').' alt="" /></td>
00560 <td'.$bgCol.' nowrap="nowrap">'.($data['row']['uid']?$this->printPerms($data['row']['perms_group']).' '.$groupN:'').'</td>
00561
00562 <td'.$bgCol.'><img'.t3lib_iconWorks::skinImg($BACK_PATH,'gfx/line.gif','width="5" height="16"').' alt="" /></td>
00563 <td'.$bgCol.' nowrap="nowrap">'.($data['row']['uid']?' '.$this->printPerms($data['row']['perms_everybody']):'').'</td>
00564
00565 <td'.$bgCol.'><img'.t3lib_iconWorks::skinImg($BACK_PATH,'gfx/line.gif','width="5" height="16"').' alt="" /></td>
00566 <td'.$bgCol.' nowrap="nowrap">'.($data['row']['editlock']?'<img'.t3lib_iconWorks::skinImg($BACK_PATH,'gfx/recordlock_warning2.gif','width="22" height="16"').' title="'.$LANG->getLL('EditLock_descr',1).'" alt="" />':'').'</td>
00567 ';
00568 } else {
00569 $cells[]='
00570 <td'.$bgCol.'><img'.t3lib_iconWorks::skinImg($BACK_PATH,'gfx/line.gif','width="5" height="16"').' alt="" /></td>';
00571
00572 if ($BE_USER->user['uid']==$data['row']['perms_userid']) {$bgCol = ' class="bgColor-20"';} else {$bgCol = $lE_bgCol;}
00573 $cells[]='
00574 <td'.$bgCol.' nowrap="nowrap" align="center">'.($data['row']['uid']?$owner.$this->printPerms($BE_USER->calcPerms($data['row'])):'').'</td>
00575 '.(!$BE_USER->isAdmin()?'
00576 <td'.$bgCol.'><img'.t3lib_iconWorks::skinImg($BACK_PATH,'gfx/line.gif','width="5" height="16"').' alt="" /></td>
00577 <td'.$bgCol.' nowrap="nowrap">'.($data['row']['editlock']?'<img'.t3lib_iconWorks::skinImg($BACK_PATH,'gfx/recordlock_warning2.gif','width="22" height="16"').' title="'.$LANG->getLL('EditLock_descr',1).'" alt="" />':'').'</td>
00578 ':'');
00579 $bgCol = $lE_bgCol;
00580 }
00581
00582
00583 $code.='
00584 <tr>
00585 '.implode('
00586 ',$cells).'
00587 </tr>';
00588 }
00589
00590
00591 $code='<table border="0" cellspacing="0" cellpadding="0" id="typo3-permissionList">'.$code.'</table>';
00592
00593
00594 $this->content.=$this->doc->section('',$code);
00595
00596
00597 $this->content.= t3lib_BEfunc::cshItem('xMOD_csh_corebe', 'perm_module', $GLOBALS['BACK_PATH'],'<br/>|');
00598
00599
00600 $legendText = '<b>'.$LANG->getLL('1',1).'</b>: '.$LANG->getLL('1_t',1);
00601 $legendText.= '<br /><b>'.$LANG->getLL('16',1).'</b>: '.$LANG->getLL('16_t',1);
00602 $legendText.= '<br /><b>'.$LANG->getLL('2',1).'</b>: '.$LANG->getLL('2_t',1);
00603 $legendText.= '<br /><b>'.$LANG->getLL('4',1).'</b>: '.$LANG->getLL('4_t',1);
00604 $legendText.= '<br /><b>'.$LANG->getLL('8',1).'</b>: '.$LANG->getLL('8_t',1);
00605
00606 $code='<table border="0" id="typo3-legendTable">
00607 <tr>
00608 <td valign="top"><img src="legend.gif" width="86" height="75" alt="" /></td>
00609 <td valign="top" nowrap="nowrap">'.$legendText.'</td>
00610 </tr>
00611 </table>';
00612 $code.='<br />'.$LANG->getLL('def',1);
00613 $code.='<br /><br /><span class="perm-allowed">*</span>: '.$LANG->getLL('A_Granted',1);
00614 $code.='<br /><span class="perm-denied">x</span>: '.$LANG->getLL('A_Denied',1);
00615
00616
00617 $this->content.=$this->doc->spacer(20);
00618 $this->content.=$this->doc->section($LANG->getLL('Legend').':',$code,0,1);
00619 }
00620
00621
00622
00623
00624
00625
00626
00627
00628
00629
00630
00631
00632
00633
00634
00635
00636
00637
00638
00639
00647 function printCheckBox($checkName,$num) {
00648 $onClick = 'checkChange(\'check['.$checkName.']\', \'data[pages]['.$GLOBALS['SOBE']->id.']['.$checkName.']\')';
00649 return '<input type="checkbox" name="check['.$checkName.']['.$num.']" onclick="'.htmlspecialchars($onClick).'" /><br />';
00650 }
00651
00658 function printPerms($int) {
00659 $str='';
00660 $str.= (($int&1)?'*':'<span class="perm-denied">x</span>');
00661 $str.= (($int&16)?'*':'<span class="perm-denied">x</span>');
00662 $str.= (($int&2)?'*':'<span class="perm-denied">x</span>');
00663 $str.= (($int&4)?'*':'<span class="perm-denied">x</span>');
00664 $str.= (($int&8)?'*':'<span class="perm-denied">x</span>');
00665
00666 return '<span class="perm-allowed">'.$str.'</span>';
00667 }
00668
00676 function groupPerms($row,$firstGroup) {
00677 if (is_array($row)) {
00678 $out=intval($row['perms_everybody']);
00679 if ($row['perms_groupid'] && $firstGroup['uid']==$row['perms_groupid']) {
00680 $out|= intval($row['perms_group']);
00681 }
00682 return $out;
00683 }
00684 }
00685
00693 function getRecursiveSelect($id,$perms_clause) {
00694
00695
00696 $tree = t3lib_div::makeInstance('t3lib_pageTree');
00697 $tree->init('AND '.$perms_clause);
00698 $tree->addField('perms_userid',1);
00699 $tree->makeHTML=0;
00700 $tree->setRecs = 1;
00701
00702
00703 $tree->getTree($id,$this->getLevels,'');
00704
00705
00706 if ($GLOBALS['BE_USER']->user['uid'] && count($tree->ids_hierarchy)) {
00707
00708
00709 $label_recur = $GLOBALS['LANG']->getLL('recursive');
00710 $label_levels = $GLOBALS['LANG']->getLL('levels');
00711 $label_pA = $GLOBALS['LANG']->getLL('pages_affected');
00712 $theIdListArr=array();
00713 $opts='
00714 <option value=""></option>';
00715
00716
00717 for ($a=$this->getLevels;$a>0;$a--) {
00718 if (is_array($tree->ids_hierarchy[$a])) {
00719 foreach($tree->ids_hierarchy[$a] as $theId) {
00720 if ($GLOBALS['BE_USER']->isAdmin() || $GLOBALS['BE_USER']->user['uid']==$tree->recs[$theId]['perms_userid']) {
00721 $theIdListArr[]=$theId;
00722 }
00723 }
00724 $lKey = $this->getLevels-$a+1;
00725 $opts.='
00726 <option value="'.htmlspecialchars(implode(',',$theIdListArr)).'">'.
00727 t3lib_div::deHSCentities(htmlspecialchars($label_recur.' '.$lKey.' '.$label_levels)).' ('.count($theIdListArr).' '.$label_pA.')'.
00728 '</option>';
00729 }
00730 }
00731
00732
00733 $theRecursiveSelect = '<br />
00734 <select name="mirror[pages]['.$id.']">
00735 '.$opts.'
00736 </select>
00737
00738 <br /><br />';
00739 } else {
00740 $theRecursiveSelect = '';
00741 }
00742
00743
00744 return $theRecursiveSelect;
00745 }
00746 }
00747
00748
00749 if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['typo3/mod/web/perm/index.php']) {
00750 include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['typo3/mod/web/perm/index.php']);
00751 }
00752
00753
00754
00755
00756
00757
00758
00759
00760
00761
00762
00763
00764
00765 $SOBE = t3lib_div::makeInstance('SC_mod_web_perm_index');
00766 $SOBE->init();
00767 $SOBE->main();
00768 $SOBE->printContent();
00769
00770 if ($TYPO3_CONF_VARS['BE']['compressionLevel']) {
00771 new gzip_encode($TYPO3_CONF_VARS['BE']['compressionLevel']);
00772 }
00773 ?>