"David Wynter" <[EMAIL PROTECTED]> writes:
This is, afaik a shortcoming of Torque. You can't reference a table outside
your current schema.xml file.
I ended up having about 60 table definitions in a single schema.xml file
because of this. Speaking of horrors...
Regards
Henning
>Another quick question on the example below.
>Assuming the schema below goes into your
>"package="de.intermeta.myapp.security.om"" package and you have your
>application om classes in say "package="de.intermeta.myapp.om"" then how do
>you reference your MYAPP_USER as a foreign key in ylour application schema
>xml file
>i.e. in a table specification in your application schema declaration you
>have
> <foreign-key foreignTable="MYAPP_USER">
> <reference local="creator_id" foreign="USER_ID"/>
> </foreign-key>
>Will this work?
>Thanks
>David
>-----Original Message-----
>From: Henning P. Schmiedehausen [mailto:[EMAIL PROTECTED]
>Sent: 02 July 2003 14:16
>To: [EMAIL PROTECTED]
>Subject: Re: Extending user in T2.3
>Zamek <[EMAIL PROTECTED]> writes:
>>I would like to get a working TR.props file or a part of TR.prop
>>for compensation, I will correct, and comment the documentation.
>Ok, the following is cut life out of the application running in the
>window behind this one...
>--- cut ---
>services.SecurityService.classname=org.apache.turbine.services.security.torq
>ue.TorqueSecurityService
>[...]
># -------------------------------------------------------------------
>#
># S E C U R I T Y S E R V I C E
>#
># -------------------------------------------------------------------
># Default: org.apache.turbine.services.security.db.DBUserManager
>services.SecurityService.user.manager =
>org.apache.turbine.services.security.torque.TorqueUserManager
># This is the class that implements the ACL interface.
>services.SecurityService.acl.class =
>org.apache.turbine.util.security.TurbineAccessControlList
>#
># Configure Object Classes in the Security Service
>#
># Custom User
>services.SecurityService.user.class = de.intermeta.myapp.security.MyAppUser
>services.SecurityService.group.class =
>org.apache.turbine.services.security.torque.TorqueGroup
>services.SecurityService.permission.class =
>org.apache.turbine.services.security.torque.TorquePermission
>services.SecurityService.role.class =
>org.apache.turbine.services.security.torque.TorqueRole
>#
># Configure Peers for the Torque Security Service
>#
>services.SecurityService.torque.userPeer.class =
>de.intermeta.myapp.security.om.MyappUserPeer
>services.SecurityService.torque.groupPeer.class =
>de.intermeta.myapp.security.om.MyappGroupPeer
>services.SecurityService.torque.permissionPeer.class =
>de.intermeta.myapp.security.om.MyappPermissionPeer
>services.SecurityService.torque.rolePeer.class =
>de.intermeta.myapp.security.om.MyappRolePeer
>[...]
>--- cut ---
>--- cut --- myapp-schema.xml ---
><?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
><!DOCTYPE database SYSTEM
>"http://jakarta.apache.org/turbine/dtd/database_3_1.dtd">
><database name="myapp"
> defaultIdMethod="idbroker"
> defaultJavaType="primitive"
> defaultJavaNamingMethod="underscore"
> package="de.intermeta.myapp.security.om">
> <table name="MYAPP_USER" idMethod="idbroker">
> <column name="USER_ID" required="true" primaryKey="true"
>type="INTEGER"/>
> <column name="LOGIN_NAME" required="true" size="64" type="VARCHAR"
>javaName="UserName"/>
> <column name="PASSWORD_VALUE" required="true" size="16" type="VARCHAR"
>javaName="Password"/>
> <column name="FIRST_NAME" required="true" size="64" type="VARCHAR"/>
> <column name="LAST_NAME" required="true" size="64" type="VARCHAR"/>
> <column name="EMAIL" size="64" type="VARCHAR"/>
> <column name="CONFIRM_VALUE" size="16" type="VARCHAR"
>javaName="Confirmed"/>
> <column name="MODIFIED" type="TIMESTAMP" size="0"/>
> <column name="CREATED" type="TIMESTAMP" size="0" javaName="CreateDate"/>
> <column name="LAST_LOGIN" type="TIMESTAMP" size="0"/>
> <column name="OBJECTDATA" type="VARBINARY"/>
><!-- Myapp Erweiterungen -->
> <!-- Aktuell ausgewaehlte Sprachversion -->
> <column name="MYAPP_LANGUAGE_ID" type="INTEGER" javaName="LanguageId"/>
> <!-- Aktuell ausgewaehlte Gruppe -->
> <column name="MYAPP_GRUPPEN_ID" type="INTEGER" javaName="GruppenId"/>
> <unique>
> <unique-column name="LOGIN_NAME"/>
> </unique>
> </table>
> <table name="MYAPP_PERMISSION" idMethod="idbroker">
> <column name="PERMISSION_ID" required="true" primaryKey="true"
>type="INTEGER"/>
> <column name="PERMISSION_NAME" required="true" size="64" type="VARCHAR"
>javaName="Name"/>
> <unique>
> <unique-column name="PERMISSION_NAME"/>
> </unique>
> </table>
> <table name="MYAPP_ROLE" idMethod="idbroker">
> <column name="ROLE_ID" required="true" primaryKey="true"
>type="INTEGER"/>
> <column name="ROLE_NAME" required="true" size="64" type="VARCHAR"
>javaName="Name"/>
> <unique>
> <unique-column name="ROLE_NAME"/>
> </unique>
> </table>
> <table name="MYAPP_GROUP" idMethod="idbroker">
> <column name="GROUP_ID" required="true" primaryKey="true"
>type="INTEGER"/>
> <column name="GROUP_NAME" required="true" type="VARCHAR" size="64"
>javaName="Name"/>
> <unique>
> <unique-column name="GROUP_NAME"/>
> </unique>
> </table>
> <table name="TURBINE_ROLE_PERMISSION">
> <column name="ROLE_ID" required="true" primaryKey="true"
>type="INTEGER"/>
> <column name="PERMISSION_ID" required="true" primaryKey="true"
>type="INTEGER"/>
> <foreign-key foreignTable="MYAPP_ROLE">
> <reference local="ROLE_ID" foreign="ROLE_ID"/>
> </foreign-key>
> <foreign-key foreignTable="MYAPP_PERMISSION">
> <reference local="PERMISSION_ID" foreign="PERMISSION_ID"/>
> </foreign-key>
> </table>
> <table name="TURBINE_USER_GROUP_ROLE">
> <column name="USER_ID" required="true" primaryKey="true"
>type="INTEGER"/>
> <column name="GROUP_ID" required="true" primaryKey="true"
>type="INTEGER"/>
> <column name="ROLE_ID" required="true" primaryKey="true"
>type="INTEGER"/>
> <foreign-key foreignTable="MYAPP_USER">
> <reference local="USER_ID" foreign="USER_ID"/>
> </foreign-key>
> <foreign-key foreignTable="MYAPP_GROUP">
> <reference local="GROUP_ID" foreign="GROUP_ID"/>
> </foreign-key>
> <foreign-key foreignTable="MYAPP_ROLE">
> <reference local="ROLE_ID" foreign="ROLE_ID"/>
> </foreign-key>
> </table>
></database>
>--- cut --- myapp-schema.xml ---
>--- cut --- MyAppUser.java ---
>package de.intermeta.myapp.security;
>import org.apache.turbine.services.security.torque.TorqueUser;
>import de.intermeta.myapp.security.om.MyappUser;
>public class MyAppUser
> extends TorqueUser
>{
> /**
> * Constructor.
> */
> public MyAppUser()
> {
> super();
> }
> /**
> * This Constructor is used when the UserPeerManager
> * has retrieved a list of Database Objects from the peer and
> * must 'wrap' them into TorqueRole Objects. You should not use it
>directly!
> *
> * @param obj An Object from the peer
> */
> public MyAppUser(Persistent obj)
> {
> super(obj);
> }
> public int getLanguageId()
> {
> return ((MyappUser) getPersistentObj()).getLanguageId();
> }
> public void setLanguageId(int languageId)
> {
> ((MyappUser) getPersistentObj()).setLanguageId(languageId);
> }
> public int getGruppenId()
> {
> return ((MyappUser) getPersistentObj()).getGruppenId();
> }
> public void setGruppenId(int gruppenId)
> {
> ((MyappUser) getPersistentObj()).setGruppenId(gruppenId);
> }
>}
>--- cut --- MyAppUser.java ---
>- Run the schema, you should get de.intermeta.myapp.security.om.<lots of
>classes>
>- add de.intermeta.maxpatch.myapp.security.MyAppUser.java
>- configure Turbine as described above
>- create the tables with maven torque:sql, put them into a database (I use
>PostgreSQL).
>Insert some data into the tables:
>--- cut ---
>INSERT INTO MYAPP_USER
>(USER_ID,LOGIN_NAME,PASSWORD_VALUE,FIRST_NAME,LAST_NAME)
> VALUES (1,'turbine','turbine','Mr.','Turbine');
>INSERT INTO MYAPP_PERMISSION (PERMISSION_ID,PERMISSION_NAME)
> VALUES (1,'Myapp');
>INSERT INTO MYAPP_ROLE (ROLE_ID,ROLE_NAME)
> VALUES (1,'MyappAdmin');
>INSERT INTO MYAPP_GROUP (GROUP_ID,GROUP_NAME)
> VALUES (1,'global');
>INSERT INTO MYAPP_GROUP (GROUP_ID,GROUP_NAME)
> VALUES (2,'Myapp');
>INSERT INTO TURBINE_ROLE_PERMISSION (ROLE_ID,PERMISSION_ID)
> VALUES (1,1);
>INSERT INTO TURBINE_USER_GROUP_ROLE (USER_ID,GROUP_ID,ROLE_ID)
> VALUES (1,2,1);
>--- cut ---
>Now you should be able to log on with user "turbine" , pw "turbine".
> Regards
> Henning
>--
>Dipl.-Inf. (Univ.) Henning P. Schmiedehausen INTERMETA GmbH
>[EMAIL PROTECTED] +49 9131 50 654 0 http://www.intermeta.de/
>Java, perl, Solaris, Linux, xSP Consulting, Web Services
>freelance consultant -- Jakarta Turbine Development -- hero for hire
>--- Quote of the week: "It is pointless to tell people anything when
>you know that they won't process the message." --- Jonathan Revusky
>---------------------------------------------------------------------
>To unsubscribe, e-mail: [EMAIL PROTECTED]
>For additional commands, e-mail: [EMAIL PROTECTED]
>---------------------------------------------------------------------
>To unsubscribe, e-mail: [EMAIL PROTECTED]
>For additional commands, e-mail: [EMAIL PROTECTED]
--
Dipl.-Inf. (Univ.) Henning P. Schmiedehausen INTERMETA GmbH
[EMAIL PROTECTED] +49 9131 50 654 0 http://www.intermeta.de/
Java, perl, Solaris, Linux, xSP Consulting, Web Services
freelance consultant -- Jakarta Turbine Development -- hero for hire
--- Quote of the week: "It is pointless to tell people anything when
you know that they won't process the message." --- Jonathan Revusky
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]