Jump to:

10990 Posts in 2727 Topics by 1818 members

All other Modules

SilverStripe Forums » All other Modules » Client/ Admin log-in, but with register form?

Discuss all other Modules here.

Moderators: martimiz, Sean, biapar, Willr, Ingo, swaiba, simon_w

Page: 1
Go to End
Author Topic: 749 Views
  • borriej
    Community Member
    267 Posts

    Client/ Admin log-in, but with register form? Link to this post


    I've extended the CMS with Client's being able to log-in:


    Object::add_extension('Group', 'GroupDecorator');
    Object::useCustomClass('MemberLoginForm', 'CustomLoginForm');


    class GroupDecorator extends DataObjectDecorator {
       function augmentSQL(SQLQuery &$query) {}
       public function extraStatics(){
          return array(
             'db' => array(
                "GoToAdmin" => "Boolean"
             'has_one' => array(
                "LinkPage" => "SiteTree"


       public function updateCMSFields(FieldSet &$fields) {
        $fields->addFieldToTab("Root.Members", new CheckboxField("GoToAdmin", " Go to Admin area"), 'Members');
        $fields->addFieldToTab("Root.Members", new TreeDropdownField("LinkPageID", "Or select a Page to redirect to", "SiteTree"), 'Members');




    class CustomLoginForm extends MemberLoginForm {

       // this function is overloaded on our sublcass (this) to do something different
       public function dologin($data) {
          if($this->performLogin($data)) {
                echo 'done';
          } else {
             if($badLoginURL = Session::get("BadLoginURL")) {
             } else {

       public function redirectByGroup($data) {    

          // gets the current member that is logging in.
          $member = Member::currentUser();
          // gets all the groups.
          $Groups = DataObject::get("Group");
          //cycle through each group   
          foreach($Groups as $Group){
             //if the member is in the group and that group has GoToAdmin checked
             if($member->inGroup($Group->ID) && $Group->GoToAdmin == 1)
                //redirect to the admin page
                 Director::redirect(Director::baseURL() . 'admin' );
                return true;
             //otherwise if the member is in the group and that group has a page link defined
             elseif($member->inGroup($Group->ID) && $Group->LinkPageID != 0)
                //Get the page that is referenced in the group      
                $Link = DataObject::get_by_id("SiteTree", "{$Group->LinkPageID}")->URLSegment;
                //direct to that page
                Director::redirect(Director::baseURL() . $Link);
                return true;
          //otherwise if none of the above worked return fase
          return false;


    This all works offcourse.. but it would be great if people could register on the website with a registration form.

    People are not supposed to gain immediate acces -> the admin must activate their accounts first.
    My idea is that they simply click activate in the CMS.

    At the moment i have a separate register form, but the admin must retype all forms in the cms access panel.

    How would I do this?


Page: 1
Go to Top

Want to know more about the company that brought you SilverStripe? Then check out SilverStripe.com

Comments on this website? Please give feedback.