我正在开发一个面向文档的应用程序,需要管理用户对文档的访问。我有一个模块处理用户身份验证,另一个模块处理数据存储上的文档CRUD操作。一旦用户通过身份验证,我需要根据用户的权限强制执行用户可以和不能对文档执行的操作。我能想到的将这两部分集成在一起的最佳选择是创建另一个模块,该模块复制数据API,但也将经过身份验证的用户作为参数。该模块将授权检查委托给auth模块,并将文档操作委托给数据访问模块。比如:
-module(auth_data_access).
% User is authenticated (logged into the system)
% save_doc validates if user is allowed to save the given document and if so
% saves it returning ok, else returns {error, permission_denied}
save_doc(Doc, User) ->
case auth:save_allowed(Doc, User) of
ok ->
data_access:save_doc(Doc);
denied ->
{error, permission_denied}
end
end.
有没有更好的办法来处理这件事?