2007年1月31日星期三

权限控制的下一步工作

参看com.hikehi.servlet.TreeView

其中,NodeService.getAclByPrincipalId (String principalId)用于取得某个节点的acl,此处的某个节点(即principalId表示的)可以是folder的id,也可以是node index的id。该方法返回一个com.hikehi.privilege.Acl类型的值。如果返回结果为空,表明该节点的权限是继承而来。每一组 Acl包含若干条ACE。每一组acl包括名字和权限判断的顺序(即先允许后禁止还是先禁止后允许)。每条ace表明了“谁(用户或用户组的id)-能否做-某项操作”。系统的操作由com.hikehi.privilege.Operation定义,一共8种,分别是READ(读,读取node index及其属性),CREATE(创建新的node index或folder),MODIFY(修改,对node index的属性进行修改),DELETE(删除folder或者node index及其属性),OPEN(进入某个folder),RENAME(修改folder或node index的名字),GRANT(修改folder或者node index的权限),CHANGE_OWNER(改变folder或者node index的所有者)。
TreeView已经将提取acl的工作完成了,但是还不能显示在页面上。参照TreeView的代码,实现对库房的权限的显示和修改。在系统初始状态下,/goldentang下的所有folder都是继承了/goldentang的权限。对于继承权限的库房,需要在界面上能够让其拥有自己的权限。修改之后的或者是新加的权限,通过NodeService.grantFolderPrivilege()提交。需要修改权限的粒度只达到“用户组-folder”即可,不需要“用户-folder”或者“用户组-node index”或者“用户-node index”。
注意,admin这个用户仍然要拥有对库房的全部操作权限,这是在程序中需要默认加上的。
对库房的操作不要细分为8种情况,而是分为查看、入库和出库3种。其中,查看=对库房下的所有子folder有READ和OPEN的权限,入库=对ins, remains和materials有OPEN,READ和CREATE权限,出库=对remains有OPEN,READ和MODIFY权限,对 outs有OPEN,READ和CREATE权限,对materials有OPEN和READ权限。


我的整理

系统中现有权限体制

1.权限粒度
权限的粒度只达到“用户组-folder”即可,不需要“用户-folder”或者“用户组-node index”或者“用户-node index”。
2.权限控制
在NodeService.getAclByPrincipalId (String principalId)用于取得某个节点的acl,此处的某个节点(即principalId表示的)可以是folder的id,也可以是node index的id。该方法返回一个com.hikehi.privilege.Acl类型的值。如果返回结果为空,表明该节点的权限是继承而来。每一组 Acl包含若干条ACE。每一组acl包括名字和权限判断的顺序(即先允许后禁止还是先禁止后允许)。每条ace表明了“谁(用户或用户组的id)-能否 做-某项操作”。
3.系统权限划分
系统的权限操作由com.hikehi.privilege.Operation定义,一共8种,分别是READ(读,读取node index及其属性),CREATE(创建新的node index或folder),MODIFY(修改,对node index的属性进行修改),DELETE(删除folder或者node index及其属性),OPEN(进入某个folder),RENAME(修改folder或node index的名字),GRANT(修改folder或者node index的权限),CHANGE_OWNER(改变folder或者node index的所有者)。
4.自定义权限
用户可以对系统中的8种权限进行组合。比如:设定用户组A对库房X的权限
查看
A对X下的所有子folder有READ和OPEN的权限
入库
A对X下ins, remains和materials有OPEN,READ和CREATE权限
出库
A对X下remains有OPEN,READ和MODIFY权限;
A对X下outs有OPEN,READ和CREATE权限;
A对X下materials有OPEN和READ权限。
注:admin这个用户仍然要拥有对库房的全部操作权限,这是在程序中需要默认加上的。
权限设定完成后用户A下的所有用户都有对X相应的权限。
5.用户登录后
用户登录包括:用户名/密码及session id,用户登录成功后所有的操作都是靠session来控制的,其中session中包含两部分,一是session id,另一个是拥有该session 的用户id,也就是说在用户登录成功后可以通过session取出用户id从而标识了该用户。当需要进行权限验证时,系统根据该用户所处的用户组有无相应的权限来做验证。


财务模块的权限要求

1.用户登录统一
2.独立设置权限

