我有一个包含许多外部数据库的drupal。我在所有数据库中都做同样的事情,但是我想根据登录用户的角色限制对数据库的访问。
我是说:
如何控制每个角色的数据库访问?
发布于 2015-09-13 06:55:31
如果您的意思是控制Drupal为自己的数据库表使用的数据库(例如,包含所有注册用户、活动会话和创建的节点的表),那么这是不可能的。无法根据用户的角色告诉Drupal使用哪个数据库。
如果您询问的是您自己的模块,那么这是可能的,但是您的模块需要自己来处理这个问题,因为Drupal没有我的特定功能来处理您的用例,除了下面的功能:
user_has_role()检查作为参数传递的用户帐户(或当前登录的用户)是否将角色作为参数传递。db_set_active()使用settings.php文件中的一个键设置从连续的数据库API调用中使用的数据库我不使用db_set_active(),而是使用$options['target'],它可以从查询数据库所需的任何Drupal函数中使用。
https://drupal.stackexchange.com/questions/174186
复制相似问题