Many, many changes to do with making database layer security.
This commit is contained in:
parent
e7a4961e9b
commit
7a977d5acd
5 changed files with 875 additions and 626 deletions
|
|
@ -8,8 +8,8 @@
|
|||
Transform ADL into C# entity classes
|
||||
|
||||
$Author: sb $
|
||||
$Revision: 1.16 $
|
||||
$Date: 2009-02-02 18:13:39 $
|
||||
$Revision: 1.17 $
|
||||
$Date: 2009-02-06 12:08:28 $
|
||||
-->
|
||||
|
||||
<!-- WARNING WARNING WARNING: Do NOT reformat this file!
|
||||
|
|
@ -40,7 +40,11 @@
|
|||
|
||||
<!-- the name and version of the product being built -->
|
||||
<xsl:param name="product-version" select="'Application Description Language Framework'"/>
|
||||
|
||||
|
||||
<!-- Whether to authenticate at application or at database layer.
|
||||
If not 'Application', then 'Database'. -->
|
||||
<xsl:param name="authentication-layer" select="Application"/>
|
||||
|
||||
<!-- strings used in normalising names for constants.
|
||||
NOTE NOTE NOTE:
|
||||
this deliberately converts space and punctuation to underscore -->
|
||||
|
|
@ -66,7 +70,7 @@
|
|||
// (c)2007 Cygnet Solutions Ltd
|
||||
//
|
||||
// Automatically generated from application description using
|
||||
// adl2entityclass.xsl revision <xsl:value-of select="substring( '$Revision: 1.16 $', 10)"/>
|
||||
// adl2entityclass.xsl revision <xsl:value-of select="substring( '$Revision: 1.17 $', 10)"/>
|
||||
//
|
||||
// <xsl:value-of select="/adl:application/@revision"/>
|
||||
//
|
||||
|
|
@ -93,7 +97,7 @@
|
|||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Automatically generated from description of group <xsl:value-of select="@name"/>
|
||||
/// using adl2entityclass.xsl revision <xsl:value-of select="substring( '$Revision: 1.16 $', 10)"/>.
|
||||
/// using adl2entityclass.xsl revision <xsl:value-of select="substring( '$Revision: 1.17 $', 10)"/>.
|
||||
///
|
||||
/// DO NOT EDIT THIS FILE!
|
||||
/// </remarks>
|
||||
|
|
@ -119,7 +123,7 @@
|
|||
// (c)2007 Cygnet Solutions Ltd
|
||||
//
|
||||
// Automatically generated from application description using
|
||||
// adl2entityclass.xsl revision <xsl:value-of select="substring( '$Revision: 1.16 $', 10)"/>
|
||||
// adl2entityclass.xsl revision <xsl:value-of select="substring( '$Revision: 1.17 $', 10)"/>
|
||||
//
|
||||
// <xsl:value-of select="/adl:application/@revision"/>
|
||||
//
|
||||
|
|
@ -145,7 +149,7 @@
|
|||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Automatically generated from description of entity <xsl:value-of select="@name"/>
|
||||
/// using adl2entityclass.xsl revision <xsl:value-of select="substring( '$Revision: 1.16 $', 10)"/>.
|
||||
/// using adl2entityclass.xsl revision <xsl:value-of select="substring( '$Revision: 1.17 $', 10)"/>.
|
||||
/// Note that manually maintained parts of this class may be defined in
|
||||
/// a separate file called <xsl:value-of select="@name"/>.manual.cs, q.v.
|
||||
///
|
||||
|
|
@ -288,13 +292,13 @@
|
|||
<xsl:when test="@type='date'">
|
||||
<!-- if what we've got is just a date, we only want to see the date part of it -->
|
||||
if ( <xsl:value-of select="@name"/> != null){
|
||||
result.Append(<xsl:value-of select="@name"/>.ToString( "d"));
|
||||
result.Append(((DateTime)<xsl:value-of select="@name"/>).ToShortDateString());
|
||||
}
|
||||
</xsl:when>
|
||||
<xsl:when test="@type='time'">
|
||||
<!-- if what we've got is just a time, we only want to see the time part of it -->
|
||||
if ( <xsl:value-of select="@name"/> != null){
|
||||
result.Append(<xsl:value-of select="@name"/>.ToString( "t"));
|
||||
result.Append(((DateTime)<xsl:value-of select="@name"/>).ToShortTimeString());
|
||||
}
|
||||
</xsl:when>
|
||||
<xsl:when test="@required = 'true' and (@type = 'integer' or @type = 'real' or @type = 'boolean' or @type = 'money')">
|
||||
|
|
@ -331,29 +335,37 @@
|
|||
public override string NoDeleteReason {
|
||||
get {
|
||||
string result = null;
|
||||
<xsl:if test="adl:property[@type='list']|adl:property[@type='link']">
|
||||
StringBuilder bob = new StringBuilder();
|
||||
<!-- TODO: we ought to start worrying about internationalisation NOW, not later! -->
|
||||
<xsl:choose>
|
||||
<xsl:when test="$authentication-layer='Application'">
|
||||
<xsl:if test="adl:property[@type='list']|adl:property[@type='link']">
|
||||
StringBuilder bob = new StringBuilder();
|
||||
<!-- TODO: we ought to start worrying about internationalisation NOW, not later! -->
|
||||
|
||||
<xsl:for-each select="adl:property[@type='list']|adl:property[@type='link']">
|
||||
<xsl:choose>
|
||||
<xsl:when test="@cascade='manual'"/>
|
||||
<xsl:when test="@cascade='all'"/>
|
||||
<xsl:when test="@cascade='all-delete-orphan'"/>
|
||||
<xsl:when test="@cascade='delete'"/>
|
||||
<xsl:when test="@concrete='false'"/>
|
||||
<xsl:otherwise>
|
||||
if ( <xsl:value-of select="concat( ' _', @name)"/> != null && <xsl:value-of select="concat( ' _', @name)"/>.Count > 0) {
|
||||
bob.AppendFormat("Cannot delete this <xsl:value-of select="../@name"/> as it has {0} dependent <xsl:value-of select="@name"/>; ", <xsl:value-of select="concat( ' _', @name)"/>.Count);
|
||||
}
|
||||
<xsl:for-each select="adl:property[@type='list']|adl:property[@type='link']">
|
||||
<xsl:choose>
|
||||
<xsl:when test="@cascade='manual'"/>
|
||||
<xsl:when test="@cascade='all'"/>
|
||||
<xsl:when test="@cascade='all-delete-orphan'"/>
|
||||
<xsl:when test="@cascade='delete'"/>
|
||||
<xsl:when test="@concrete='false'"/>
|
||||
<xsl:otherwise>
|
||||
if ( <xsl:value-of select="concat( ' _', @name)"/> != null && <xsl:value-of select="concat( ' _', @name)"/>.Count > 0) {
|
||||
bob.AppendFormat("Cannot delete this <xsl:value-of select="../@name"/> as it has {0} dependent <xsl:value-of select="@name"/>; ", <xsl:value-of select="concat( ' _', @name)"/>.Count);
|
||||
}
|
||||
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:for-each>
|
||||
if (bob.Length > 0) {
|
||||
result = bob.ToString();
|
||||
}
|
||||
</xsl:if>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:for-each>
|
||||
if (bob.Length > 0) {
|
||||
result = bob.ToString();
|
||||
}
|
||||
</xsl:if>
|
||||
</xsl:when>
|
||||
<xsl:when test="$authentication-layer='Database'">
|
||||
/* unfortunately it's not currently possible to compute no-delete reasons
|
||||
* on 'Database' authenticated applications */
|
||||
</xsl:when>
|
||||
</xsl:choose>
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue