根据javar的建议和“issue 17”,特提出如下需求分析:
1、征对目标、评论、日记,都可以添加私人帖子属性;
2、如果父类的属性是私人的,那么子类帖也相应成了私人的;
3、子类帖可以单独设为私人的;
4、私人帖和公共帖可以相互转换;如果原来的公共帖成了私有帖,那么其下的子帖也将成为私有,但如果子帖是别人写的又怎么办呢?
5、目标的状态设定后暂时不支持状态转换;
6、RSS订阅一律不计算私人帖;
7、帖子数目的计算要计算私人帖;
8、除非不可抗力(如黑客入侵等等)和司法请求,私人帖为作者的隐私,网站要绝对的维护作者的隐私权。
详细分析:
1、对象模型:ArticleInfo需要增加一个字段visibility(可见性):0为public,1为privated,以后可以考虑增加2为friend,而且为必须字段(不过对于留言是没有意义的);
2、创建目标时,如果选择可见性为privated,则目标下的评论、日记、日记的评论的可见性均为privated;而且,日记不能编辑为public,除非把日记的目标改变,而且,就算目标改变为public,它下面的评论除非作者编辑,仍然是privated;已经成为public的目标不能修改为privated,因为其他用户可能加入了这个目标;已经为privated的目标也不能修改为public,但可以通过把它下面的日记等子帖修改为public而与人共享其中的子帖;
3、创建日记和目标的评论时,其默认可见性继承于目标,如果目标为privated,则它们必须为privated,且没有选择的项;如果目标为public,可以有选择项使它为privated,但默认值是public。
4、在评论日记时,如果日记为privated,则为privated,且无选择项(这种情况实际上是自己评论自己的私有日记,别人是不可能看到你的私人日记的);如果日记为public,可以有选项使其为privated,评论别人的public的日记,但是把评论设为私人的,则原作者也看不见评论,但是如果原作者把日记改为私有了,则谁也看不见评论了;