Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Orchard: Custom Registration fields

For my Orchard project, I need some additional information from the user at registration time. (Say, First Name, Last Name, Pants Color). This information must be entered while registering and can not be deferred until later (as per client's orders).

I tried using the Profile and Extended Registration plugins to ask for those, but as far as I see, this only gives me optional fields to display in the registration form. Is there a way to present fields that are mandatory?

I also had a quick foray into overwriting the AccountController's Register method, as per this discussion, but I couldn't get it to work: The controller is in a different place, it can't be subclassed and even if I force it to, code is never executed. I presume they are using a much older version of Orchard.

So, in which direction should I go to create a mandatory field that is close to the Orchard philosophy? Should I create a new field type that rejects empty values maybe? (is that even possible)?

like image 781
winsmith Avatar asked Jun 07 '11 10:06

winsmith


1 Answers

I wrote the ExtendedRegistration module because of that same need. You need to create a custom part, e.g.: MyRegistrationPart. Then you add that part to the User ContentType. In your part just add the [Required] attribute (Data annotations) to any properties that are mandatory. Registration will not succeed until those mandatory values have been filled out!

Hope it's clear now.

like image 62
santiagoIT Avatar answered Nov 03 '22 23:11

santiagoIT