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]