2016-07-24 32 views
0

如何在通過Simple FB Connect自動註冊後從drupal core(D7)分配特定角色?我目前正在使用自動角色分配併爲2個角色進行自定義註冊,其中一個是具有有限權限的基本角色,另一個是具有更多編輯/創建權限的高級角色。我的問題是,簡單的FB連接鏈接工作的很好,但註冊人爲錯誤的角色。我如何選擇基於url分配的角色?如何在自動註冊時分配特定用戶角色 - 簡單FB連接 - Drupal 7

也許在template.php中的東西,將允許下面的網址放在我的Facebook按鈕?

/user/simple-fb-connect?registration=1&role=my_custom_role 

回答

0

您可以根據hook_user_insert並檢查網址並分配所需的角色,

 function module_name_user_insert(&$edit, $account, $category) 
{ 
     if($_SERVER['REQUEST_URI'] =="url") 
     { 
     //add code to assign desired role; 
     //assuming rid of custom role is 1 
     $account->roles[1]='custom_role'; 
     } 
} 
+0

創建一個自定義模塊,並將其加入到它的時候,這將引發一個錯誤我。我更新了uri(https://example.com),並刪除了'3',但它似乎在自定義註冊頁面上出現錯誤,'未定義索引' –

+0

我不知道爲什麼這不起作用,也許因爲簡單FB模塊必須傳遞到Facebook,然後回到網站,請求URL將是Facebook.com,而不是mydomain.com,或者這可能只適用於用戶填寫註冊頁面上的字段...很難告訴。但是,它不起作用。 –

+0

如果它是重定向窗體Facebook或任何第三方的URL,那麼用戶也註冊到您的應用程序。需要驗證 – Deb

0

我建議你看一看規則模塊:https://www.drupal.org/project/rules/

這個模塊可以讓你根據事件創建自動化任務。你想要做的是:

  • 下載並啓用規則模塊:https://www.drupal.org/project/rules/
  • 您需要啓用規則UI以及
  • 轉到規則配置:example.com/admin/config/workflow /規則
  • 創建新規則
  • 規則事件應該是這樣的:「用戶註冊連接到Facebook的一個新帳戶」
  • 這個規則應該是這樣的:「分配角色到用戶」

接口應該是非常簡單的。 下面是一些額外的資源:

規則手冊 https://www.drupal.org/documentation/modules/rules

+0

是的,其實我首先嚐試了,但我還需要一些條件來傳遞到規則來定義它是否是「基本」或「編輯器」用戶登錄。我能想到的唯一方法是通過在URL中的字符串,因爲簡單的fb連接給我的自定義着陸頁的可能性,通過傳遞它在字符串中,我認爲這可能會工作,但試圖註冊fb它將我發回到此頁面'user/simple-fb -connect?editor =#_ = _'在我的規則條件中,我將路徑別名設置爲'editor'。 did not work –

+0

出於安全原因,您不應該允許用戶通過將其傳遞到URL中來「選擇」他/她的角色。你不希望你的用戶進入他們想要的角色。 – mgadrat

+0

每當有人註冊給他/她編輯角色時,您應該有規則發送電子郵件給您的網站上的「管理員」(管理員)。 – mgadrat

相關問題