* [bug#64599] Add doc user groups for edit doc.
This commit is contained in:
@@ -696,8 +696,14 @@ function handleSaveDoc(doc)
|
||||
}).complete(() => {
|
||||
docApp.isSavingDoc = false;
|
||||
$(docApp.element).find('[zui-command^="saveDoc"],[zui-command^="saveNewDoc"]').removeAttr('disabled');
|
||||
const {id, acl, users, addedBy} = doc;
|
||||
if(acl == 'private' && !users.includes(docAppData.currentUser) && addedBy !== docAppData.currentUser)
|
||||
const {id, acl, users, groups, addedBy} = doc;
|
||||
let isInEditGroups = false;
|
||||
for(let groupID of Object.values(userGroups))
|
||||
{
|
||||
if(groups.includes(groupID)) isInEditGroups = true;
|
||||
}
|
||||
|
||||
if(acl == 'private' && !users.includes(docAppData.currentUser) && addedBy !== docAppData.currentUser && !isInEditGroups)
|
||||
{
|
||||
if(docApp.hasEditingDoc)
|
||||
{
|
||||
|
||||
@@ -171,6 +171,7 @@ class docApp extends wg
|
||||
jsVar('needReadable', $lang->doc->needReadable);
|
||||
jsVar('vision', $config->vision);
|
||||
jsVar('isInModal', isInModal());
|
||||
jsVar('userGroups', $app->user->groups);
|
||||
|
||||
/**
|
||||
* 定义文档应用接口链接。
|
||||
|
||||
@@ -965,8 +965,16 @@ class doc extends control
|
||||
$currentAccount = $this->app->user->account;
|
||||
$isAuthorOrAdmin = $doc->acl == 'private' && ($doc->addedBy == $currentAccount || $this->app->user->admin);
|
||||
$isInEditUsers = strpos(",$doc->users,", ",$currentAccount,") !== false;
|
||||
$isInEditGroups = false;
|
||||
if(!empty($doc->groups))
|
||||
{
|
||||
foreach($this->app->user->groups as $groupID)
|
||||
{
|
||||
if(strpos(",$doc->groups,", ",$groupID,") !== false) $isInEditGroups = true;
|
||||
}
|
||||
}
|
||||
|
||||
if(!$isOpen && !$isAuthorOrAdmin && !$isInEditUsers) return $this->send(array('result' => 'fail', 'message' => $this->lang->doc->needEditable));
|
||||
if(!$isOpen && !$isAuthorOrAdmin && !$isInEditUsers && !$isInEditGroups) return $this->send(array('result' => 'fail', 'message' => $this->lang->doc->needEditable));
|
||||
|
||||
if($doc->type == 'chapter') $this->lang->doc->title = $this->lang->doc->chapterName;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user