2007年1月26日星期五

性能测试

astonia - astonia.shu@gmail.com says:
这样吧,说具体点
astonia - astonia.shu@gmail.com says:
创建一种数据类型,有30个属性,10个浮点、20个文本
astonia - astonia.shu@gmail.com says:
给这个属性录入1w条内容全一样的数据进去,甭管用什么方法
astonia - astonia.shu@gmail.com says:
内容一样,并不是每个属性都一样
astonia - astonia.shu@gmail.com says:
就是说,属性a和属性b未必一样
astonia - astonia.shu@gmail.com says:
而是不同数据的属性a都一样
astonia - astonia.shu@gmail.com says:
然后测试检索,各种组合条件下的检索,1个条件、2个、3个。。。。。
astonia - astonia.shu@gmail.com says:
然后测试合并,1个值合并、2个。。。。。
astonia - astonia.shu@gmail.com says:
不一定把每种组合都测,
astonia - astonia.shu@gmail.com says:
把典型的几种测了
astonia - astonia.shu@gmail.com says:
1 是最快的那种组合,比如最少检索条件的速度最快,就测单一条件的,针对不同类型的属性测一下单条件的
astonia - astonia.shu@gmail.com says:
2 最慢的组合,30个条件全有的
astonia - astonia.shu@gmail.com says:
3 某种单一属性最慢的检索,比如某个文本属性的值是最长的,就主要围绕它来测一下
astonia - astonia.shu@gmail.com says:
录入的文本属性要有比较长和很长的,不能都是极短的那种
astonia - astonia.shu@gmail.com says:
看明白没?

java tomcat OutOfMemoryError heap space

java tomcat OutOfMemoryError heap space
windows 更改系统环境变量
加上JAVA_OPTS=-Xms64m -Xmx512m
Linux 在{tomcat_home}/bin/catalina.sh的前面,加
set JAVA_OPTS='-Xms64 -Xmx512'

2007年1月18日星期四

单据

astonia - astonia.shu@gmail.com says:
(10时11分16秒) astonia - astonia.shu@gmail.com: 1 能够从产品查看其关联的所有单据,包括各个质检单和其他的单子
(10时11分27秒) astonia - astonia.shu@gmail.com: 2 能够查询单据得到关联的产品信息
(10时11分45秒) astonia - astonia.shu@gmail.com: 3 删除数据之后能够删除其相关的所有单据
(10时11分59秒) astonia - astonia.shu@gmail.com: 你想想,设计一个方案出来

2006年12月22日星期五

流程图

一、流程图

二、功能实现
出入库纠错以出库形式体现。
1. 入库纠错
在入库后或出库前发现入库有误,可进行入库纠错。
多入
出库。用途:入库纠错。
少入
出库,数量为负数。用途:入库纠错。
2. 出库纠错
在出库后发现出库有误,可进行出库纠错。
多出
出库,数量为负数。用途:出库纠错。
少出
出库。用途:出库纠错。
3. 移库
举例:产品a 从 A库移动到 B 库 100 公斤。
a 在A库中出库。用途:移库(移出);
a 在B库中入库。

出入库暂时达成共识-shu-pang

大森林 says:
在么〉〉刚给您的邮箱里发了文档。。
astonia - 马季确实嗝屁了 says:
出库不对
astonia - 马季确实嗝屁了 says:
移库,就是一出一入,这样简单
astonia - 马季确实嗝屁了 says:
至于b库中如果有a,就移库失败
astonia - 马季确实嗝屁了 says:
还有,是否需要追踪货品的来源和去向
astonia - 马季确实嗝屁了 says:
现在在同一个库里,进行出入库操作,同一个物品可以关联起来
astonia - 马季确实嗝屁了 says:
发生移库就会断掉
astonia - 马季确实嗝屁了 says:
这里是否有必要专门用一个方法来关联移库过程
astonia - 马季确实嗝屁了 says:
再者,最关键的是出库以后的目的或者用途
astonia - 马季确实嗝屁了 says:
现在的出入库纠错只能解决库存的数量问题,不能解决出库以后的数量
astonia - 马季确实嗝屁了 says:
出库出错了,需要修改的不仅是库存数
康辉 says:
产品拿错了也要修改?
astonia - 马季确实嗝屁了 says:
什么叫产品拿错了?
astonia - 马季确实嗝屁了 says:
错误只有数量的错误,这就足够了
康辉 says:

