diff --git a/module/doc/css/createlib.css b/module/doc/css/createlib.css index e9a3a45c98..056a6984f3 100644 --- a/module/doc/css/createlib.css +++ b/module/doc/css/createlib.css @@ -3,3 +3,6 @@ form{margin-bottom:100px; padding-left:65px} table{width:90% !important} #whiteListBox div.input-group {margin-bottom: 2px;} + +#product_chosen{width: 50%!important} +#project_chosen{width: 50%!important} diff --git a/module/doc/js/common.js b/module/doc/js/common.js index e81305c241..58eee4826e 100644 --- a/module/doc/js/common.js +++ b/module/doc/js/common.js @@ -16,7 +16,7 @@ function toggleAcl(acl, type) } if(type == 'lib') { - var libType = $('input[name="type"]').val(); + var libType = $('input[name="type"]:checked').val(); var notice = typeof(noticeAcl[libType][acl]) != 'undefined' ? noticeAcl[libType][acl] : ''; $('#noticeAcl').html(notice); } diff --git a/module/doc/js/createlib.js b/module/doc/js/createlib.js index 2d000782e0..035e419372 100644 --- a/module/doc/js/createlib.js +++ b/module/doc/js/createlib.js @@ -6,7 +6,7 @@ $(function() changeByLibType(libType); }) changeByLibType($('input[name="type"]').val()); - toggleAcl($('[name=acl]').val(), 'lib'); + toggleAcl($('form [name=acl]:checked').val(), 'lib'); }); function changeByLibType(libType) @@ -15,19 +15,34 @@ function changeByLibType(libType) { $('table tr.product').removeClass('hidden'); $('table tr.project').addClass('hidden'); + changeDoclibAcl(libType); } else if(libType == 'project') { $('table tr.product').addClass('hidden'); $('table tr.project').removeClass('hidden'); + changeDoclibAcl(libType); } else { $('table tr.product').addClass('hidden'); $('table tr.project').addClass('hidden'); + changeDoclibAcl(libType); } - var acl = $('[name=acl]').val(); + var acl = $('form [name=acl]').val(); var notice = typeof(noticeAcl[libType][acl]) != 'undefined' ? noticeAcl[libType][acl] : ''; $('#noticeAcl').html(notice); } + +function changeDoclibAcl(libType) +{ + if(libType == 'product' || libType == 'project') + { + $('form input[name="acl"]').closest('td').find('span:first').html($('#aclBoxA td').html()); + } + else + { + $('form input[name="acl"]').closest('td').find('span:first').html($('#aclBoxB td').html()); + } +} diff --git a/module/doc/js/editlib.js b/module/doc/js/editlib.js index ee655f0aa9..94dc79004d 100644 --- a/module/doc/js/editlib.js +++ b/module/doc/js/editlib.js @@ -1,4 +1,4 @@ $(function() { - toggleAcl($('input[name="acl"]').val(), 'lib'); + toggleAcl($('form input[name="acl"]:checked').val(), 'lib'); }) diff --git a/module/doc/lang/zh-cn.php b/module/doc/lang/zh-cn.php index c326493948..fb8cefbd31 100644 --- a/module/doc/lang/zh-cn.php +++ b/module/doc/lang/zh-cn.php @@ -169,17 +169,15 @@ $lang->doc->noEditedDoc = '您还没有编辑任何文档。'; $lang->doc->noOpenedDoc = '您还没有创建任何文档。'; $lang->doc->noCollectedDoc = '您还没有收藏任何文档。'; -$lang->doc->noticeAcl['lib']['product']['open'] = '除了没有关联产品权限的用户,都可以访问。'; -$lang->doc->noticeAcl['lib']['product']['custom'] = '白名单和有关联产品权限的用户可以访问。'; -$lang->doc->noticeAcl['lib']['product']['private'] = '创建人和有关联产品权限的用户可以访问。'; -$lang->doc->noticeAcl['lib']['project']['open'] = '除了没有关联项目权限的用户,都可以访问。'; -$lang->doc->noticeAcl['lib']['project']['custom'] = '白名单和有关联项目权限的用户可以访问。'; -$lang->doc->noticeAcl['lib']['project']['private'] = '创建人和有关联项目权限的用户可以访问。'; +$lang->doc->noticeAcl['lib']['product']['default'] = '有所选产品访问权限的用户可以访问。'; +$lang->doc->noticeAcl['lib']['product']['custom'] = '有所选产品访问权限或白名单里的用户可以访问。'; +$lang->doc->noticeAcl['lib']['project']['default'] = '有所选项目访问权限的用户可以访问。'; +$lang->doc->noticeAcl['lib']['project']['custom'] = '有所选项目访问权限或白名单里的用户可以访问。'; $lang->doc->noticeAcl['lib']['custom']['open'] = '所有人都可以访问。'; $lang->doc->noticeAcl['lib']['custom']['custom'] = '白名单的用户可以访问。'; $lang->doc->noticeAcl['lib']['custom']['private'] = '只有创建人可以访问。'; -$lang->doc->noticeAcl['doc']['open'] = '除了没有所属文档库权限的用户,都可以访问。'; +$lang->doc->noticeAcl['doc']['open'] = '有文档所属文档库访问权限的,都可以访问。'; $lang->doc->noticeAcl['doc']['custom'] = '白名单的用户可以访问。'; $lang->doc->noticeAcl['doc']['private'] = '只有自己可以访问。'; @@ -197,6 +195,14 @@ $lang->doclib->select = '选择文档库'; $lang->doclib->project = $lang->projectCommon . '库'; $lang->doclib->product = $lang->productCommon . '库'; +$lang->doclib->aclListA['default'] = '默认'; +$lang->doclib->aclListA['custom'] = '自定义'; + +$lang->doclib->aclListB['open'] = '公开'; +$lang->doclib->aclListB['custom'] = '自定义'; +$lang->doclib->aclListB['private'] = '私有'; + + $lang->doclib->create['product'] = '创建' . $lang->productCommon . '文档库'; $lang->doclib->create['project'] = '创建' . $lang->projectCommon . '文档库'; $lang->doclib->create['custom'] = '创建自定义文档库'; diff --git a/module/doc/model.php b/module/doc/model.php index 76aef30730..c7b6359195 100644 --- a/module/doc/model.php +++ b/module/doc/model.php @@ -847,12 +847,6 @@ class docModel extends model { if($this->app->user->admin) return true; - $acls = $this->app->user->rights['acls']; - if(!empty($object->product) and !empty($acls['products']) and !in_array($object->product, $acls['products'])) return false; - if(!empty($object->project) and !empty($acls['projects']) and !in_array($object->project, $acls['projects'])) return false; - - if($object->acl == 'open') return true; - $account = ',' . $this->app->user->account . ','; if(isset($object->addedBy) and $object->addedBy == $this->app->user->account) return true; if(isset($object->users) and strpos(",{$object->users},", $account) !== false) return true; @@ -872,8 +866,17 @@ class docModel extends model if(isset($extraDocLibs[$object->id])) return true; } - if(!empty($object->project)) return $this->loadModel('project')->checkPriv($object->project); - if(!empty($object->product)) return $this->loadModel('product')->checkPriv($object->product); + if(!empty($object->product) or !empty($object->project)) + { + $acls = $this->app->user->rights['acls']; + if(!empty($object->product) and !empty($acls['products']) and !in_array($object->product, $acls['products'])) return false; + if(!empty($object->project) and !empty($acls['projects']) and !in_array($object->project, $acls['projects'])) return false; + if(!empty($object->project)) return $this->loadModel('project')->checkPriv($object->project); + if(!empty($object->product)) return $this->loadModel('product')->checkPriv($object->product); + } + + if($object->acl == 'open') return true; + return false; } diff --git a/module/doc/view/createlib.html.php b/module/doc/view/createlib.html.php index e5fc5ba61e..e53b15beec 100644 --- a/module/doc/view/createlib.html.php +++ b/module/doc/view/createlib.html.php @@ -23,33 +23,31 @@
| doc->libType?> | -+ | |||
|---|---|---|---|---|
| doc->product?> | - | |||
| doclib->name?> | - | |||
| doclib->control;?> | -- doc->aclList, 'open', "onchange='toggleAcl(this.value, \"lib\")'")?> - | ++ doc->aclList, 'open', "onchange='toggleAcl(this.value, \"lib\")'")?> + doc->noticeAcl['lib']['product']['default'];?> + | ||
| doc->whiteList;?> | -+ |
doclib->group?>
@@ -61,11 +59,7 @@
|
||
| - | doc->noticeAcl['lib']['product']['open'];?> | -|||
| + | ||||
| doclib->control;?> | ++ doclib->aclListA, 'default', "onchange='toggleAcl(this.value, \"lib\")'")?> + | +
|---|---|
| doclib->control;?> | ++ doclib->aclListB, 'open', "onchange='toggleAcl(this.value, \"lib\")'")?> + | +