* Fix bug #23870#23868.

This commit is contained in:
mayue
2022-06-17 14:12:47 +08:00
parent dc8e372a00
commit 49db5d2b2e
5 changed files with 116 additions and 59 deletions
+9 -6
View File
@@ -362,6 +362,7 @@ class doc extends control
$this->view->objectType = $objectType;
$this->view->objectID = $objectID;
$this->view->libID = $libID;
$this->view->lib = $lib;
$this->view->libs = $libs;
$this->view->gobackLink = $gobackLink;
$this->view->libName = $this->dao->findByID($libID)->from(TABLE_DOCLIB)->fetch('name');
@@ -832,19 +833,21 @@ class doc extends control
* @param int $doclibID
* @param string $acl open|custom|private
* @param string $control user|group
* @param int $docID
* @access public
* @return string
*/
public function ajaxGetWhitelist($doclibID, $acl = '', $control = '')
public function ajaxGetWhitelist($doclibID, $acl = '', $control = '', $docID = 0)
{
$doclib = $this->doc->getLibById($doclibID);
$users = $this->user->getPairs('noletter|noempty|noclosed');
$selectedUser = $doclib->users;
$doclib = $this->doc->getLibById($doclibID);
$doc = $this->doc->getById($docID);
$users = $this->user->getPairs('noletter|noempty|noclosed');
$selectedUser = $docID ? $doc->users : $doclib->users;
$selectedGroup = $docID ? $doc->groups : $doclib->groups;
if($control == 'group')
{
$groups = $this->loadModel('group')->getPairs();
$selectedGroup = $doclib->groups;
$groups = $this->loadModel('group')->getPairs();
if($doclib->acl == 'custom')
{
foreach($groups as $groupID => $group)
-52
View File
@@ -89,58 +89,6 @@ function loadDocModule(libID)
loadWhitelist(libID);
}
/**
* Load whitelist by libID.
*
* @param int $libID
* @access public
* @return void
*/
function loadWhitelist(libID)
{
var groupLink = createLink('doc', 'ajaxGetWhitelist', 'libID=' + libID + '&acl=&control=group');
var userLink = createLink('doc', 'ajaxGetWhitelist', 'libID=' + libID + '&acl=&control=user');
$.post(groupLink, function(groups)
{
if(!(groups == 'default' || groups == 'private'))
{
$('#groups').replaceWith(groups);
$('#groups_chosen').remove();
$('#groups').chosen();
}
});
$.post(userLink, function(users)
{
if(users != 'default')
{
if(users == 'private')
{
$('#aclopen').parent('.radio-inline').addClass('hidden');
$('#aclcustom').parent('.radio-inline').addClass('hidden');
$('#aclprivate').prop('checked', true);
}
else
{
$('#aclopen').parent('.radio-inline').removeClass('hidden');
$('#aclcustom').parent('.radio-inline').removeClass('hidden');
$('#users').replaceWith(users);
$('#users_chosen').remove();
$('#whiteListBox .picker').remove();
if($('#users option').length < maxCount)
{
$('#users').chosen();
}
else
{
$('#users').picker();
}
}
}
});
}
/**
* Set cookie of browse type and reload.
*
+53
View File
@@ -101,3 +101,56 @@ function initPage(type)
$('#urlBox').hide();
}
}
/**
* Load whitelist by libID.
*
* @param int $libID
* @access public
* @return void
*/
function loadWhitelist(libID)
{
var groupLink = createLink('doc', 'ajaxGetWhitelist', 'libID=' + libID + '&acl=&control=group');
var userLink = createLink('doc', 'ajaxGetWhitelist', 'libID=' + libID + '&acl=&control=user');
$.post(groupLink, function(groups)
{
if(!(groups == 'default' || groups == 'private'))
{
$('#groups').replaceWith(groups);
$('#groups_chosen').remove();
$('#groups').chosen();
}
});
$.post(userLink, function(users)
{
if(users != 'default')
{
if(users == 'private')
{
$('#aclopen').parent('.radio-inline').addClass('hidden');
$('#aclcustom').parent('.radio-inline').addClass('hidden');
$('#whiteListBox').addClass('hidden');
$('#aclprivate').prop('checked', true);
}
else
{
$('#aclopen').parent('.radio-inline').removeClass('hidden');
$('#aclcustom').parent('.radio-inline').removeClass('hidden');
$('#users').replaceWith(users);
$('#users_chosen').remove();
$('#whiteListBox .picker').remove();
if($('#users option').length < maxCount)
{
$('#users').chosen();
}
else
{
$('#users').picker();
}
}
}
});
}
+53
View File
@@ -125,3 +125,56 @@ function saveDraft()
var link = createLink('doc', 'ajaxSaveDraft', 'docID=' + docID);
$.post(link, {content: content});
}
/**
* Load whitelist by libID.
*
* @param int $libID
* @access public
* @return void
*/
function loadWhitelist(libID)
{
var groupLink = createLink('doc', 'ajaxGetWhitelist', 'libID=' + libID + '&acl=&control=group' + '&docID=' + docID);
var userLink = createLink('doc', 'ajaxGetWhitelist', 'libID=' + libID + '&acl=&control=user' + '&docID=' + docID);
$.post(groupLink, function(groups)
{
if(!(groups == 'default' || groups == 'private'))
{
$('#groups').replaceWith(groups);
$('#groups_chosen').remove();
$('#groups').chosen();
}
});
$.post(userLink, function(users)
{
if(users != 'default')
{
if(users == 'private')
{
$('#aclopen').parent('.radio-inline').addClass('hidden');
$('#aclcustom').parent('.radio-inline').addClass('hidden');
$('#whiteListBox').addClass('hidden');
$('#aclprivate').prop('checked', true);
}
else
{
$('#aclopen').parent('.radio-inline').removeClass('hidden');
$('#aclcustom').parent('.radio-inline').removeClass('hidden');
$('#users').replaceWith(users);
$('#users_chosen').remove();
$('#whiteListBox .picker').remove();
if($('#users option').length < maxCount)
{
$('#users').chosen();
}
else
{
$('#users').picker();
}
}
}
});
}
+1 -1
View File
@@ -108,7 +108,7 @@ $("a[href^='###']").click(function()
<tr>
<th><?php echo $lang->doclib->control;?></th>
<td colspan='2'>
<?php echo html::radio('acl', $lang->doc->aclList, 'open', "onchange='toggleAcl(this.value, \"doc\")'");?>
<?php echo html::radio('acl', $lang->doc->aclList, $lib->acl, "onchange='toggleAcl(this.value, \"doc\")'");?>
<span class='text-info' id='noticeAcl'><?php echo $lang->doc->noticeAcl['doc']['open'];?></span>
</td>
</tr>