Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

General Questions /

General questions about getting started with SilverStripe that don't fit in any of the categories above.

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

Manipulating the member table


Reply


17 Posts   2396 Views

Avatar
dalesaurus

Community Member, 283 Posts

26 November 2009 at 4:41am

At this point I'm going to need to see all the code to figure out what is going on. Can you zip up all the relevant files and attach?

Avatar
Harley

Community Member, 153 Posts

29 November 2009 at 1:47am

Cool, thanks for the reply.

Files are attached, let me know if there is anything more you need.

Much appreciated

Attached Files
Avatar
dalesaurus

Community Member, 283 Posts

3 December 2009 at 5:20pm

Does something like this in your onBeforeWrite() call work?

   $group = new Group();

   $group->Code = 'CMSMain';

   $group->Title = $this->Title;

   $group->write();

   Permission::grant($group->ID, "CMSMain");

   $member = new Member();

   $member->FirstName = 'FirstName';

   $member->Surname = 'Surname';

   $member->Nickname = 'Nickname';

   $member->Email = 'Email';

   $member->Password = 'Password';

   $member->write();
   
   $member->Groups()->add($group);

   $member->write();
   $group->write();

Avatar
Harley

Community Member, 153 Posts

7 December 2009 at 1:34am

Hi Dale,

Yeah the security group is being created, the only bit I'm having trouble with is asigning a member to a group. The members are created as new members in the member table, they just need to belong to a security group now.

Thanks

Avatar
dalesaurus

Community Member, 283 Posts

7 December 2009 at 8:41am

Well those accessors should be adding the. The one above has worked just fine for me on several projects.

$member->Groups()->add($group);

Or from the other end:

$group->Members()->add($member);

These do not work for you?

Avatar
Harley

Community Member, 153 Posts

9 December 2009 at 2:19am

Hi Dale,

Thanks for getting back, and if my replies seem far apart apologies, my laptop is in the shop getting fixed so I've not had the usual daily access to the internet.

To answer the question, basically I have tried both of those accessors but to no avail. There must be something i am doing wrong, maybe its something stupid like a syntax error but I just can't see it.

Avatar
dalesaurus

Community Member, 283 Posts

9 December 2009 at 3:19am

That is very weird indeed. If your site is in Dev mode it should throw an error if those accessors aren't syntactically correct. I only have 2 more tricks up my sleeve;

1. Try running $member->Groups()->removeAll(); before you do the ->add($group);
2. Drop your Member table and /dev/build again. You'll loose your data but if it is a weird column or something getting it the way....start from scratch.

Avatar
Harley

Community Member, 153 Posts

10 December 2009 at 1:06am

Hi Dale,

Thanks I'll try that and see if it works. So you think the code looks fine otherwise? And that would normally be the way to do something like this? I was worried that I had gone about things the wrong way, you know how you start to doubt yourself when things don't work?

Ok anyway I'll let you know the outcome

Cheers