Hi Simon, To Be honest, I have not been able to test everything yet. I implemented this and it compiled correctly but i haven't had time to test the actual implementation. It looks promissing and I think it's the way to go in the future. Modeling a seperate person and a user instance is done a lot outside turbine in other application and i feel more confortable with that model. It makes the implementation a lot simpler and could be implemented as a standard in turbine i hope.
Who do i write about this proposal, do you know ? Lot's of success and let me know if it works ok :-) Diederik On Thu, 18 Apr 2002, Simon Moore wrote: > Thanks Diederik... > > That helped a lot...I like your model and will probably do the same thing > until all this get's cleared up. (I'll post and let you know how it went) > > With any luck somebody will clear all this up with some form of > documentation soon...I volunteer as soon as I 'get it' myself. > > > -----Mensaje original----- > > De: Diederik de Groot [SMTP:[EMAIL PROTECTED]] > > Enviado el: jueves 18 de abril de 2002 13:16 > > Para: Turbine Users List > > Asunto: RE: Extending TurbineUser in TDK 2.2b1 > > > > Hi Simon, > > > > I'm not sure about all you questions, i can show you what i did and maybe > > you can derive the solution for you case from that. > > > > Instead of extending user I actually deminished TurbineUser to > > (Turbine-schema.xml): > > > > <table name="TURBINE_USER" idMethod="idbroker"> > > <column name="USER_ID" required="true" primaryKey="true" > > type="INTEGER"/> > > <column name="LOGIN_NAME" required="true" size="32" type="VARCHAR"/> > > <column name="PASSWORD_VALUE" required="true" size="32" > > type="VARCHAR"/> > > <column name="MODIFIED" type="TIMESTAMP"/> > > <column name="CREATED" type="TIMESTAMP"/> > > <column name="LAST_LOGIN" type="TIMESTAMP"/> > > <column name="OBJECTDATA" type="VARBINARY"/> > > <unique> > > <unique-column name="LOGIN_NAME"/> > > </unique> > > </table> > > > > Now I have a pure User Implementation without FirstName and LastName > > stuff. > > It only holds the necessary User Entries. > > > > Then I added an Alias to Turbine User in my Application-schema.xml (Note > > that i have not specified anything but just this) > > > > <table name="APP_USER" javaName="APPUser" alias="TurbineUser"> > > <column name="USER_ID" primaryKey="true" required="true" > > type="INTEGER"/> > > </table> > > > > Now i don't really extend the user but actually create a new object called > > Member with all the fields that i need to define a real live person. > > > > <table name="MEMBER" idMethod="none"> > > <column name="MEMBER_ID" primaryKey="true" required="true" > > type="INTEGER"/> > > <column name="NICK_NAME" size="35" type="VARCHAR"/> > > <column name="INITIALS" size="8" type="VARCHAR"/> > > <column name="FIRST_NAME" required="true" size="99" type="VARCHAR"/> > > <column name="MIDDLE_NAME" size="15" type="VARCHAR"/> > > <column name="LAST_NAME" required="true" size="99" type="VARCHAR"/> > > <column name="CONFIRM_VALUE" size="99" type="VARCHAR"/> > > <column name="MODIFIED" type="TIMESTAMP"/> > > <column name="CREATED" type="TIMESTAMP"/> > > <column name="LAST_LOGIN" type="TIMESTAMP"/> > > <column name="LAST_PASSWORD_CHANGE" type="TIMESTAMP"/> > > <column name="STREET" size="70" type="VARCHAR"/> > > <column name="HOUSE_NUMBER" size="5" type="VARCHAR"/> > > <column name="POSTAL_CODE" size="7" type="VARCHAR"/> > > <column name="CITY" size="35" type="VARCHAR"/> > > <column name="PROVINCE_ID" type="INTEGER"/> > > <column name="COUNTRY_ID" type="INTEGER"/> > > <column name="PHONE_NUMBER" size="15" type="VARCHAR"/> > > <column name="MOBILE_NUMBER" size="15" type="VARCHAR"/> > > <column name="EMAIL" size="99" type="VARCHAR"/> > > <column name="HOME_PAGE" size="35" type="VARCHAR"/> > > <column name="GENDER" size="1" type="BOOLEANINT" default="0"/> > > <column name="BIRTH_DATE" size="10" type="VARCHAR"/> > > <column name="PLACE_OF_BIRTH" size="35" type="VARCHAR"/> > > <column name="PAYMENT_METHOD" type="CHAR" size="1"/> > > <column name="MEMBERSHIP_TYPE" size="1" type="BOOLEANINT" > > default="0"/> > > <column name="BANK_ACCOUNT_NUMBER" type="VARCHAR" size="16"/> > > <column name="CARD_NUMBER" type="VARCHAR" size="16"/> > > <column name="CARD_HOLDER_NAME" type="VARCHAR" size="35"/> > > <column name="EXPIRATION_DATE" type="DATE"/> > > <column name="COMPANY_ID" type="INTEGER"/> > > <column name="POINTS" type="INTEGER" default="0"/> > > <column name="BRANCH_ID" type="INTEGER" description=""/> > > <column name="INFO" type="LONGVARCHAR" description=""/> > > <column name="LOOKING_FOR" type="LONGVARCHAR" description=""/> > > <column name="PHOTO_ID" type="INTEGER" description=""/> > > <index name="IX_USER_NAME"> > > <index-column name="FIRST_NAME"/> > > <index-column name="MIDDLE_NAME"/> > > <index-column name="LAST_NAME"/> > > </index> > > <index name="IX_MEMBER_PREFERENCE_BRANCH"> > > <index-column name="BRANCH_ID"/> > > </index> > > <foreign-key foreignTable="APP_USER"> > > <reference local="MEMBER_ID" foreign="USER_ID"/> > > </foreign-key> > > <foreign-key foreignTable="COMPANY"> > > <reference local="COMPANY_ID" foreign="COMPANY_ID"/> > > </foreign-key> > > <foreign-key foreignTable="PROVINCE"> > > <reference local="PROVINCE_ID" foreign="PROVINCE_ID"/> > > </foreign-key> > > <foreign-key foreignTable="COUNTRY"> > > <reference local="COUNTRY_ID" foreign="COUNTRY_ID"/> > > </foreign-key> > > <foreign-key foreignTable="BRANCH"> > > <reference local="BRANCH_ID" foreign="BRANCH_ID"/> > > </foreign-key> > > <foreign-key foreignTable="PHOTO"> > > <reference local="PHOTO_ID" foreign="PHOTO_ID"/> > > </foreign-key> > > </table> > > > > As you can see this Member has a one-to-one relation to APP_USER, which > > makes the connection to the security system. It might look like a dirty > > fix > > but i must say that i use this model in other situation outside turbine > > aswell. When defining our network security system i have a seperation in > > real live people and userid's aswell. My Person account can have several > > UserId's to log on to the network, but I remain to be the same person. I > > can > > log in to turbine as a standard user, a developer or an administrator. And > > i > > don't like to mix those users for logging purposes. > > > > This model works for me. > > > > > Question 1: I was under the impression that commenting out services in > > > tr.props and uncommenting them in fulcrum.properties enabled the fulcrum > > > services rather than the turbine services, is this wrong? > > > > As far as i can see the fullcrum properties file is loaded at the end of > > TR.props and will therefore overload the previously set properties. > > Therefor > > i think i'm using the Fullcrum properties. I actually set both to the new > > path in my sources. > > > > > Question 2: What's the equivalent of the MapBrokerService and the > > > PoolBrokerService in Fulcrum, or do we still need them in tdk-2.2.b1? > > > > I Don't know. There must be someone else able to answer this one. > > > > > Note:scarab is an excellant guide but as it uses turbine 3 it's a pain > > to > > > figure out what is applicable to turbine 2.x and what is not! > > > > It's a shame that there is no extensive standard sample for turbine like > > the > > PetShop example for J2EE. That would be so nice to have. Maybe we should > > initiate something like this. It would be better than any Howto in my > > eyes. > [SM] > > I agree...It's a shame but I think that both of the extensive open > source turbine projects (Scarab and Tambora) are both using turbine 3. > I think the newapp is good for starters (I learned a lot) but [SM] > it needs extending ;) > > > > Question 4: Do I still need to write adapters in 2.2-b1 (You mention > > that > > > this is not necessary)? > > > > If you go back to turbine security i think you do. I made a little > > adaptation to torque to generate this for me in 2.1 maybe that is still > > applicable. I would go fo Fulcrum though, as this is supposedly the new > > standard. > [SM] That's what I'd prefer to do aswell....;) > > > > Question 5: What services in turbine are redundant if fulcrum is used? > > > > Maybe do a little pattern match and find out :-) I think quite a lot as > > fullcrum has been derived from the original. Maybe someone could go > > through > > turbine and remove the old fulcrum stuff. > > > > > > > Question 6: Could somebody clear up this mess I've gotten into ;)? > > > > We are all in the same trouble here. I'm in a big mess as we are running a > > live application in 2.1 and i'm trying to adapt it to 2.2 but at the > > sametinme the still want additions made to 2.1. Getting a little confused > > here too. > > > [SM] > That's bigger trouble than I'm in.. ;) > > > Lot's of success and i hope my comments help a little, > > > [SM] likewise... > > Diederik de Groot > > Talon v.o.f > > > > > > > > > > > > > -----Original Message----- > > > From: Simon Moore [mailto:[EMAIL PROTECTED]] > > > Sent: donderdag 18 april 2002 8:23 > > > To: Turbine Users List > > > Subject: RE: Extending TurbineUser in TDK 2.2b1 > > > > > > > > > Hi Diederik, > > > > > > > > > I need to be able to reference the TurbineUser (and possibly extend it) > > > table in my other tables so I've tried the following: > > > > > > 1. The Scarab approach using fulcrum: > > > > > > <table name="TURBINE_USER" javaName="MyUserImpl" alias="TurbineUser" > > > baseClass="org.apache.fulcrum.security.impl.db.entity.TurbineUser" > > > > > basePeer="org.apache.fulcrum.security.impl.db.entity.TurbineUserPeer"> > > > <column name="USER_ID" primaryKey="true" required="true" > > > type="INTEGER"/> > > > </table> > > > > > > <table name="MY_TABLE" > > > > <column name="USER_ID" primaryKey="true" required="true" > > > type="INTEGER"/> > > > <column name="my_column" primaryKey="true" required="true" > > > type="TIMESTAMP"/> > > > > > > <foreign-key foreignTable="TURBINE_USER"> > > > <reference local="USER_ID" foreign="USER_ID"/> > > > </foreign-key> > > > </table> > > > > > > > > > Torque created all the OM objects and everything compile correctly! > > > > > > I then commented out the security service entries in my tr.props > > > and enabled > > > them in Fulcrum.properties > > > making reference to MyUserImpl and MyUserImplPeer where appropriate... > > > > > > When I tried to access http://localhost:8080/secur/servlet/secur I got a > > > horrible exception complaining that Turbine (the turbine broker service) > > > could not find the security service. > > > > > > Question 1: I was under the impression that commenting out services in > > > tr.props and uncommenting them in fulcrum.properties enabled the fulcrum > > > services rather than the turbine services, is this wrong? > > > Question 2: What's the equivalent of the MapBrokerService and the > > > PoolBrokerService in Fulcrum, or do we still need them in tdk-2.2.b1? > > > > > > Question 3: I noticed in scarab's tr.props that there was a > > > fulcrum database > > > service but I can't find this in tdk-2.2-b. > > > > > > Note:scarab is an excellant guide but as it uses turbine 3 it's a pain > > to > > > figure out what is applicable to turbine 2.x and what is not! > > > > > > > > > As you can see, There are various questions that I need clearing up as > > > regards the change over to using fulcrum (it's not as simple as > > > changing the > > > import statements) > > > > > > After this first attempt I then decided to revert to using > > > turbines security > > > service: > > > > > > <table name="TURBINE_USER" javaName="MyUserImpl" alias="TurbineUser" > > > baseClass="org.apache.turbine.om.security.TurbineUser" > > > basePeer="org.apache.turbine.om.security.peer.TurbineUserPeer"> > > > <column name="USER_ID" primaryKey="true" required="true" > > > type="INTEGER"/> > > > </table> > > > > > > <table name="MY_TABLE" > > > > <column name="USER_ID" primaryKey="true" required="true" > > > type="INTEGER"/> > > > <column name="my_column" primaryKey="true" required="true" > > > type="TIMESTAMP"/> > > > > > > <foreign-key foreignTable="TURBINE_USER"> > > > <reference local="USER_ID" foreign="USER_ID"/> > > > </foreign-key> > > > </table> > > > > > > Torque created all the om code but I got many compilation errors > > > complaining > > > about not find methods in TurbineUser/Peer etc... > > > > > > I didn't write any adapters as per the extended-users howto > > > because i wasn't > > > extending the user-table (for the moment), I just wanted to > > > reference it in > > > my other tables. > > > > > > Question 4: Do I still need to write adapters in 2.2-b1 (You mention > > that > > > this is not necessary)? > > > Question 5: What services in turbine are redundant if fulcrum is used? > > > Question 6: Could somebody clear up this mess I've gotten into ;)? > > > > > > > > > I appreciate any advice you or others can offer. > > > > > > Saimon > > > > > > > > > > > > > -----Mensaje original----- > > > > De: Diederik de Groot [SMTP:[EMAIL PROTECTED]] > > > > Enviado el: jueves 21 de marzo de 2002 20:02 > > > > Para: Turbine Users List > > > > Asunto: RE: Extending TurbineUser in TDK 2.2b1 > > > > > > > > > > > > >Hi Cameron, > > > > > > > > >You might have seen that i too have been stuggling under the previous > > > > >version to extend the User. I had everything working fine until 2.2b1 > > > > came > > > > >about. I found you van at least do without the TurbineUserAdapters > > now > > > > >because you can directly access the extended TurbineUsers. > > > That is what i > > > > >have done at least. I need the Aliased table only for refering to > > > > >foreignkeys. I know it's not a good solution but it works for me. > > > > > > > > >I'm not a hunderd percent sure this is the way it was meant to > > > be but it > > > > >seems to work fine. > > > > >Just Change everything over to torque where criteria are > > > involved and you > > > > >seem to be fine. > > > > >I can't answer your actually question about things being in flux at > > the > > > > >moment. Let's see what the creators say :-) > > > > >Lots of success, > > > > > > > > >Diederik de Groot > > > > > > > > > -----Original Message----- > > > > > From: [EMAIL PROTECTED] > > > > > [mailto:[EMAIL PROTECTED]]On Behalf Of > > > Cameron Cole > > > > > Sent: donderdag 21 maart 2002 19:26 > > > > > To: Turbine Users List > > > > > Subject: Extending TurbineUser in TDK 2.2b1 > > > > > > > > > > > > > > > Hello again everyone, > > > > > > > > > > Previously with version 2.1 I successfully extended > > > TurbineUser but ran > > > > > into some difficulty when attempting to add a foreign key to > > > my extended > > > > > user so I could place them on teams. I decided to put the > > > project aside > > > > > for a bit and return when 2.2b1 came out. Well 2.2b1 has come out > > > > > (Congrats btw! :) and I have again started to revisit the problem > > and > > > > > have run into a few interesting issues. TurbineUserPeer extends the > > > > > org.apache.turbine.om.peer.BasePeer where as all of my om objects > > > > > (including the ExtendedBaseUser) extend the torque.util.BasePeer. As > > > > > such when I attempt to compile my ExtendedBasePeer all of the > > > > > doSelect(Criteria, DBConnection) methods no longer compile b/c the > > > > > turbine BasePeer expects a turbine Criteria and my generated > > > > > BaseUserPeer is passing a torque criteria. This is also true of the > > > > > retrieveByPK methods. > > > > > > > > > > I have two main questions: > > > > > > > > > > 1. Is the user/security system in a state of flux and should I just > > > > > holdoff? If so, where can I get more information? (I have read the > > > > > archives, but haven't seen any conclusions as yet) > > > > > > > > > > 2. Is there another/better way I could go about this? If there is a > > > > > newer/better way to do this, and someone can kick me in the right > > > > > direction I'll try to document my trials and tribulations and > > > see if it > > > > > makes a reasonable how-to... (or how-not-to :) I understand from the > > > > > archives and current mail threads that the security system is > > > undergoing > > > > > review and rewrite, but I don't know where to get more > > information... > > > > > > > > > > Thanks, > > > > > > > > > > -cam. > > > > > > > > > > -- > > > > > To unsubscribe, e-mail: > > > > > <mailto:[EMAIL PROTECTED]> > > > > > For additional commands, e-mail: > > > > > <mailto:[EMAIL PROTECTED]> > > > > > > > > > > > > > > > > > -- > > > > To unsubscribe, e-mail: > > > > <mailto:[EMAIL PROTECTED]> > > > > For additional commands, e-mail: > > > > <mailto:[EMAIL PROTECTED]> > > > > > > -- > > > To unsubscribe, e-mail: > > > <mailto:[EMAIL PROTECTED]> > > > For additional commands, e-mail: > > > <mailto:[EMAIL PROTECTED]> > > > > > > > > > -- > > To unsubscribe, e-mail: > > <mailto:[EMAIL PROTECTED]> > > For additional commands, e-mail: > > <mailto:[EMAIL PROTECTED]> > > -- > To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> > For additional commands, e-mail: <mailto:[EMAIL PROTECTED]> > > -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