大森林 says:
刚才您说出库不对,是不仅仅是要改库存??
astonia - 马季确实嗝屁了 says:
应该考虑到这个问题,出库错了,一是影响库存,这个现在可以解决,二是影响进入下一环节的数量,这个不好解决
astonia - 马季确实嗝屁了 says:
这样吧,现解决库存的错误问题
大森林 says:
那就按这样的方法,先做么??
astonia - 马季确实嗝屁了 says:
可以,先把库存的问题解决
大森林 says:
好的,
康辉 says:

大森林 says:
权限问题是不是也要马上进行了
astonia - 马季确实嗝屁了 says:
你先把这个解决了再说吧
大森林 says:
恩,好的,,

2006年12月21日星期四

再说出入库纠错-shu

在么??
astonia - 马季确实嗝屁了 says:
还要我说多少遍你才能明白?
astonia - 马季确实嗝屁了 says:
一个是入库操作,一个是出库操作
astonia - 马季确实嗝屁了 says:
入多了就靠出库来摆平,出多了就靠入库来摆平
astonia - 马季确实嗝屁了 says:
入少了就再入,出少了就再出
astonia - 马季确实嗝屁了 says:
出库已经有目的一栏了,几乎不用任何改动就可以实现出库
astonia - 马季确实嗝屁了 says:
无非是目的是有限的,不同的目的接下来要有不同的操作
astonia - 马季确实嗝屁了 says:
比如,损耗,接下来没有任何操作就够了
astonia - 马季确实嗝屁了 says:
如果是出库到商城,那就要把出库的数据放到商城的入口目录去
astonia - 马季确实嗝屁了 says:
如果是生产,就要把数据放到生产的入口如
astonia - 马季确实嗝屁了 says:
转库,就是一出一入,出库的目标就是下一个库房
astonia - 马季确实嗝屁了 says:
把两个操作在一个步骤里完成而已
astonia - 马季确实嗝屁了 says:
其他的类似
astonia - 马季确实嗝屁了 says:
就看你需要或者说现在有哪几种目的
astonia - 马季确实嗝屁了 says:
可以把目的分分类
astonia - 马季确实嗝屁了 says:
比如需要复制数据或者移动数据的,下一个目标目录是什么,是否应该做在配置文件里,这样增加新功能的时候不需要改动程序,等等
astonia - 马季确实嗝屁了 says:
是不是需要加上一个所谓的入库目的
astonia - 马季确实嗝屁了 says:
这些是你需要考虑的事情
astonia - 马季确实嗝屁了 says:
就这么简单一件事
大森林 says:
您看的是‘出入库1221-updte.doc’这份文档么?
astonia - 马季确实嗝屁了 says:

大森林 says:
对于入库纠错的入多了和入少了还要分情况来处理,是不是有点麻烦,错误原因就是原始入库时入错了数据,追加一个正确的不可以么??
astonia - 马季确实嗝屁了 says:
怎么叫分情况处理?
astonia - 马季确实嗝屁了 says:
不是说了么,一共就2种情况,不管是纠错还是正常,就是出库和入库
astonia - 马季确实嗝屁了 says:
这还麻烦吗?
astonia - 马季确实嗝屁了 says:
还有比这更简单的吗?
大森林 says:
入多了要出库,入少了还要入一次,要把原来的数据复制一份再入对吧,因为一条数据不可能入在同一个库房下的
astonia - 马季确实嗝屁了 says:
你为什么要复制一份再入?
astonia - 马季确实嗝屁了 says:
这个问题你自己考虑吧
astonia - 马季确实嗝屁了 says:
说白了,所谓纠错,目的就是让库存=实际正确的值
astonia - 马季确实嗝屁了 says:
你自己琢磨怎么能让库存的值对了
astonia - 马季确实嗝屁了 says:
其实,最简单的方法,是可以出库的数量为负的
astonia - 马季确实嗝屁了 says:
这样就可以简化入库的麻烦
astonia - 马季确实嗝屁了 says:
入库也不需要加什么目的了