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->noticeAcl['lib']['product']['open'];?>
@@ -73,5 +67,21 @@ + doc->noticeAcl['lib']);?> diff --git a/module/doc/view/editlib.html.php b/module/doc/view/editlib.html.php index ba55992f6e..e0b2c0d3ce 100644 --- a/module/doc/view/editlib.html.php +++ b/module/doc/view/editlib.html.php @@ -45,10 +45,17 @@ doclib->control;?> + type == 'product' or $lib->type == 'project'):?> - doc->aclList, $lib->acl, "onchange='toggleAcl(this.value, \"lib\")'")?> + doclib->aclListA, $lib->acl, "onchange='toggleAcl(this.value, \"lib\")'")?> doc->noticeAcl['lib'][$lib->type][$lib->acl];?> + + + doclib->aclListB, $lib->acl, "onchange='toggleAcl(this.value, \"lib\")'")?> + doc->noticeAcl['lib'][$lib->type][$lib->acl];?> + + doc->whiteList?> diff --git a/module/testsuite/js/createcase.js b/module/testsuite/js/createcase.js index c059132304..af418f5064 100644 --- a/module/testsuite/js/createcase.js +++ b/module/testsuite/js/createcase.js @@ -162,4 +162,12 @@ $(function() { $('[data-toggle=tooltip]').tooltip(); initSteps(); + + $('#pri').on('change', function() + { + var $select = $(this); + var $selector = $select.closest('.pri-selector'); + var value = $select.val(); + $selector.find('.pri-text').html('' + value + ''); + }); }) diff --git a/module/upgrade/model.php b/module/upgrade/model.php index 4ee452cee2..b533dac6e6 100644 --- a/module/upgrade/model.php +++ b/module/upgrade/model.php @@ -363,6 +363,10 @@ class upgradeModel extends model $this->dao->update(TABLE_CONFIG)->set('value')->eq('off')->where('`key`')->eq('isHttps')->andWhere('`section`')->eq('xuanxuan')->andWhere('`value`')->eq('0')->exec(); $this->dao->update(TABLE_CONFIG)->set('value')->eq('on')->where('`key`')->eq('isHttps')->andWhere('`section`')->eq('xuanxuan')->andWhere('`value`')->eq('1')->exec(); } + case '11_2': + $this->saveLogs('Execute 11_2'); + $this->execSQL($this->getUpgradeFile('11.2')); + $this->processDocLibAcl(); } $this->deletePatch(); @@ -486,11 +490,13 @@ class upgradeModel extends model $confirmContent .= file_get_contents($this->app->getAppRoot() . 'db' . DS . 'upgradexuanxuan2.2.0.sql'); case '11_0': case '11_1': + $confirmContent .= file_get_contents($this->getUpgradeFile('11.1')); if(!isset($this->config->isINT) or !($this->config->isINT)) { $xuanxuanSql = $this->app->getAppRoot() . 'db' . DS . 'upgradexuanxuan2.3.0.sql'; $confirmContent .= file_get_contents($xuanxuanSql); } + case '11_2': $confirmContent .= file_get_contents($this->getUpgradeFile('11.2')); } return str_replace('zt_', $this->config->db->prefix, $confirmContent); } @@ -2966,6 +2972,18 @@ class upgradeModel extends model return true; } + /** + * Process doc lib acl. + * + * @access public + * @return void + */ + public function processDocLibAcl() + { + $this->dao->update(TABLE_DOCLIB)->set('acl')->eq('default')->where('type')->in('product,project')->andWhere('acl')->in('open,private')->exec(); + return !dao::isError(); + } + /** * Save Logs. *