Thanks swaiba, but I do already understand how to USE Decorators, Im more interested in why I SHOULD use them, why extending Member is discouraged, and what the correct setup for my given use case would be.
So, why is extending Member then using Object::use_custom_class() supposed to not work across the site? Where exactly does it fail? Can someone give me some specific information? It seems a bit silly to me if SS doesnt work properly with a custom Member class, but if thats the case I need to know exactly how it fails.
And more importantly, given the use case I outlined
one main admin account, which we (the development team) will have access to. Then one (or possibly a few, but very few) silverstripe accounts with limited admin privileges, which we will hand over to the client so they can maintain their site. Finally, an unlimited number of business accounts that the client will add/delete using their SS admin accounts. The business members should be able to edit their own info and thats about it. we are thinking business members wont even have admin access, instead just use insite forms to update their info.
what is the correct approach? Use Member for the main admin and the client admin, extend Member for business members? Or extend DataObject for business members? Decorate Member so even admin/client admin have the fields intended for business members?