extension模块上传插件写权限检查的问题
原因无非还是我自己开发插件时遇到的
具体前面两个帖子可以参见http://www.zentao.net/thread-view-80516.html和http://www.zentao.net/ask-view-686.html
禅道提示:
安装插件::info
安装失败,错误原因如下:
目标路径 E:\Apache Software Foundation\Apache2.2\htdocs\zentaopms\module/info/js 不存在。
目标路径 E:\Apache Software Foundation\Apache2.2\htdocs\zentaopms\module/info/lang 不存在。
目标路径 E:\Apache Software Foundation\Apache2.2\htdocs\zentaopms\module/info/view 不存在。
执行下面的命令来修正这些问题:
mkdir -p E:\Apache Software Foundation\Apache2.2\htdocs\zentaopms\module\info\jsmkdir -p E:\Apache Software Foundation\Apache2.2\htdocs\zentaopms\module\info\lang
mkdir -p E:\Apache Software Foundation\Apache2.2\htdocs\zentaopms\module\info\view
*******************
首先,这个问题和目录名无关,其次,确实是因为没有写权限造成的.那我为什么还说是问题呢?
在extension的model.php中的checkExtensionPathes函数中有如下代码:
............
$pathes = $this->getPathesFromPackage($extension);
foreach($pathes as $path)
{
if($path == 'db' or $path == 'doc' or $path == 'hook') continue;
$path = $appRoot . $path;
if(is_dir($path))
{
if(!is_writable($path))
{
$return->errors .= sprintf($this->lang->extension->errorTargetPathNotWritable, $path) . '<br />';
$return->chmodCommands .= "sudo chmod -R 777 $path<br />";
}
}
elseif(!is_writable(dirname($path)))
{
echo js::alert(dirname($path)); //测试部分
$return->errors .= sprintf($this->lang->extension->errorTargetPathNotExists, $path) . '<br />';
$return->mkdirCommands .= "mkdir -p $path<br />";
$return->chmodCommands .= "sudo chmod -R 777 $path<br />";
$return->dirs2Created[] = $path;
}
}
..........
可见到我在检测是否有权限的地方加了测试
我的info模块具有如下目录树
info
|---js
| |--browse.js
|---lang
| |---...
|---view
| |---...
|---control.php
|---...
之所以提示报js,lang,view不存在的原因是发现info目录没有写权限,这点我不否认
原因是...info还没建立呢...所以/module/info不存在,当然没有写权限,但并不代表module没有写权限
所以我认为这是bug,如果用户开发了一个插件,这样的目录结构是很正常的
我把你们的helloworld plugin.zip插件稍加改造,在hello目录中添加了lang目录,并存有一个php文件后,也造成了同样的问题
因为hello不存在!怎么能检查/module/hello是否有写权限呢?
耽误你们时间了望见谅,但我认为这确实是一个bug
我验证过,只要有info目录,立马就可以安装成功
那也就意味着,如果用户开发我这样的插件,用户必须自己建一个info目录(info目录为用户自己开发的插件)
并不是没有权限啊,是判断机制有问题啊,module有绝对的权限啊
这样对开发插件的人来说很不方便,也对用户来说体验很差
说得难听点,这样的插件机制就会显得鸡肋了
既然很不方便,用户体验很差,鸡肋,你可以不用来开发插件!
有事说事,扯这么多大帽子做什么?
你去找找比我们做得更好的插件机制,找找看。
请客观描述问题,不要加那么多的主管色彩!再这样,自己玩去吧,懒得理你了。 ![]()
wordpress
我在禅道上开发插件又不是为了赚钱.只是工作和兴趣驱使的.
只是简单的一个忠恳的意见而已.我说话比较直,没必要较真
淡定点.你们自己的模块,随便找一个,bug模块,目录下有css,js,lang,view目录
开发者开发一个插件也很有可能有这样的目录结构啊.
无意制造事端,只是希望一个产品能越做越好,只是提意见.并没说你们必须接受
类似:我不认同你的观点,但我尊重你说话的自由




精品资料包
1V1产品演示
免费试用增强功能
专属顾问答疑支持


