Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
04/30/09 15:01:30 (16 years ago)
Author:
svonolfe
Message:

Finished security server (#537)

Location:
trunk/sources/HeuristicLab.Security.ADODataAccess/3.2
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Security.ADODataAccess/3.2/PermissionAdapter.cs

    r1720 r1724  
    2828
    2929        return grantedPermissionsAdapter;
     30      }
     31    }
     32
     33    private IUserGroupAdapter userGroupAdapter;
     34
     35    private IUserGroupAdapter UserGroupAdapter {
     36      get {
     37        if (userGroupAdapter == null)
     38          this.Session.GetDataAdapter<UserGroup, IUserGroupAdapter>();
     39
     40        return userGroupAdapter;
    3041      }
    3142    }
     
    89100        return perm;
    90101      } else {
    91         return null;
     102        ICollection<UserGroup> groups =
     103          UserGroupAdapter.MemberOf(permissionId);
     104
     105        GrantedPermission perm = null;
     106
     107        if (groups != null) {
     108          foreach(UserGroup group in groups) {
     109            perm = getPermission(group.Id, permissionId, entityId);
     110
     111            if (perm != null)
     112              break;
     113          }
     114        }
     115
     116        return perm;
    92117      }
    93118    }
  • trunk/sources/HeuristicLab.Security.ADODataAccess/3.2/UserGroupAdapter.cs

    r1656 r1724  
    125125    }
    126126
    127     public ICollection<UserGroup> MemberOf(PermissionOwner permOwner) {
    128       throw new NotImplementedException();
     127    public ICollection<UserGroup> MemberOf(Guid permissionOwnerId) {
     128      return base.FindMultiple(
     129        delegate() {
     130          return Adapter.GetDataByMemberOf(permissionOwnerId);
     131        }
     132      );
    129133    }
    130134
  • trunk/sources/HeuristicLab.Security.ADODataAccess/3.2/dsSecurity.Designer.cs

    r1720 r1724  
    32453245        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
    32463246        private void InitCommandCollection() {
    3247             this._commandCollection = new global::System.Data.SqlClient.SqlCommand[2];
     3247            this._commandCollection = new global::System.Data.SqlClient.SqlCommand[3];
    32483248            this._commandCollection[0] = new global::System.Data.SqlClient.SqlCommand();
    32493249            this._commandCollection[0].Connection = this.Connection;
     
    32553255            this._commandCollection[1].CommandType = global::System.Data.CommandType.Text;
    32563256            this._commandCollection[1].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Id", global::System.Data.SqlDbType.UniqueIdentifier, 16, global::System.Data.ParameterDirection.Input, 0, 0, "PermissionOwnerId", global::System.Data.DataRowVersion.Current, false, null, "", "", ""));
     3257            this._commandCollection[2] = new global::System.Data.SqlClient.SqlCommand();
     3258            this._commandCollection[2].Connection = this.Connection;
     3259            this._commandCollection[2].CommandText = "SELECT * FROM UserGroup WHERE EXISTS (SELECT * FROM PermissionOwner_UserGroup WHE" +
     3260                "RE PermissionOwner_UserGroup.PermissionOwnerId = @PermissionOwnerId AND Permissi" +
     3261                "onOwner_UserGroup.UserGroupId = UserGroup.PermissionOwnerId)";
     3262            this._commandCollection[2].CommandType = global::System.Data.CommandType.Text;
     3263            this._commandCollection[2].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@PermissionOwnerId", global::System.Data.SqlDbType.UniqueIdentifier, 16, global::System.Data.ParameterDirection.Input, 0, 0, "PermissionOwnerId", global::System.Data.DataRowVersion.Current, false, null, "", "", ""));
    32573264        }
    32583265       
     
    32983305            this.Adapter.SelectCommand = this.CommandCollection[1];
    32993306            this.Adapter.SelectCommand.Parameters[0].Value = ((System.Guid)(Id));
     3307            dsSecurity.UserGroupDataTable dataTable = new dsSecurity.UserGroupDataTable();
     3308            this.Adapter.Fill(dataTable);
     3309            return dataTable;
     3310        }
     3311       
     3312        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     3313        [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")]
     3314        [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Fill, false)]
     3315        public virtual int FillByMemberOf(dsSecurity.UserGroupDataTable dataTable, System.Guid PermissionOwnerId) {
     3316            this.Adapter.SelectCommand = this.CommandCollection[2];
     3317            this.Adapter.SelectCommand.Parameters[0].Value = ((System.Guid)(PermissionOwnerId));
     3318            if ((this.ClearBeforeFill == true)) {
     3319                dataTable.Clear();
     3320            }
     3321            int returnValue = this.Adapter.Fill(dataTable);
     3322            return returnValue;
     3323        }
     3324       
     3325        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     3326        [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")]
     3327        [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, false)]
     3328        public virtual dsSecurity.UserGroupDataTable GetDataByMemberOf(System.Guid PermissionOwnerId) {
     3329            this.Adapter.SelectCommand = this.CommandCollection[2];
     3330            this.Adapter.SelectCommand.Parameters[0].Value = ((System.Guid)(PermissionOwnerId));
    33003331            dsSecurity.UserGroupDataTable dataTable = new dsSecurity.UserGroupDataTable();
    33013332            this.Adapter.Fill(dataTable);
  • trunk/sources/HeuristicLab.Security.ADODataAccess/3.2/dsSecurity.xsd

    r1720 r1724  
    156156                </SelectCommand>
    157157              </DbSource>
     158              <DbSource ConnectionRef="HeuristicLab_SecurityConnectionString (Settings)" DbObjectName="[HeuristicLab.Security].dbo.UserGroup" DbObjectType="Table" FillMethodModifier="Public" FillMethodName="FillByMemberOf" GenerateMethods="Both" GenerateShortCommands="true" GeneratorGetMethodName="GetDataByMemberOf" GeneratorSourceName="FillByMemberOf" GetMethodModifier="Public" GetMethodName="GetDataByMemberOf" QueryType="Rowset" ScalarCallRetval="System.Object, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" UseOptimisticConcurrency="true" UserGetMethodName="GetDataByMemberOf" UserSourceName="FillByMemberOf">
     159                <SelectCommand>
     160                  <DbCommand CommandType="Text" ModifiedByUser="true">
     161                    <CommandText>SELECT * FROM UserGroup WHERE EXISTS (SELECT * FROM PermissionOwner_UserGroup WHERE PermissionOwner_UserGroup.PermissionOwnerId = @PermissionOwnerId AND PermissionOwner_UserGroup.UserGroupId = UserGroup.PermissionOwnerId)</CommandText>
     162                    <Parameters>
     163                      <Parameter AllowDbNull="false" AutogeneratedName="PermissionOwnerId" ColumnName="PermissionOwnerId" DataSourceName="[HeuristicLab.Security].dbo.UserGroup" DataTypeServer="uniqueidentifier" DbType="Guid" Direction="Input" ParameterName="@PermissionOwnerId" Precision="0" ProviderType="UniqueIdentifier" Scale="0" Size="16" SourceColumn="PermissionOwnerId" SourceColumnNullMapping="false" SourceVersion="Current" />
     164                    </Parameters>
     165                  </DbCommand>
     166                </SelectCommand>
     167              </DbSource>
    158168            </Sources>
    159169          </TableAdapter>
     
    442452          <xs:complexType>
    443453            <xs:sequence>
    444               <xs:element name="PermissionId" msdata:DataType="System.Guid, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" msprop:Generator_UserColumnName="PermissionId" msprop:Generator_ColumnVarNameInTable="columnPermissionId" msprop:Generator_ColumnPropNameInRow="PermissionId" msprop:Generator_ColumnPropNameInTable="PermissionIdColumn" type="xs:string" />
    445               <xs:element name="PermissionOwnerId" msdata:DataType="System.Guid, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" msprop:Generator_UserColumnName="PermissionOwnerId" msprop:Generator_ColumnVarNameInTable="columnPermissionOwnerId" msprop:Generator_ColumnPropNameInRow="PermissionOwnerId" msprop:Generator_ColumnPropNameInTable="PermissionOwnerIdColumn" type="xs:string" />
    446               <xs:element name="EntityId" msdata:DataType="System.Guid, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" msprop:Generator_UserColumnName="EntityId" msprop:Generator_ColumnVarNameInTable="columnEntityId" msprop:Generator_ColumnPropNameInRow="EntityId" msprop:Generator_ColumnPropNameInTable="EntityIdColumn" type="xs:string" />
     454              <xs:element name="PermissionId" msdata:DataType="System.Guid, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" msprop:Generator_UserColumnName="PermissionId" msprop:Generator_ColumnPropNameInRow="PermissionId" msprop:Generator_ColumnVarNameInTable="columnPermissionId" msprop:Generator_ColumnPropNameInTable="PermissionIdColumn" type="xs:string" />
     455              <xs:element name="PermissionOwnerId" msdata:DataType="System.Guid, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" msprop:Generator_UserColumnName="PermissionOwnerId" msprop:Generator_ColumnPropNameInRow="PermissionOwnerId" msprop:Generator_ColumnVarNameInTable="columnPermissionOwnerId" msprop:Generator_ColumnPropNameInTable="PermissionOwnerIdColumn" type="xs:string" />
     456              <xs:element name="EntityId" msdata:DataType="System.Guid, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" msprop:Generator_UserColumnName="EntityId" msprop:Generator_ColumnPropNameInRow="EntityId" msprop:Generator_ColumnVarNameInTable="columnEntityId" msprop:Generator_ColumnPropNameInTable="EntityIdColumn" type="xs:string" />
    447457            </xs:sequence>
    448458          </xs:complexType>
     
    451461          <xs:complexType>
    452462            <xs:sequence>
    453               <xs:element name="PermissionOwnerId" msdata:DataType="System.Guid, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" msprop:Generator_UserColumnName="PermissionOwnerId" msprop:Generator_ColumnVarNameInTable="columnPermissionOwnerId" msprop:Generator_ColumnPropNameInRow="PermissionOwnerId" msprop:Generator_ColumnPropNameInTable="PermissionOwnerIdColumn" type="xs:string" />
     463              <xs:element name="PermissionOwnerId" msdata:DataType="System.Guid, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" msprop:Generator_UserColumnName="PermissionOwnerId" msprop:Generator_ColumnPropNameInRow="PermissionOwnerId" msprop:Generator_ColumnVarNameInTable="columnPermissionOwnerId" msprop:Generator_ColumnPropNameInTable="PermissionOwnerIdColumn" type="xs:string" />
    454464            </xs:sequence>
    455465          </xs:complexType>
     
    458468          <xs:complexType>
    459469            <xs:sequence>
    460               <xs:element name="PermissionOwnerId" msdata:DataType="System.Guid, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" msprop:Generator_UserColumnName="PermissionOwnerId" msprop:Generator_ColumnVarNameInTable="columnPermissionOwnerId" msprop:Generator_ColumnPropNameInRow="PermissionOwnerId" msprop:Generator_ColumnPropNameInTable="PermissionOwnerIdColumn" type="xs:string" />
    461               <xs:element name="Password" msprop:Generator_UserColumnName="Password" msprop:Generator_ColumnPropNameInRow="Password" msprop:Generator_ColumnVarNameInTable="columnPassword" msprop:Generator_ColumnPropNameInTable="PasswordColumn" minOccurs="0">
    462                 <xs:simpleType>
    463                   <xs:restriction base="xs:string">
    464                     <xs:maxLength value="2147483647" />
    465                   </xs:restriction>
    466                 </xs:simpleType>
    467               </xs:element>
    468               <xs:element name="Login" msprop:Generator_UserColumnName="Login" msprop:Generator_ColumnPropNameInRow="Login" msprop:Generator_ColumnVarNameInTable="columnLogin" msprop:Generator_ColumnPropNameInTable="LoginColumn" minOccurs="0">
    469                 <xs:simpleType>
    470                   <xs:restriction base="xs:string">
    471                     <xs:maxLength value="2147483647" />
    472                   </xs:restriction>
    473                 </xs:simpleType>
    474               </xs:element>
    475               <xs:element name="MailAddress" msprop:Generator_UserColumnName="MailAddress" msprop:Generator_ColumnPropNameInRow="MailAddress" msprop:Generator_ColumnVarNameInTable="columnMailAddress" msprop:Generator_ColumnPropNameInTable="MailAddressColumn" minOccurs="0">
     470              <xs:element name="PermissionOwnerId" msdata:DataType="System.Guid, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" msprop:Generator_UserColumnName="PermissionOwnerId" msprop:Generator_ColumnPropNameInRow="PermissionOwnerId" msprop:Generator_ColumnVarNameInTable="columnPermissionOwnerId" msprop:Generator_ColumnPropNameInTable="PermissionOwnerIdColumn" type="xs:string" />
     471              <xs:element name="Password" msprop:Generator_UserColumnName="Password" msprop:Generator_ColumnVarNameInTable="columnPassword" msprop:Generator_ColumnPropNameInRow="Password" msprop:Generator_ColumnPropNameInTable="PasswordColumn" minOccurs="0">
     472                <xs:simpleType>
     473                  <xs:restriction base="xs:string">
     474                    <xs:maxLength value="2147483647" />
     475                  </xs:restriction>
     476                </xs:simpleType>
     477              </xs:element>
     478              <xs:element name="Login" msprop:Generator_UserColumnName="Login" msprop:Generator_ColumnVarNameInTable="columnLogin" msprop:Generator_ColumnPropNameInRow="Login" msprop:Generator_ColumnPropNameInTable="LoginColumn" minOccurs="0">
     479                <xs:simpleType>
     480                  <xs:restriction base="xs:string">
     481                    <xs:maxLength value="2147483647" />
     482                  </xs:restriction>
     483                </xs:simpleType>
     484              </xs:element>
     485              <xs:element name="MailAddress" msprop:Generator_UserColumnName="MailAddress" msprop:Generator_ColumnVarNameInTable="columnMailAddress" msprop:Generator_ColumnPropNameInRow="MailAddress" msprop:Generator_ColumnPropNameInTable="MailAddressColumn" minOccurs="0">
    476486                <xs:simpleType>
    477487                  <xs:restriction base="xs:string">
     
    486496          <xs:complexType>
    487497            <xs:sequence>
    488               <xs:element name="PermissionId" msdata:DataType="System.Guid, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" msprop:Generator_UserColumnName="PermissionId" msprop:Generator_ColumnVarNameInTable="columnPermissionId" msprop:Generator_ColumnPropNameInRow="PermissionId" msprop:Generator_ColumnPropNameInTable="PermissionIdColumn" type="xs:string" />
    489               <xs:element name="Name" msprop:Generator_UserColumnName="Name" msprop:Generator_ColumnPropNameInRow="Name" msprop:Generator_ColumnVarNameInTable="columnName" msprop:Generator_ColumnPropNameInTable="NameColumn" minOccurs="0">
    490                 <xs:simpleType>
    491                   <xs:restriction base="xs:string">
    492                     <xs:maxLength value="2147483647" />
    493                   </xs:restriction>
    494                 </xs:simpleType>
    495               </xs:element>
    496               <xs:element name="Description" msprop:Generator_UserColumnName="Description" msprop:Generator_ColumnPropNameInRow="Description" msprop:Generator_ColumnVarNameInTable="columnDescription" msprop:Generator_ColumnPropNameInTable="DescriptionColumn" minOccurs="0">
    497                 <xs:simpleType>
    498                   <xs:restriction base="xs:string">
    499                     <xs:maxLength value="2147483647" />
    500                   </xs:restriction>
    501                 </xs:simpleType>
    502               </xs:element>
    503               <xs:element name="Plugin" msprop:Generator_UserColumnName="Plugin" msprop:Generator_ColumnPropNameInRow="Plugin" msprop:Generator_ColumnVarNameInTable="columnPlugin" msprop:Generator_ColumnPropNameInTable="PluginColumn" minOccurs="0">
     498              <xs:element name="PermissionId" msdata:DataType="System.Guid, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" msprop:Generator_UserColumnName="PermissionId" msprop:Generator_ColumnPropNameInRow="PermissionId" msprop:Generator_ColumnVarNameInTable="columnPermissionId" msprop:Generator_ColumnPropNameInTable="PermissionIdColumn" type="xs:string" />
     499              <xs:element name="Name" msprop:Generator_UserColumnName="Name" msprop:Generator_ColumnVarNameInTable="columnName" msprop:Generator_ColumnPropNameInRow="Name" msprop:Generator_ColumnPropNameInTable="NameColumn" minOccurs="0">
     500                <xs:simpleType>
     501                  <xs:restriction base="xs:string">
     502                    <xs:maxLength value="2147483647" />
     503                  </xs:restriction>
     504                </xs:simpleType>
     505              </xs:element>
     506              <xs:element name="Description" msprop:Generator_UserColumnName="Description" msprop:Generator_ColumnVarNameInTable="columnDescription" msprop:Generator_ColumnPropNameInRow="Description" msprop:Generator_ColumnPropNameInTable="DescriptionColumn" minOccurs="0">
     507                <xs:simpleType>
     508                  <xs:restriction base="xs:string">
     509                    <xs:maxLength value="2147483647" />
     510                  </xs:restriction>
     511                </xs:simpleType>
     512              </xs:element>
     513              <xs:element name="Plugin" msprop:Generator_UserColumnName="Plugin" msprop:Generator_ColumnVarNameInTable="columnPlugin" msprop:Generator_ColumnPropNameInRow="Plugin" msprop:Generator_ColumnPropNameInTable="PluginColumn" minOccurs="0">
    504514                <xs:simpleType>
    505515                  <xs:restriction base="xs:string">
     
    514524          <xs:complexType>
    515525            <xs:sequence>
    516               <xs:element name="PermissionOwnerId" msdata:DataType="System.Guid, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" msprop:Generator_UserColumnName="PermissionOwnerId" msprop:Generator_ColumnVarNameInTable="columnPermissionOwnerId" msprop:Generator_ColumnPropNameInRow="PermissionOwnerId" msprop:Generator_ColumnPropNameInTable="PermissionOwnerIdColumn" type="xs:string" />
    517               <xs:element name="Name" msprop:Generator_UserColumnName="Name" msprop:Generator_ColumnPropNameInRow="Name" msprop:Generator_ColumnVarNameInTable="columnName" msprop:Generator_ColumnPropNameInTable="NameColumn" minOccurs="0">
     526              <xs:element name="PermissionOwnerId" msdata:DataType="System.Guid, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" msprop:Generator_UserColumnName="PermissionOwnerId" msprop:Generator_ColumnPropNameInRow="PermissionOwnerId" msprop:Generator_ColumnVarNameInTable="columnPermissionOwnerId" msprop:Generator_ColumnPropNameInTable="PermissionOwnerIdColumn" type="xs:string" />
     527              <xs:element name="Name" msprop:Generator_UserColumnName="Name" msprop:Generator_ColumnVarNameInTable="columnName" msprop:Generator_ColumnPropNameInRow="Name" msprop:Generator_ColumnPropNameInTable="NameColumn" minOccurs="0">
    518528                <xs:simpleType>
    519529                  <xs:restriction base="xs:string">
     
    528538          <xs:complexType>
    529539            <xs:sequence>
    530               <xs:element name="PermissionOwnerId" msdata:DataType="System.Guid, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" msprop:Generator_UserColumnName="PermissionOwnerId" msprop:Generator_ColumnVarNameInTable="columnPermissionOwnerId" msprop:Generator_ColumnPropNameInRow="PermissionOwnerId" msprop:Generator_ColumnPropNameInTable="PermissionOwnerIdColumn" type="xs:string" />
    531               <xs:element name="UserGroupId" msdata:DataType="System.Guid, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" msprop:Generator_UserColumnName="UserGroupId" msprop:Generator_ColumnVarNameInTable="columnUserGroupId" msprop:Generator_ColumnPropNameInRow="UserGroupId" msprop:Generator_ColumnPropNameInTable="UserGroupIdColumn" type="xs:string" />
     540              <xs:element name="PermissionOwnerId" msdata:DataType="System.Guid, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" msprop:Generator_UserColumnName="PermissionOwnerId" msprop:Generator_ColumnPropNameInRow="PermissionOwnerId" msprop:Generator_ColumnVarNameInTable="columnPermissionOwnerId" msprop:Generator_ColumnPropNameInTable="PermissionOwnerIdColumn" type="xs:string" />
     541              <xs:element name="UserGroupId" msdata:DataType="System.Guid, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" msprop:Generator_UserColumnName="UserGroupId" msprop:Generator_ColumnPropNameInRow="UserGroupId" msprop:Generator_ColumnVarNameInTable="columnUserGroupId" msprop:Generator_ColumnPropNameInTable="UserGroupIdColumn" type="xs:string" />
    532542            </xs:sequence>
    533543          </xs:complexType>
  • trunk/sources/HeuristicLab.Security.ADODataAccess/3.2/dsSecurity.xss

    r1720 r1724  
    55     the code is regenerated.
    66</autogenerated>-->
    7 <DiagramLayout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" ex:showrelationlabel="False" ViewPortX="231" ViewPortY="48" xmlns:ex="urn:schemas-microsoft-com:xml-msdatasource-layout-extended" xmlns="urn:schemas-microsoft-com:xml-msdatasource-layout">
     7<DiagramLayout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" ex:showrelationlabel="False" ViewPortX="306" ViewPortY="51" xmlns:ex="urn:schemas-microsoft-com:xml-msdatasource-layout-extended" xmlns="urn:schemas-microsoft-com:xml-msdatasource-layout">
    88  <Shapes>
    99    <Shape ID="DesignTable:GrantedPermissions" ZOrder="9" X="241" Y="438" Height="190" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="75" />
    10     <Shape ID="DesignTable:UserGroup" ZOrder="8" X="946" Y="238" Height="106" Width="202" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="42" />
     10    <Shape ID="DesignTable:UserGroup" ZOrder="8" X="946" Y="238" Height="123" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="42" />
    1111    <Shape ID="DesignTable:HLUser" ZOrder="2" X="577" Y="484" Height="156" Width="182" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="92" />
    1212    <Shape ID="DesignTable:Permission" ZOrder="3" X="292" Y="192" Height="156" Width="204" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="92" />
     
    9191        <Point>
    9292          <X>1024</X>
    93           <Y>344</Y>
     93          <Y>361</Y>
    9494        </Point>
    9595        <Point>
Note: See TracChangeset for help on using the changeset viewer.