权限已经收回去了,那个人还在后台点得动,菜单一个没少。上午刚把退票入口从他的角色里摘掉,下午他照样点开、照样提交,系统一声不响。这不是权限没改,是权限生效慢了半拍。票务系统的权限什么时候才认,取决于它是登录时加载一次,还是每次请求都校验一遍,以及旧会话还算不算数。

票务系统的权限,进门查一次还是每步都查
登录时加载一次,权限被塞进会话里,后面每次点击都拿这份旧名单比对,快,也省事。每次请求都校验,改完立刻作数,代价是每个动作多一次查询。权限生效的时机就藏在这两种做法之间:前者要等会话结束,后者当场就生效。售票系统里那些“明明已经删了还能用”的投诉,多半是前一种;改完之后催人重新登录的,也是前一种。
改完那一刻,旧会话还算不算数
改完要不要强制下线,是一条要提前说清的规矩。强制下线,当事人手里那点没提交的东西会丢,下次还得重新登录一次,但收回当场生效。不强制,管理员省一步,旧会话还能撑半小时,收回等于没收。会话有效期不超三十分钟,这是底线,不能为了少几次登录把线放长。权限变更后强制下线,收回权限到生效不超五分钟,两条都写进流程,别留给值班的人临场判断。
只增不减的那一类,可以慢一步
也有可以等的情形。只增不减的授权,加一个入口、开一个导出,晚半小时生效不会出事,让当事人下次登录时自然带上就行,不必每次都催着重新登录。这类放宽要留字据:谁批的、按哪种方式生效、什么时候到期,都写在授权单上。临时权限到期更要有人收,到期日写在单子上不算完,得有人真的去点那一下。收不回来的临时权限,一年攒下来就是一堆没人认的入口。
通知这件事,两头都要给。改权限的人要知道什么时候生效,被改的人要知道自己的菜单为什么少了一项。只通知一头,追问就会绕到另一头去。通知里写清权限生效的方式和时刻,比写一句“权限已调整”有用得多。售票系统的管理员账号一动,值班群里最好同时出现一条,谁看都算数。
改完权限,让当事人自己按一下刷新,再看菜单里的入口还在不在。入口还在,说明权限跟着旧会话走,改的那份没被读到;入口没了,才算真生效。同一个账号连试两次都是这样,系统管理员就该把这批账号强制下线,逐条记下下线时刻;隔日再复看一遍,另注一笔。别用退出再登录来验,那一步会把问题盖住。票务系统的菜单一刷新就变,说明改动真的到了请求那一层。

这一步怎么让,两种做法各有代价。一种改完等自然过期,管理员少一次操作,代价是旧会话还能用半小时,收回等于没收,这套票务系统的权限生效全靠钟表。一种改完立刻强制下线,当事人重新登录一次,收回当场生效,代价是有人正在填单子会被打断。选后者的人多,因为半小时里能发生什么,谁也说不准。
只增不减的授权,是唯一可以等下次登录的情形。加权限可以缓,减权限不能缓。这一笔由系统管理员在授权单上写清生效方式,复核人签运维。签字之前先看一眼到期日,临时权限没写到期日的,一律按不批处理。售票系统的角色改过之后,这段字据比一句口头答应顶用。
