* Add priv check.

This commit is contained in:
caoyanyi
2023-04-07 11:15:01 +08:00
parent 09339199c1
commit 4ee58be39e
+45 -24
View File
@@ -92,39 +92,54 @@ js::set('canViewFiles', common::hasPriv('doc', 'showfiles'));
<?php endif;?>
<!-- Code for dropdown menu. -->
<?php $canAddCatalog = common::hasPriv('doc', 'addCatalog');?>
<?php $canEditCatalog = common::hasPriv('doc', 'editCatalog');?>
<?php $canDeleteCatalog = common::hasPriv('doc', 'deleteCatalog');?>
<?php $hasModulePriv = $canAddCatalog || $canEditCatalog || $canDeleteCatalog;?>
<?php js::set('canAddCatalog', $canAddCatalog);?>
<?php js::set('canEditCatalog', $canEditCatalog);?>
<?php js::set('canDeleteCatalog', $canDeleteCatalog);?>
<?php js::set('hasModulePriv', $hasModulePriv);?>
<?php js::set('hasLibPriv', $canAddCatalog || common::hasPriv($app->rawModule, 'editLib') || common::hasPriv($app->rawModule, 'deleteLib'));?>
<?php
$canAddCatalog['doc'] = common::hasPriv('doc', 'addCatalog');
$canAddCatalog['api'] = common::hasPriv('api', 'addCatalog');
$canEditCatalog['doc'] = common::hasPriv('doc', 'editCatalog');
$canEditCatalog['api'] = common::hasPriv('api', 'editCatalog');
$canDeleteCatalog['doc'] = common::hasPriv('doc', 'deleteCatalog');
$canDeleteCatalog['api'] = common::hasPriv('api', 'deleteCatalog');
$hasModulePriv['doc'] = $canAddCatalog['doc'] || $canEditCatalog['doc'] || $canDeleteCatalog['doc'];
$hasModulePriv['api'] = $canAddCatalog['api'] || $canEditCatalog['api'] || $canDeleteCatalog['api'];
$hasLibPriv['doc'] = $canAddCatalog['doc'] || common::hasPriv('doc', 'editLib') || common::hasPriv('doc', 'deleteLib');
$hasLibPriv['api'] = $canAddCatalog['api'] || common::hasPriv('api', 'editLib') || common::hasPriv('api', 'deleteLib');
js::set('canAddCatalog', $canAddCatalog);
js::set('canEditCatalog', $canEditCatalog);
js::set('canDeleteCatalog', $canDeleteCatalog);
js::set('hasModulePriv', $hasModulePriv);
js::set('hasLibPriv', $hasLibPriv);
?>
<div class='hidden' id='dropDownData'>
<ul class='libDorpdown'>
<?php if($canAddCatalog):?>
<?php foreach(array('doc', 'api') as $module):?>
<ul class='<?php echo $module;?>LibDorpdown'>
<?php if($canAddCatalog[$module]):?>
<li data-method="addCataLib" data-has-children='%hasChildren%' data-libid='%libID%' data-moduleid="%moduleID%" data-type="add"><a><i class="icon icon-icon-add-directory"></i><?php echo $lang->doc->libDropdown['addModule'];?></a></li>
<?php endif;?>
<?php if(common::hasPriv($app->rawModule, 'editLib')):?>
<?php if(common::hasPriv($module, 'editLib')):?>
<li data-method="editLib"><a href='<?php echo inlink('editLib', 'libID=%libID%');?>' data-toggle='modal' data-type='iframe'><i class="icon icon-edit"></i><?php echo $lang->doc->libDropdown['editLib'];?></a></li>
<?php endif;?>
<?php if(common::hasPriv($app->rawModule, 'deleteLib')):?>
<?php if(common::hasPriv($module, 'deleteLib')):?>
<li data-method="deleteLib"><a href='<?php echo inlink('deleteLib', 'libID=%libID%');?>' target='hiddenwin'><i class="icon icon-trash"></i><?php echo $lang->doc->libDropdown['deleteLib'];?></a></li>
<?php endif;?>
</ul>
<ul class='moduleDorpdown'>
<?php if($canAddCatalog):?>
<ul class='<?php echo $module;?>ModuleDorpdown'>
<?php if($canAddCatalog[$module]):?>
<li data-method="addCataBro" data-type="add" data-id="%moduleID%"><a><i class="icon icon-icon-add-directory"></i><?php echo $lang->doc->libDropdown['addSameModule'];?></a></li>
<li data-method="addCataChild" data-type="add" data-id="%moduleID%" data-has-children='%hasChildren%'><a><i class="icon icon-icon-add-directory"></i><?php echo $lang->doc->libDropdown['addSubModule'];?></a></li>
<?php endif;?>
<?php if($canEditCatalog):?>
<li data-method="editCata" class='edit-module'><a data-href='<?php echo helper::createLink('doc', 'editCatalog', "moduleID=%moduleID%&type=$app->rawModule");?>'><i class="icon icon-edit"></i><?php echo $lang->doc->libDropdown['editModule'];?></a></li>
<?php if($canEditCatalog[$module]):?>
<li data-method="editCata" class='edit-module'><a data-href='<?php echo helper::createLink($module, 'editCatalog', "moduleID=%moduleID%&type=$app->rawModule");?>'><i class="icon icon-edit"></i><?php echo $lang->doc->libDropdown['editModule'];?></a></li>
<?php endif;?>
<?php if($canDeleteCatalog):?>
<li data-method="deleteCata"><a href='<?php echo helper::createLink('doc', 'deleteCatalog', 'rootID=%libID%&moduleID=%moduleID%');?>' target='hiddenwin'><i class="icon icon-trash"></i><?php echo $lang->doc->libDropdown['delModule'];?></a></li>
<?php if($canDeleteCatalog[$module]):?>
<li data-method="deleteCata"><a href='<?php echo helper::createLink($module, 'deleteCatalog', 'rootID=%libID%&moduleID=%moduleID%');?>' target='hiddenwin'><i class="icon icon-trash"></i><?php echo $lang->doc->libDropdown['delModule'];?></a></li>
<?php endif;?>
</ul>
<?php endforeach;?>
</div>
<div class='hidden' data-id="ulTreeModal">
<ul data-id="liTreeModal" class="menu-active-primary menu-hover-primary has-input">
@@ -160,9 +175,11 @@ $(function()
*/
function renderDropdown(option)
{
var libClass = '.libDorpdown';
if(option.type != 'dropDownLibrary') libClass = '.moduleDorpdown';
var moduleType = option.moduleType == 'lib' ? 'doc' : option.moduleType;
var libClass = '.' + moduleType + 'LibDorpdown';
if(option.type != 'dropDownLibrary') libClass = '.' + moduleType + 'ModuleDorpdown';
if($(libClass).find('li').length == 0) return '';
var dropdown = '<ul class="dropdown-menu dropdown-in-tree" id="' + option.type + '" style="display: unset; left:' + option.left + 'px; top:' + option.top + 'px;">';
dropdown += $(libClass).html().replace(/%libID%/g, option.libID).replace(/%moduleID%/g, option.moduleID).replace(/%hasChildren%/g, option.hasChildren);
dropdown += '</ul>';
@@ -255,7 +272,10 @@ $(function()
}
$item += '<div class="tree-version-trigger" data-id="' + item.id + '"><div class="text">' + (versionName || versionLang) + '</div><div class="caret"></div></div>';
}
if((libClass != 'lib' && hasModulePriv) || (libClass == 'lib' && hasLibPriv)) $item += '<i class="icon icon-drop icon-ellipsis-v hidden tree-icon" data-isCatalogue="' + (libClass ? false : true) + '"></i>';
var moduleType = config.currentModule == 'api' ? 'api' : 'doc';
if(objectType) objectType.indexOf('api') === 0 ? 'api' : 'doc';
if((libClass != 'lib' && hasModulePriv[moduleType]) || (libClass == 'lib' && hasLibPriv[moduleType])) $item += '<i class="icon icon-drop icon-ellipsis-v hidden tree-icon" data-isCatalogue="' + (libClass ? false : true) + '"></i>';
$item += '</div>';
$item += '</a>';
if(item.versions) versionsData[item.id] = item.versions;
@@ -329,8 +349,9 @@ $(function()
if($(this).data('type') == 'annex') return;
if(!$(this).data('action')) return;
var libClass = '.libDorpdown';
if(!$(this).hasClass('lib')) libClass = '.moduleDorpdown';
var moduleType = $(this).data('type') == 'api' ? 'api' : 'doc';
var libClass = '.' + moduleType + 'LibDorpdown';
if(!$(this).hasClass('lib')) libClass = '.' + moduleType + 'ModuleDorpdown';
$(this).find('.icon').removeClass('hidden');
$(this).addClass('show-icon');