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.


Our old forums are still available as a read-only archive.

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

A question about DataObjectDecorators


5 Posts   1824 Views


17 July 2007 at 4:21am Google Summer of Code Hacker, 152 Posts

For OpenID support I implemented a DataObjectDecorator, but I couldn't figure out how I can add a custom validator to it.

I need to ensure that the entered OpenID is unique so that only one user account is linked to a specific OpenID. Is that somehow possible?

The only way I know about is to use the augmentDatabase() method to add an unique-index to the database (adding it to extraDBFields() 'indexes' doesn't work) but in that way I can't output an error-message.

Does someone know how this can be solved?

Thanks a lot,


17 July 2007 at 8:54pm Administrator, 685 Posts

Arg, this is a bug. I forgot to includes indexes on the list of You'll need to fix DataObjectDecorator::loadExtraDBFields()

There's a list of the static variables that are updated; just add indexes to this list.


18 July 2007 at 12:49am (Last edited: 18 July 2007 12:58am), Google Summer of Code Hacker, 152 Posts

OK, I fixed it in r38854 (and added also defaults to it). But this doesn't help to solve my problem :-(

Now I can prevent that duplicate entries are created, but no error message will be shown since an database error occurs.. is there any way to implement a validator for DataObjectDecorators or handle such database errors ("Duplicate entry '' for key 2")?


30 July 2007 at 8:48pm Google Summer of Code Hacker, 152 Posts

Are there any news on this? How can I implement a validator on a DataObjectDecorator??


28 August 2007 at 1:11am Google Summer of Code Hacker, 152 Posts

OK, I fixed that in r40925 (also for the forum module: GSoC branch r40926).

It's not the best (scalable) solution but it works for the moment and Hayden said that I should not change the core's validation behavior at the moment.