沟通系统
邮件列表等沟通工具

群英汇 Mailman 人性化设计(5): 创建新列表
5月29日
创建新列表,在 Mailman 中是如何进行的呢?看看 Python 的邮件列表的新建页面。
- 输入列表名称,以及一系列列表的设置
- 在表单的最后,需要输入口令,即:List creator’s (authentication) password
即 Mailman 本身的创建列表的授权,是通过简单的密码检查完成的。这样的实现存在安全问题和管理问题:
- 密码认证在不安全的 http 信道内进行,存在密码泄漏风险
- 只有密码,没有用户名的不完整的认证。知道密码的可能有多个人,无法得知是谁完成的操作
- 密码管理,需要在命令行下执行 mmsitepass 命令重置管理员密码或者列表创建密码
群英汇扩展的Mailman解决这个问题,是通过双因子认证完成的。
阅读全部内容 »

群英汇 Mailman 人性化设计(4): 列表订阅策略
5月27日
Mailman 本身只包含三种订阅策略,有:确认, 要求核准 和 确认并核准。这三种订阅策略都要求用户手工输入自己的邮件地址,以及一个口令。例如:Python-idea 列表的订阅。
这样的邮件列表使用起来不方便,尤其对于企业用户可能有着下面的需求:
- 只允许使用公司内部的邮件地址订阅,不允许使用其它非企业邮箱订阅;
- 如果员工用外网邮箱订阅,会出现员工离职但是邮件通知仍然通过外网邮箱获取,导致信息泄漏;
- 企业都有相应的用户管理中心甚至认证中心,应该允许认证用户直接订阅,而不必手工输入邮件地址信息;
群英汇扩展了邮件列表系统的订阅策略,增加了两个新的订阅策略。

群英汇 Mailman 人性化设计(3): 列表订阅的人性化设计
5月17日
在邮件列表一览页面,当点击某个列表,将进入相应列表的首页。在 Mailman 本身的实现中,这个首页会包含该列表的订阅对话框(需要手动填写),还包含该列表的订阅编辑对话框。例如:Python-idea 列表的首页 。
而群英汇为每个列表的首页都加入的身份认证的判别。如果用户已经登录,则显示类似下面的界面:
- 如果列表已经订阅,会显示“用户已经订阅本列表”的信息
- 如果用户尚未订阅列表,会显示订阅对话框,不过对话框中的邮件地址信息已经自动填好。
- 在花名册查看对话框以及订阅编辑对话框等,不再显示口令输入等输入对话框,而是简化成一个按钮,因为认证已经完成或者认证会在点击对话框后开始。
另外一个主要的不同,订阅的策略的改进,增加了新的订阅策略,更加符合公司/团队的使用习惯。请听下回分解。

群英汇 Mailman 人性化设计(2): 管理员认证方式和管理员面板的变化
5月9日
Mailman 的管理员界面缺省并不进行认证(例如:Mailnan 项目本身的 admin 页面),这有点说不过去:
- 管理员界面中的创建新列表链接,需要口令认证
- 管理员界面中的其他链接,指向各个列表的配置界面,也需要口令认证
- 因为管理员界面不进行认证,因此非公开列表也不显示,管理员也成了瞎子…
在我们为 Mailman 增加了新的认证机制后,管理员界面必须登录才能访问,并能够显示列表概要信息。下面显示的是登录后的管理员面板:

群英汇 Mailman 人性化设计(1): 列表一览页增加登录和已订阅列表加亮
5月1日
群英汇为 Mailman 增加了独创的认证插件,从根本上改变了 Mailman 原有的基于简单 COOKIE 加口令的认证方式。为普通用户和管理员使用邮件列表提供了更为人性化的设计。
首先,我们介绍一下在 listinfo 页面,就是 列表一览 页面的改进。
阅读全部内容 »

wordpress日志评论时间错误问题
1月14日
也许这个问题在你的服务器中不是常见的,但是偶然间还是会碰到的,它就像定时炸弹一样,说不定
下一秒钟在你的服务器上爆发了。
关于这个问题的解决过程真的不敢妄自菲薄,我先把问题叙述一下。这个是我们错误显示的截图:
当你看到那个醒目的”大约-1年”时,不知道你作何敢想。原来鼎鼎大名的Wordpress也有这样的
错误,其实细查下来才会发现这是当前主题和Wordpress内部函数共同酿成的苦果。
有了以往查找错误的经验,先查找“大约-1年前”出现的变量的地址,然后就可以按图索骥了,根
据变量你很快就能定位到“主题名/functions.php“文件中,在functions.php下的timeSince函数中
有这样一个变量:$since,
$since = current_time('timestamp',$wp_time_offset ? get_option('gmt_offset') : 0) - $startTimestamp;它的值为当前时间-发表评论的时间,你可以打一下这个
current_time('timestamp',$wp_time_offset ? get_option('gmt_offset') : 0),结果显示那条错误的评论和那些正确的评论取出的当前时间都是正确的,说明问题还不在于此。
继续往下找,在真正输出时间的地方,该主题又对发表评论的时间进行了处理,如下:
comment_date));?>
,
用echo命令输出的信息表明$comment->comment_date所取出的时间并没有错误,错误就发生
在strtotime,这个PHP内部函数上,PHP内部函数也会出问题?我的第一个反应就是这样。
我们看一下PHP的这个函数,下面是对该函数的说明:
The function expects to be given a string containing a US English date format and will try to parse that format into a Unix timestamp (the number of seconds since January 1 1970 00:00:00 UTC), relative to the timestamp given in now , or the current time if now is not supplied. This function will use the TZ environment variable (if available) to calculate the timestamp. Since PHP 5.1.0 there are easier ways to define the timezone that is used across all date/time functions. That process is explained in the date_default_timezone_get() function page.
但是在我们的环境中为什么会对一个时间点处理出错呢,这个原因我慢慢再道来。
我们已经把这个问题的解决方案提交到github上了,这个是问题的地址:
改动1,
改动2。改完了就再也不会出问题了




最新评论