Файл: IPBMafia.ru_IPB_3.4.6_Final_Rus _Nulled/board/upload/admin/applications/members/skin_cp/cp_skin_permissions.php
Строк: 428
<?php
/**
* <pre>
* Invision Power Services
* IP.Board v3.4.6
* ACP permissions skin file
* Last Updated: $Date: 2012-06-29 10:12:14 -0400 (Fri, 29 Jun 2012) $
* </pre>
*
* @author $Author: bfarber $
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
* @license http://www.invisionpower.com/company/standards.php#license
* @package IP.Board
* @subpackage Members
* @link http://www.invisionpower.com
* @since 20th February 2002
* @version $Rev: 11007 $
*
*/
class cp_skin_permissions
{
/**
* Registry Object Shortcuts
*
* @var $registry
* @var $DB
* @var $settings
* @var $request
* @var $lang
* @var $member
* @var $memberData
* @var $cache
* @var $caches
*/
protected $registry;
protected $DB;
protected $settings;
protected $request;
protected $lang;
protected $member;
protected $memberData;
protected $cache;
protected $caches;
/**
* Constructor
*
* @param object $registry Registry object
* @return @e void
*/
public function __construct( ipsRegistry $registry )
{
$this->registry = $registry;
$this->DB = $this->registry->DB();
$this->settings =& $this->registry->fetchSettings();
$this->request =& $this->registry->fetchRequest();
$this->member = $this->registry->member();
$this->memberData =& $this->registry->member()->fetchMemberData();
$this->cache = $this->registry->cache();
$this->caches =& $this->registry->cache()->fetchCaches();
$this->lang = $this->registry->class_localization;
}
/**
* Confirmation page that perm set was removed
*
* @param string Name
* @return string HTML
*/
public function permissionSetRemoveDone( $name ) {
$IPBHTML = "";
//--starthtml--//
$IPBHTML .= <<<HTML
<div class='acp-box'>
<h3>{$this->lang->words['per_result']}</h3>
<table class='ipsTable'>
<tr>
<td valign='middle'>{$this->lang->words['per_removecustom']}<b>{$name}</b>.</td>
</tr>
</table>
</div>
HTML;
//--endhtml--//
return $IPBHTML;
}
/**
* Show users assigned to the perm mask
*
* @param integer Perm mask id
* @param string Permission set name
* @param array Users with this mask
* @return string HTML
*/
public function permissionSetUsers( $perm_id, $set, $rows ) {
$IPBHTML = "";
//--starthtml--//
$IPBHTML .= <<<HTML
<div class='acp-box'>
<h3>{$this->lang->words['per_membersusing']}{$set}</h3>
<table class='ipsTable'>
<tr>
<th width='50%'>{$this->lang->words['per_userdetail']}</th>
<th width='50%'>{$this->lang->words['per_action']}</th>
</tr>
HTML;
foreach( $rows as $r )
{
$also_using = '';
if ( $r['_extra'] )
{
$also_using = "<br />n• {$this->lang->words['per_alsousing']}{$r['_extra']}n";
}
$IPBHTML .= <<<HTML
<tr>
<td width='50%' style='vertical-align: top;'>
<div style='font-weight:bold;font-size:11px;padding-bottom:6px;margin-bottom:3px;border-bottom:1px solid #000'>{$r['members_display_name']}</div>
• {$this->lang->words['per_posts']}{$r['posts']}<br />
• {$this->lang->words['per_email']}{$r['email']}
{$also_using}
</td>
<td width='50%' style='vertical-align: top;'>
• <a href='{$this->settings['base_url']}{$this->form_code}do=remove_mask&id={$r['member_id']}&pid={$perm_id}' title='{$this->lang->words['per_removethis']}'>{$this->lang->words['per_removethisset']}</a><br />
• <a href='{$this->settings['base_url']}{$this->form_code}do=remove_mask&id={$r['member_id']}&pid=all' title='{$this->lang->words['per_removeall']}'>{$this->lang->words['per_removeall']}</a>
</td>
</tr>
HTML;
}
$IPBHTML .= <<<HTML
</table>
</div>
HTML;
//--endhtml--//
return $IPBHTML;
}
/**
* Permissions matrix
*
* @param array Permission names
* @param array Compiled grids
* @param array Permissions checked
* @param array Colors
* @param string Type
* @param boolean $addOutsideBox Add or not the outside acp-box
* @return string HTML
*/
public function permissionMatrix( $perm_names, $perm_matrix, $perm_checked, $colors, $type, $addOutsideBox=true )
{
$IPBHTML = "";
//--starthtml--//
$cols = count( $perm_names ) + 1;
$width = ceil( 83 / count( $perm_names ) );
$IPBHTML .= $addOutsideBox ? "<div class='acp-box'>" : '';
$IPBHTML .= <<<HTML
<!--<h3>{$this->lang->words['frm_enterthematrix']}</h3>-->
<script type='text/javascript' src='{$this->settings['js_main_url']}acp.permissions2.js'></script>
<table class='ipsTable permission_table' id='perm_matrix'>
<tr>
<th style='width: 13%'> </th>
HTML;
foreach( $perm_names as $k => $v )
{
$IPBHTML .= <<<HTML
<th style='width: {$width}%; text-align: center;'>{$v}</td>
HTML;
}
$IPBHTML .= <<<HTML
</tr>
<tr>
<td class='section' colspan='{$cols}'>{$this->lang->words['frm_global']}</td>
</tr>
<tr>
<td class='off'> </td>
HTML;
$col_num = 0;
foreach( $perm_names as $k => $v )
{
$col_num++;
$IPBHTML .= <<<HTML
<!-- Check an entire column -->
<td style='background-color:{$colors[$k]}' class='perm column' id='column_{$col_num}'>
{$v}<br />
<input type='checkbox' name='perms[{$type}{$k}][*]' id='col_{$col_num}' value='1'{$perm_checked['*'][$k]}>
</td>
HTML;
}
$IPBHTML .= <<<HTML
</tr>
HTML;
$row_num = 0;
foreach( $perm_matrix as $set => $row )
{
$set = explode( '%', $set );
$row_num++;
$col_num = 0;
$IPBHTML .= <<<HTML
<tr>
<td class='section' colspan='{$cols}'><strong>{$set[1]}</strong></td>
</tr>
<tr id='forum{$type}_row_{$row_num}'>
<td class='off'>
<input type='button' id='forum_select_row_1_{$row_num}' value='+' class='select_row' />
<input type='button' id='forum_select_row_0_{$row_num}' value='–' class='select_row' />
</td>
HTML;
foreach( $row as $key => $perm )
{
$col_num++;
$IPBHTML .= <<<HTML
<td class='perm' id='clickable_{$col_num}' style='background-color:{$colors[$key]}'>
{$perm}<br />
<input type='checkbox' name='perms[{$type}{$key}][{$set[0]}]' id='perm_{$row_num}_{$col_num}' value='1'{$perm_checked[$set[0]][$key]}>
</td>
HTML;
}
$IPBHTML .= <<<HTML
</tr>
HTML;
}
$IPBHTML .= <<<HTML
</table>
<script type='text/javascript'>
var permissions = new acp.permissions( { 'form': 'adminform', 'table': 'perm_matrix', 'app': 'forum', 'typekey': '{$type}' } );
var noShowAlert = false;
</script>
HTML;
$IPBHTML .= $addOutsideBox ? '</div>' : '';
//--endhtml--//
return $IPBHTML;
}
/**
* Permission set matrix
*
* @param array Perm names
* @param array Perm grids
* @param array Boxes to check
* @param array Colors
* @param string Application
* @param string Type
* @return string HTML
*/
public function permissionSetMatrix( $perm_names, $perm_matrix, $perm_checked, $colors, $app, $type )
{
$IPBHTML = "";
//--starthtml--//
if( !is_array( $perm_matrix ) || !count( $perm_matrix ) ){ return ''; }
$IPBHTML .= <<<HTML
<table class='permission_table' id='perm_matrix_{$app}{$type}' style='width: 100%'>
HTML;
if( is_array( $perm_names ) && count( $perm_names ) )
{
$col_num = 0;
$col_width = floor( 87 / count( $perm_names ) );
$IPBHTML .= <<<HTML
<tr>
<td style='padding: 0px;'>
<table width='100%'>
<tr>
<td style='width: 13%'> </td>
HTML;
foreach( $perm_names as $key => $text )
{
$col_num++;
$IPBHTML .= <<<HTML
<td class='perm' style='background-color: {$colors[$key]}; width: {$col_width}%'>
<input type='button' id='{$app}{$type}_select_col_1_{$col_num}' value='+' class='select_col' />
<input type='button' id='{$app}{$type}_select_col_0_{$col_num}' value='–' class='select_col' />
</td>
HTML;
}
$IPBHTML .= <<<HTML
</tr>
</table>
</td>
</tr>
HTML;
}
$row_num = 0;
foreach( $perm_matrix as $set => $row )
{
$set = explode( '%', $set );
$row_num++;
if( !empty($row['_noconfig']) )
{
$IPBHTML .= <<<HTML
<tr>
<td class='section'><strong>{$set[1]}</strong></td>
</tr>
<tr>
<td class='no_messages ipsForm_center'>{$row['_noconfig']}</td>
<tr>
HTML;
}
else
{
$IPBHTML .= <<<HTML
<tr>
<td class='section'><strong>{$set[1]}</strong></td>
</tr>
<tr>
<td style='padding: 0px;'>
<table width='100%'>
<tr id='{$app}{$type}_row_{$row_num}'>
<td class='off' style='width: 13%; text-align: right;'>
<input type='button' id='{$app}{$type}_select_row_1_{$row_num}' value='+' class='select_row' />
<input type='button' id='{$app}{$type}_select_row_0_{$row_num}' value='–' class='select_row' />
</td>
HTML;
$col_num = 0;
//$col_width = floor( 87 / count( $row ) );
foreach( $perm_names as $key => $perm )
{
$col_num++;
if( isset( $row[ $key ] ) )
{
$IPBHTML .= <<<HTML
<td class='perm' style='background-color:{$colors[$key]}; width: {$col_width}%'>
{$perm}<br />
<input type='checkbox' id='{$app}{$type}_{$col_num}_{$row_num}' name='perms[{$app}][{$type}][{$key}][{$set[0]}]' value='1'{$perm_checked[$set[0]][$key]}>
</td>
HTML;
}
else
{
$IPBHTML .= <<<HTML
<td class='perm' style='background-color:{$colors[$key]}; width: {$col_width}%'>
<em class='desctext'>{$this->lang->words['per_notused']}</em>
</td>
HTML;
}
}
$IPBHTML .= <<<HTML
</tr>
</table>
</td>
</tr>
HTML;
}
}
$IPBHTML .= <<<HTML
</table>
<script type='text/javascript'>
perms["{$app}{$type}"] = new acp.permissions( { 'form': 'adminform', 'table': 'perm_matrix_{$app}{$type}', 'app': '{$app}', 'typekey': '{$type}' } );
</script>
HTML;
//--endhtml--//
return $IPBHTML;
}
/**
* Show dialog to advise user to apply group restrictions
*
* @return string HTML
*/
public function groupAdminConfirm( $group_id ) {
$IPBHTML = "";
//--starthtml--//
$IPBHTML .= <<<HTML
<div class='acp-box'>
<h3>{$this->lang->words['sm_configrest']}</h3>
<table class='ipsTable double_pad'>
<tr>
<td>
<strong class='title'>{$this->lang->words['sm_detectacp']}</strong>
<br /><br />
{$this->lang->words['sm_setrestrict']}
</td>
</tr>
</table>
<div class='acp-actionbar'>
<a class='button' href='{$this->settings['base_url']}&{$this->form_code}'>{$this->lang->words['sm_nothanks']}</a>
<a class='button' href='{$this->settings['base_url']}&module=restrictions&section=restrictions&do=acpperms-group-add-complete&entered_group={$group_id}'>{$this->lang->words['sm_yesplease']}</a>
</div>
</div>
<br />
HTML;
//--endhtml--//
return $IPBHTML;
}
/**
* Edit permissions mask
*
* @param string Set name
* @param array Perm grids
* @param integer Id
* @param array Applications
* @return string HTML
*/
public function permissionEditor( $set_name, $perm_matricies, $id, $apps ) {
$IPBHTML = "";
//--starthtml--//
$i = 1;
$IPBHTML .= <<<HTML
<!--<script type="text/javascript">
//<![CDATA[
document.observe("dom:loaded",function()
{
ipbAcpTabStrips.register('tab_perms');
});
//]]>
</script>-->
<div class='section_title'>
<h2>{$set_name}</h2>
</div>
<script type='text/javascript' src='{$this->settings['js_main_url']}acp.permissions2.js'></script>
<script type='text/javascript'>
var perms = {};
</script>
<form action='{$this->settings['base_url']}{$this->form_code}do=do_edit_set&id={$this->request['id']}' method='post' id='adminform'>
<input type='hidden' name='_from' value='{$this->request['_from']}' />
<div class='acp-box'>
<table class='ipsTable double_pad'>
<tr>
<td class='field_title'><strong class='title'>{$this->lang->words['per_setname']}</strong></td>
<td class='field_field'><input type='text' class='input_text' size='30' name='perm_name' value='{$set_name}' /></td>
</tr>
</table>
</div>
<br />
HTML;
foreach( $apps as $app => $types )
{
foreach( $types as $type )
{
$IPBHTML .= <<<HTML
<input type='hidden' name='apps[{$app}][{$type}]' value='1' />
HTML;
}
}
$IPBHTML .= <<<HTML
<div class='acp-box'>
<h3>{$this->lang->words['per_editset']}</h3>
<input type='hidden' name='_admin_auth_key' value='{$this->registry->adminFunctions->getSecurityKey()}' />
<div id='tab_perms' class='ipsTabBar with_left with_right'>
<span class='tab_left'>«</span>
<span class='tab_right'>»</span>
<ul>
HTML;
foreach( $perm_matricies as $type => $matrix )
{
if( !$matrix ){ continue; }
$IPBHTML .= " <li id='tab_members" . $i ."'>" . $type . "</li>";
$i++;
}
$IPBHTML .= <<<HTML
</ul>
</div>
<div id='tab_perms_content'>
HTML;
$i = 1;
foreach( $perm_matricies as $type => $matrix )
{
if( !$matrix ){ continue; }
$IPBHTML .= <<<HTML
<div id='tab_members{$i}_content' class='ipsTabBar_content'>
{$matrix}
</div>
HTML;
$i++;
}
$IPBHTML .= <<<HTML
</div>
<div class='acp-actionbar'><input type='submit' value='{$this->lang->words['frm_savechanges']}' class='realbutton' /></div>
</div>
<br style='clear: both' />
</form>
<br />
<script type='text/javascript'>
jQ("#tab_perms").ipsTabBar({ tabWrap: "#tab_perms_content" });
</script>
HTML;
//--endhtml--//
return $IPBHTML;
}
/**
* Mask splash page
*
* @param array Masks
* @param string Dropdown lsit
* @return string HTML
*/
public function permissionsSplash( $rows, $dlist ) {
$IPBHTML = "";
//--starthtml--//
$IPBHTML .= <<<HTML
<div class='section_title'>
<h2>{$this->lang->words['per_title']}</h2>
</div>
<div class='acp-box'>
<h3>{$this->lang->words['per_setname']}</h3>
<table class='ipsTable'>
<tr>
<th width='20%'>{$this->lang->words['per_name']}</th>
<th width='15%'>{$this->lang->words['per_usedgroups']}</th>
<th width='20%'>{$this->lang->words['per_usedmembers']}</th>
<th width='1%'> </th>
</tr>
HTML;
/* ROW */
foreach( $rows as $r )
{
$IPBHTML .= <<<HTML
<tr class='ipsControlRow'>
<td><strong>{$r['name']}</strong></td>
<td>{$r['groups']}</td>
<td>
HTML;
if ( $r['mems'] > 0 )
{
$IPBHTML .= <<<HTML
{$r['mems']} (<a href='#' onclick='return acp.openWindow("{$this->settings['base_url']}{$this->form_code_js}do=view_perm_users&id={$r['id']}", "{$this->lang->words['per_user']}", "500","350");' title='{$this->lang->words['per_viewnames']}'>{$this->lang->words['per_view']}</a>)
HTML;
}
else
{
$IPBHTML .= <<<HTML
{$this->lang->words['per_nomember']}
HTML;
}
$IPBHTML .= <<<HTML
</td>
<td class='col_buttons'>
<ul class='ipsControlStrip'>
<li class='i_edit'><a href='{$this->settings['base_url']}{$this->form_code}do=edit_set_form&id={$r['id']}' title='{$this->lang->words['per_editset']}'>{$this->lang->words['per_editset']}</a></li>
HTML;
if ( ! $r['isactive'] )
{
$IPBHTML .= <<<HTML
<li class='i_delete'><a href='#' onclick='return acp.confirmDelete("{$this->settings['base_url']}&{$this->form_code}&do=delete_set&id={$r['id']}");' title='{$this->lang->words['per_deleteset']}'>{$this->lang->words['per_deleteset']}</a></li>
HTML;
}
else
{
$IPBHTML .= <<<HTML
<li class='i_delete disabled'><a href='#' onclick='return false;' title='{$this->lang->words['per_inuse']}'>{$this->lang->words['per_inuse']}</a></li>
HTML;
}
$IPBHTML .= <<<HTML
</ul>
</td>
</tr>
HTML;
}
/* / ROW */
$IPBHTML .= <<<HTML
</table>
</div>
<br />
<form action='{$this->settings['base_url']}{$this->form_code}' method='post'>
<input type='hidden' name='do' value='do_create_set' />
<input type='hidden' name='_admin_auth_key' value='{$this->registry->adminFunctions->_admin_auth_key}' />
<div class='acp-box'>
<h3>{$this->lang->words['per_createnew']}</h3>
<table class='ipsTable double_pad'>
<tr>
<td class='field_title'><strong class='title'>{$this->lang->words['per_setname']}</strong></td>
<td class='field_field'><input type='text' class='input' size='30' name='new_perm_name' /></td>
</tr>
<tr>
<td class='field_title'><strong class='title'>{$this->lang->words['per_baseon']}</strong></td>
<td class='field_field'><select name='new_perm_copy' class='dropdown'>{$dlist}</select></td>
</tr>
</table>
<div class='acp-actionbar'>
<input type='submit' value='{$this->lang->words['per_createbutton']}' class='button primary' />
</div>
</div>
</form>
HTML;
//--endhtml--//
return $IPBHTML;
}
}