首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何启用用户注册,但不允许任何用户登录?

如何启用用户注册,但不允许任何用户登录?
EN

Drupal用户
提问于 2016-03-17 22:32:00
回答 3查看 1.3K关注 0票数 3

我想使用用户注册页面收集用户数据,并使用其电子邮件验证检查,以筛选出假用户。但问题是,我不希望这些用户能够登录到网站。如何在Drupal 7中做到这一点?

注:所以根本没有登录。我只想用注册系统给他们发一封电子邮件来验证他们的帐户。

EN

回答 3

Drupal用户

回答已采纳

发布于 2016-05-23 15:07:40

问题求精

这是一个相当棘手的问题,尤其是“.根本没有登录.”其中的一部分。海事组织你必须允许至少有特定角色的人进行登录.如果没有,那么即使是管理员(或user/1)也无法登录。这也意味着您不能拒绝每个人访问登录URL (否则管理员将如何执行登录?)

提出的解决方案

下面是一个解决方案,“在登录后立即将每个人(管理员除外)踢出去,但只在您向这样的用户发送适当的eMail之后”。

下面是应该回答您的问题的规则(以规则导入格式):

代码语言:javascript
复制
{ "rules_redirect_to_logout_except_for_role_id3" : {
    "LABEL" : "Redirect to logout except for role ID3",
    "PLUGIN" : "reaction rule",
    "ACTIVE" : false,
    "OWNER" : "rules",
    "REQUIRES" : [ "rules" ],
    "ON" : { "user_login" : [] },
    "IF" : [
      { "NOT user_has_role" : { "account" : [ "account" ], "roles" : { "value" : { "3" : "3" } } } }
    ],
    "DO" : [
      { "mail" : {
          "to" : "[account:mail]",
          "subject" : "No login allowed",
          "message" : "You just completed a login to [site:name], located at [site:url].\r\n\r\nHowever, at this time we do not allow any login ...\r\n\r\nThanks anyway for validating some of your account data, such as your eMail ID.",
          "language" : [ "" ]
        }
      },
      { "redirect" : { "url" : "user\/logout" } }
    ]
  }
}

规则将在登录完成后立即触发(规则条件)。对于任何没有与"role id = 3“(= Rules条件)匹配的角色的用户,也就是对于任何非管理员的用户,它将执行这些规则操作(按指定的顺序):

  1. 向完成登录的用户发送适当的eMail (因为用户已登录,用户的eMail Id可作为用户帐户信息的一部分)。
  2. 重定向到页面user/logout (=强制用户再次注销)。

如果启用了规则UI,则只需导入上述规则并调整角色id的值(=3)以满足您的需要。你就解决了你的问题。

显然,您必须调整eMail主题和内容以满足您的需要。可能您还希望使用其他角色ID(或其他角色ID),这些角色ID无论如何都允许登录。

使用上述方法,要完全回答您的问题,需要做的就是创建一个清单(一个视图)。检查所有用户的最新登录日期。那些在X小时/天前创建但从未完成登录的帐户是您正在寻找的假用户(因为他们在注册期间输入的eMail ID无效,或者这些用户实际上不想注册,因此他们从未通过适当的临时登录来确认他们的注册请求)。

注意:默认情况下,这个规则是禁用的(所以不要忘记也启用它)。

票数 1
EN

Drupal用户

发布于 2016-05-21 00:20:42

你可以用规则

事件:保存新帐户后

操作:阻止用户>>数据选择器:帐户

票数 2
EN

Drupal用户

发布于 2016-05-23 12:25:38

最简单的方法是,转到admin/config/people/accounts并选择访问者,但需要管理员批准并保存。

通过选择此选项,用户可以在站点上注册,默认情况下他们将status设置为blocked,如果管理员批准了它们,他们可以登录到站点,否则就无法登录站点(阻止用户不能登录到站点)。不需要任何附加规则或代码。

票数 2
EN
页面原文内容由Drupal提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://drupal.stackexchange.com/questions/195129

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档