在SilverStripe中是否有關於用戶和登錄後可以看到的內容的任何教程,具體取決於他們的角色和權限?SilverStripe訪問者和權限
我希望用戶在登錄後查看更多內容,但不能訪問CMS。
我該怎麼做?
在SilverStripe中是否有關於用戶和登錄後可以看到的內容的任何教程,具體取決於他們的角色和權限?SilverStripe訪問者和權限
我希望用戶在登錄後查看更多內容,但不能訪問CMS。
我該怎麼做?
有一些關於此主題的詳細教程Silverstripe User Help。
感興趣的將是Managing roles and permissions。
在設置組權限時,您可以設置用戶是否有權訪問所有CMS,CMS的某些部分或者不具有CMS。
您可以創建無法訪問CMS的用戶組,但可以查看前端的額外頁面。爲此,在創建新組時,在權限選項卡上取消選中所有複選框。
然後,您將需要設置一些只能通過登錄成員訪問的頁面。在CMS中,選擇您只想通過登錄成員查看的頁面。轉到右上角的頁面設置標籤。在此屏幕上,您將看到誰可以查看此頁面?。您可以選擇登錄用戶或只有這些人(從列表中選擇)並在輸入字段中選擇用戶組。
您可以通過擴展MemberLoginForm
來控制登錄用戶的去向。
首先在mysite/code/CustomLoginForm.php中創建一個CustomLoginForm
類。
CustomLoginForm.php
class CustomLoginForm extends MemberLoginForm {
public function dologin($data) {
if($this->performLogin($data)) {
// Check if the logging in member has access to the CMS
if(Permission::check('CMS_ACCESS_CMSMain')) {
// If they do, send them to the admin page
$this->logInUserAndRedirect($data);
}
// If they don't, redirect them to whatever page you like.
// The following redirects the user to the home page
return Controller::curr()->redirect(Director::baseURL());
} else {
if ($badLoginURL = Session::get('BadLoginURL')) {
return Controller::curr()->redirect($badLoginURL);
} else {
return Controller::curr()->redirectBack();
}
}
}
}
調用userCustomClass
功能在你的_mysite/的config.php設置CustomLoginForm
爲你的`MemberLoginForm。以下行添加到您的_mysite/的config.php文件:
的config.php
Object::useCustomClass('MemberLoginForm', 'CustomLoginForm');
您可以自定義這必須通過CMS控制的重定向頁面,甚至爲設置每個用戶組。它只需要一點點的代碼來添加。
我已經是紅色的,但似乎有角色和我想隱藏的部分cms的權限。 – user1406647
這是我搜索的線索 – user1406647
您知道如何刪除此通知:我很抱歉,但您無法訪問CMS的該部分。如果您想以其他人身份登錄,請在下面執行。當我以普通用戶的身份登錄時,我收到了它,不能查看CMS – user1406647