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 window.location.href = 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
00288 function printContent() {
00289 $this->content.= $this->doc->endPage();
00290 $this->content = $this->doc->insertStylesAndJS($this->content);
00291 echo $this->content;
00292 }
00293
00294
00295
00296
00297
00298
00299
00300
00301
00302
00303
00304
00305
00306
00307
00308
00315 function doEdit() {
00316 global $BE_USER,$LANG;
00317
00318
00319 $be_group_Array=t3lib_BEfunc::getListGroupNames('title,uid');
00320 $groupArray=array_keys($be_group_Array);
00321
00322 $be_user_Array = t3lib_BEfunc::getUserNames();
00323 if (!$GLOBALS['BE_USER']->isAdmin()) $be_user_Array = t3lib_BEfunc::blindUserNames($be_user_Array,$groupArray,1);
00324 $be_group_Array_o = $be_group_Array = t3lib_BEfunc::getGroupNames();
00325 if (!$GLOBALS['BE_USER']->isAdmin()) $be_group_Array = t3lib_BEfunc::blindGroupNames($be_group_Array_o,$groupArray,1);
00326 $firstGroup = $groupArray[0] ? $be_group_Array[$groupArray[0]] : '';
00327
00328
00329
00330 $options='';
00331 $userset=0;
00332 foreach($be_user_Array as $uid => $row) {
00333 if ($uid==$this->pageinfo['perms_userid']) {
00334 $userset = 1;
00335 $selected=' selected="selected"';
00336 } else {$selected='';}
00337 $options.='
00338 <option value="'.$uid.'"'.$selected.'>'.htmlspecialchars($row['username']).'</option>';
00339 }
00340 $options='
00341 <option value="0"></option>'.$options;
00342 $selector='
00343 <select name="data[pages]['.$this->id.'][perms_userid]">
00344 '.$options.'
00345 </select>';
00346
00347 $this->content.=$this->doc->section($LANG->getLL('Owner').':',$selector);
00348
00349
00350
00351 $options='';
00352 $userset=0;
00353 foreach($be_group_Array as $uid => $row) {
00354 if ($uid==$this->pageinfo['perms_groupid']) {
00355 $userset = 1;
00356 $selected=' selected="selected"';
00357 } else {$selected='';}
00358 $options.='
00359 <option value="'.$uid.'"'.$selected.'>'.htmlspecialchars($row['title']).'</option>';
00360 }
00361 if (!$userset && $this->pageinfo['perms_groupid']) {
00362 $options='
00363 <option value="'.$this->pageinfo['perms_groupid'].'" selected="selected">'.
00364 htmlspecialchars($be_group_Array_o[$this->pageinfo['perms_groupid']]['title']).
00365 '</option>'.
00366 $options;
00367 }
00368 $options='
00369 <option value="0"></option>'.$options;
00370 $selector='
00371 <select name="data[pages]['.$this->id.'][perms_groupid]">
00372 '.$options.'
00373 </select>';
00374
00375 $this->content.=$this->doc->divider(5);
00376 $this->content.=$this->doc->section($LANG->getLL('Group').':',$selector);
00377
00378
00379 $code='
00380 <table border="0" cellspacing="2" cellpadding="0" id="typo3-permissionMatrix">
00381 <tr>
00382 <td></td>
00383 <td class="bgColor2">'.str_replace(' ','<br />',$LANG->getLL('1',1)).'</td>
00384 <td class="bgColor2">'.str_replace(' ','<br />',$LANG->getLL('16',1)).'</td>
00385 <td class="bgColor2">'.str_replace(' ','<br />',$LANG->getLL('2',1)).'</td>
00386 <td class="bgColor2">'.str_replace(' ','<br />',$LANG->getLL('4',1)).'</td>
00387 <td class="bgColor2">'.str_replace(' ','<br />',$LANG->getLL('8',1)).'</td>
00388 </tr>
00389 <tr>
00390 <td align="right" class="bgColor2">'.$LANG->getLL('Owner',1).'</td>
00391 <td class="bgColor-20">'.$this->printCheckBox('perms_user',1).'</td>
00392 <td class="bgColor-20">'.$this->printCheckBox('perms_user',5).'</td>
00393 <td class="bgColor-20">'.$this->printCheckBox('perms_user',2).'</td>
00394 <td class="bgColor-20">'.$this->printCheckBox('perms_user',3).'</td>
00395 <td class="bgColor-20">'.$this->printCheckBox('perms_user',4).'</td>
00396 </tr>
00397 <tr>
00398 <td align="right" class="bgColor2">'.$LANG->getLL('Group',1).'</td>
00399 <td class="bgColor-20">'.$this->printCheckBox('perms_group',1).'</td>
00400 <td class="bgColor-20">'.$this->printCheckBox('perms_group',5).'</td>
00401 <td class="bgColor-20">'.$this->printCheckBox('perms_group',2).'</td>
00402 <td class="bgColor-20">'.$this->printCheckBox('perms_group',3).'</td>
00403 <td class="bgColor-20">'.$this->printCheckBox('perms_group',4).'</td>
00404 </tr>
00405 <tr>
00406 <td align="right" class="bgColor2">'.$LANG->getLL('Everybody',1).'</td>
00407 <td class="bgColor-20">'.$this->printCheckBox('perms_everybody',1).'</td>
00408 <td class="bgColor-20">'.$this->printCheckBox('perms_everybody',5).'</td>
00409 <td class="bgColor-20">'.$this->printCheckBox('perms_everybody',2).'</td>
00410 <td class="bgColor-20">'.$this->printCheckBox('perms_everybody',3).'</td>
00411 <td class="bgColor-20">'.$this->printCheckBox('perms_everybody',4).'</td>
00412 </tr>
00413 </table>
00414 <br />
00415
00416 <input type="hidden" name="data[pages]['.$this->id.'][perms_user]" value="'.$this->pageinfo['perms_user'].'" />
00417 <input type="hidden" name="data[pages]['.$this->id.'][perms_group]" value="'.$this->pageinfo['perms_group'].'" />
00418 <input type="hidden" name="data[pages]['.$this->id.'][perms_everybody]" value="'.$this->pageinfo['perms_everybody'].'" />
00419 '.$this->getRecursiveSelect($this->id,$this->perms_clause).'
00420 <input type="submit" name="submit" value="'.$LANG->getLL('Save',1).'" />'.
00421 '<input type="submit" value="'.$LANG->getLL('Abort',1).'" onclick="'.htmlspecialchars('jumpToUrl(\'index.php?id='.$this->id.'\'); return false;').'" />
00422 <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).'" />
00423 ';
00424
00425
00426 $this->content.=$this->doc->divider(5);
00427 $this->content.=$this->doc->section($LANG->getLL('permissions').':',$code);
00428
00429
00430 $this->content.= t3lib_BEfunc::cshItem('xMOD_csh_corebe', 'perm_module_setting', $GLOBALS['BACK_PATH'],'<br/><br/>');
00431
00432
00433 if ($BE_USER->uc['helpText']) {
00434 $this->content.=$this->doc->divider(20);
00435 $legendText = '<b>'.$LANG->getLL('1',1).'</b>: '.$LANG->getLL('1_t',1);
00436 $legendText.= '<br /><b>'.$LANG->getLL('16',1).'</b>: '.$LANG->getLL('16_t',1);
00437 $legendText.= '<br /><b>'.$LANG->getLL('2',1).'</b>: '.$LANG->getLL('2_t',1);
00438 $legendText.= '<br /><b>'.$LANG->getLL('4',1).'</b>: '.$LANG->getLL('4_t',1);
00439 $legendText.= '<br /><b>'.$LANG->getLL('8',1).'</b>: '.$LANG->getLL('8_t',1);
00440
00441 $code=$legendText.'<br /><br />'.$LANG->getLL('def',1);
00442 $this->content.=$this->doc->section($LANG->getLL('Legend',1).':',$code);
00443 }
00444 }
00445
00452 function notEdit() {
00453 global $BE_USER,$LANG,$BACK_PATH;
00454
00455
00456 $groupArray = $BE_USER->userGroupsUID;
00457 $be_user_Array = t3lib_BEfunc::getUserNames();
00458 if (!$GLOBALS['BE_USER']->isAdmin()) $be_user_Array = t3lib_BEfunc::blindUserNames($be_user_Array,$groupArray,0);
00459 $be_group_Array = t3lib_BEfunc::getGroupNames();
00460 if (!$GLOBALS['BE_USER']->isAdmin()) $be_group_Array = t3lib_BEfunc::blindGroupNames($be_group_Array,$groupArray,0);
00461
00462
00463 $tLen= ($this->MOD_SETTINGS['mode']=='perms' ? 20 : 30);
00464
00465
00466
00467 $code.=$LANG->getLL('Depth').': ';
00468 $code.=t3lib_BEfunc::getFuncMenu($this->id,'SET[depth]',$this->MOD_SETTINGS['depth'],$this->MOD_MENU['depth']);
00469 $this->content.=$this->doc->section('',$code);
00470 $this->content.=$this->doc->spacer(5);
00471
00472
00473 $tree = t3lib_div::makeInstance('t3lib_pageTree');
00474 $tree->init('AND '.$this->perms_clause);
00475
00476 $tree->addField('perms_user',1);
00477 $tree->addField('perms_group',1);
00478 $tree->addField('perms_everybody',1);
00479 $tree->addField('perms_userid',1);
00480 $tree->addField('perms_groupid',1);
00481 $tree->addField('hidden');
00482 $tree->addField('fe_group');
00483 $tree->addField('starttime');
00484 $tree->addField('endtime');
00485 $tree->addField('editlock');
00486
00487
00488 $HTML=t3lib_iconWorks::getIconImage('pages',$this->pageinfo,$BACK_PATH,'align="top"');
00489 $tree->tree[]=Array('row'=>$this->pageinfo,'HTML'=>$HTML);
00490
00491
00492 $tree->getTree($this->id,$this->MOD_SETTINGS['depth'],'');
00493
00494
00495 $code='';
00496 if ($this->MOD_SETTINGS['mode']=='perms') {
00497 $code.='
00498 <tr>
00499 <td class="bgColor2" colspan="2"> </td>
00500 <td class="bgColor2"><img'.t3lib_iconWorks::skinImg($BACK_PATH,'gfx/line.gif','width="5" height="16"').' alt="" /></td>
00501 <td class="bgColor2" align="center"><b>'.$LANG->getLL('Owner',1).'</b></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('Group',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('Everybody',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('EditLock',1).'</b></td>
00508 </tr>
00509 ';
00510 } else {
00511 $code.='
00512 <tr>
00513 <td class="bgColor2" colspan="2"> </td>
00514 <td class="bgColor2"><img'.t3lib_iconWorks::skinImg($BACK_PATH,'gfx/line.gif','width="5" height="16"').' alt="" /></td>
00515 <td class="bgColor2" align="center" nowrap="nowrap"><b>'.$LANG->getLL('User',1).':</b> '.$BE_USER->user['username'].'</td>
00516 '.(!$BE_USER->isAdmin()?'<td class="bgColor2"><img'.t3lib_iconWorks::skinImg($BACK_PATH,'gfx/line.gif','width="5" height="16"').' alt="" /></td>
00517 <td class="bgColor2" align="center"><b>'.$LANG->getLL('EditLock',1).'</b></td>':'').'
00518 </tr>';
00519 }
00520
00521
00522 foreach($tree->tree as $data) {
00523 $cells = array();
00524
00525
00526 if ($this->lastEdited==$data['row']['uid']) {$bgCol = ' class="bgColor-20"';} else {$bgCol = '';}
00527 $lE_bgCol = $bgCol;
00528
00529
00530 $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>' : '');
00531 $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>' : '');
00532 $groupN = t3lib_div::fixed_lgd_cs($groupN,20);
00533
00534
00535 $editPermsAllowed=($data['row']['perms_userid']==$BE_USER->user['uid'] || $BE_USER->isAdmin());
00536
00537
00538 $cellAttrib = ($data['row']['_CSSCLASS'] ? ' class="'.$data['row']['_CSSCLASS'].'"' : '');
00539 $cells[]='
00540 <td align="left" nowrap="nowrap"'.($cellAttrib ? $cellAttrib : $bgCol).'>'.$data['HTML'].htmlspecialchars(t3lib_div::fixed_lgd($data['row']['title'],$tLen)).' </td>';
00541
00542
00543 if ($editPermsAllowed && $data['row']['uid']) {
00544 $aHref = 'index.php?mode='.$this->MOD_SETTINGS['mode'].'&depth='.$this->MOD_SETTINGS['depth'].'&id='.($data['row']['_ORIG_uid'] ? $data['row']['_ORIG_uid'] : $data['row']['uid']).'&return_id='.$this->id.'&edit=1';
00545 $cells[]='
00546 <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>';
00547 } else {
00548 $cells[]='
00549 <td'.$bgCol.'></td>';
00550 }
00551
00552
00553 if ($this->MOD_SETTINGS['mode']=='perms') {
00554 $cells[]='
00555 <td'.$bgCol.'><img'.t3lib_iconWorks::skinImg($BACK_PATH,'gfx/line.gif','width="5" height="16"').' alt="" /></td>
00556 <td'.$bgCol.' nowrap="nowrap">'.($data['row']['uid']?$this->printPerms($data['row']['perms_user']).' '.$userN:'').'</td>
00557
00558 <td'.$bgCol.'><img'.t3lib_iconWorks::skinImg($BACK_PATH,'gfx/line.gif','width="5" height="16"').' alt="" /></td>
00559 <td'.$bgCol.' nowrap="nowrap">'.($data['row']['uid']?$this->printPerms($data['row']['perms_group']).' '.$groupN:'').'</td>
00560
00561 <td'.$bgCol.'><img'.t3lib_iconWorks::skinImg($BACK_PATH,'gfx/line.gif','width="5" height="16"').' alt="" /></td>
00562 <td'.$bgCol.' nowrap="nowrap">'.($data['row']['uid']?' '.$this->printPerms($data['row']['perms_everybody']):'').'</td>
00563
00564 <td'.$bgCol.'><img'.t3lib_iconWorks::skinImg($BACK_PATH,'gfx/line.gif','width="5" height="16"').' alt="" /></td>
00565 <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>
00566 ';
00567 } else {
00568 $cells[]='
00569 <td'.$bgCol.'><img'.t3lib_iconWorks::skinImg($BACK_PATH,'gfx/line.gif','width="5" height="16"').' alt="" /></td>';
00570
00571 if ($BE_USER->user['uid']==$data['row']['perms_userid']) {$bgCol = ' class="bgColor-20"';} else {$bgCol = $lE_bgCol;}
00572
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->orig_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->orig_ids_hierarchy[$a])) {
00719 foreach($tree->orig_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 ?>