Release History
What's new in Secwin 4?
Getting compile errors after upgrading? Check the
Compile Errors Section.
Version
4.64 (26 November 2008)
- ds_LockScreen Fix: Was allowing a blank password to activate the screen
- and erroring on the correct password.
Version
4.63 (21 November 2008)
- ds_ResetUserPasswordDLL Fix: ds_GetUserPassword,
ds_ResetUserPassword - allows blank user site to be passed.
- Fix - in ds_SetPath for IPDriver apps. Provides support for subfolder
support (which was removed from 4.62 due to a regression when ds_SetPath was
not used). Now supports both sub-folder support and default folder support.
- Template Change - split Secwin Initialize into 2 - to allow additional
code after init, but before creating the tables.
Version
4.62 (4 November 2008)
Summary: Optimization for SQL - particularly for UserGroups, Encryption Code.
- Clarion 7 compatible install.
- New functions: ds_ResetUserPassword, ds_GetUserPassword,
ds_SetEncryptionKey. ds_ResetUserPassword, ds_GetUserPassword can only be
used if ds_SetEncryptionKey is first called with an encryption key. These
functions are not available when using the default secwin encryption.
- Encrypting Tables with a unique key. This permits you to use the
ds_ResetUserPassword, ds_GetUserPassword - as the Operators table is unique
to your application.
- Conversion from default encrypted to encrypted, as well as import from
encrypted or default encrypted to encrypted. Export from encrypted.
- Fix - change user password (not functioning correctly).
- Optimize for SQL - ds_UsersUserGroups, ds_NumberOfUsers , Delete User,
internal: UserInUserGroup
- Fix ds_CountUsers (for SQL) - Was only checking the noaccess users, and
not adding operators and supervisors to check if all existing users had
access record (noaccess, operator or supervisor).
- Fix - upgrading Secwin tables (from Secwin 3). Logout was not
functioning correctly in SQL, so only the first 2000 access records were
upgraded.
- TPL change: Windows Font settings moved to the 'Old' tab.
- Encryption key template entry prompt in the global extension template.
- Tpl fix - incorrect spelling for importing the planejane template
windows.
- Template fix - legacy - was calling an abc method in the template (INIMgr).
- Template fix - don't reject the UserSecurityTemplate on source and
report templates. Disable automatically for these if populated by the
AutoPopulateUserSecurityTemplate - but allow enabling.
- Template fix - disable UserScreenSecurity template in the FM3 connect
window template (typo in previous attempt at this).
- IPDriver Fix - regression in 4.58 - when introducing sub-folder support
(sub-folder support is disabled at present).
Version
4.61 (23 October 2008)
(Minor release)
Summary: Template change for Clarion7 support.
Version
4.60 (17 October 2008)
(Minor release)
Summary: Release 4.59 did not include all the dlls for all the backends.
Version
4.59 (15 October 2008)
(Minor release)
Summary: Fix for UserNumbers > 32767
- Secwin DLL - fix internal functions: ds_SetWorkGroup, ds_PutAccess to
take long parameters (rather than shorts).
- Secwin DLL - fix - only upgrades 399 licence structure for TPS files.
This will only effect those who implemented Secwin 4.00 licence in a tps
environment.
- Secwin DLL - fix for logout and re-login. Was not clearing internal
variables after logout.
Version
4.58 (16 September 2008)
(TXA import recommended)
Summary: Some startup optimization for SQL, IPDriver support for separate
datapath, better UserGroup support (editing) in the TXAs.
- Secwin DLL - optimize ds_UsersEx function. Does not check user groups if
no appnumber is passed to the function.
- Secwin DLL - optimize ds_CountUsers for SQL - use prop:sql rather than a
view to return the available users. Also deletes superfluous Access records
(of old deleted users)
- Secwin DLL - fix ds_getUsers was not returning the NoAccess users.
- Secwin DLL - if languagefile includes the path, then don't add the path
to the language file.
- Secwin DLL - use the IPDriver procedures to set the filenames (allows
the files to be in a different path to the Secwin dll on the DataServer)
- Secwin TXAs - UserGroup editing improved - shows InitialAccess. Disables
initialAccess on changerecord, when UserGroup is switched between Operator
and NoAccess.
Version
4.57 (3 September 2008)
(No TXA import required if upgrading from a version greater than 4.55)
- Secwin DLL - Work-around for licences implemented with version 4.00 (was
storing as case-insensitive product name).
- Secwin Template fix - If forcechange every 30 days, then don't allow the
user to cancel from the changepassword screen.
- Secwin Template Change - include the name of the screen from which the
SecwinSetAccess window is called (in the window text
- Secwin Template Change - Store the window size in the ABC resizer for
the SecwinSetAccess window for each different window from which it is
called.
Version
4.56 (22 August 2008)
(AccessControl windows TXA import recommended)
- Secwin DLL - Disable change in Level for UserGroups.
- Secwin DLL - Optimize User deletion: uses prop:sql to delete operator
usergroup associations.
- Secwin DLL - Don't get a user's level by the level of the highest
usergroup he belongs to.
- Secwin TXAs - disable the InitialAccess option controls when a user is
changed. See FAQ 3.17 for details
- Secwin DLL - can store activation codes to prevent re-use (new function
to replace superannuated one:
ds_CheckEncryptedActivationCodeEx)
- Secwin DLL - fix for relative counters (adds correctly - instead of
replacing existing ones)
- Secwin DLL - don't store licence when type < current licence type.
- Secwin DLL - don't allow a activation code with a counter to be reset
with the same activation code.
- Secwin Template and DLL - make WrongProduct warning optional (for
debugging purposes only)
Version
4.55 (13 August 2008)
(No TXA import required if upgrading from a version greater than 4.54)
- DLL fix - only set the GUID (on adding) if the GUID is not set (fix for
the import/export routine).
- DLL change - ds_GetProperty -
allows IsSuperUser functionality to test if a particular user is a superuser
or not.
- DLL fix - import/export between different backends. TPS to SQL
export/import was not working correctly. Requires a new export if user
groups are used (were not correctly formatted in the export file).
- DLL change - Improved the 'Call to ds_LicenceOk, but License Not Loaded
by ds_UseLicence' message to 'Contact your Supplier: The security licence is
used before it is loaded (i.e ds_LicenceOk is called before ds_UseLicence)'
- DLL Change - include the Dealer in the import/export of the licence
file.
- DLL Fix - UserGroup first user found (with no other operators
thereafter) - was causing an infinite loop.
- Template change - TXAs include a "Plain Jane" option for windows import.
Version
4.54 (5 August 2008)
(AccessControl windows TXA import recommended)
- Secwin Equates - change CounterDescription to Description field (to
match the template queue). Handcoders using the LimitsQueueType will need to
change the reference to this variable to the correct one in their source.
- DLL fix - don't show previously assigned user groups to a user that is
changed from an operator to a supervisor (in the BrowseOperators
UpdateOperators windows).
- DLL fix - was not assigning user groups correctly sometimes.
- Dll optimization - ds_GetUsers is 20% faster in SQL. Also the queue is
sorted correctly by FirstName/LastName.
- DLL fix - the Error storing licence message was not showing the file
error correctly.
- TXA change - disables the UserGroups queue in the SecwinBrowseOperators
and SecwinOperatorsForm windows for supervisors.
Version
4.53 (29 July 2008)
(No TXA import required if upgrading from a version greater than 4.43)
- New equate (ds_NoMessages) - which can be added to the Request parameter
of the ds_UpdateUser function to suppress error
messages.
- DLL Fix (ds_GetProperty) - returns blank
(or 0) property when a user does not exist. (was returning incoherent values
for non-existant users).
- DLL Change (ds_UpdateUsersUserGroups)
- the DLL changes the Active icon to correspond with a completed change
required (indicated by a user-changed ActiveIcon flag). This means that if
the ds_UpdateUsersUserGroups function fails with a particular change, the
failed change can be verified by the mismatched Active flag in a particular
row.
- Template Change - improved compile error messages for missing procedure
prompts in the global and/or Create Menu Extension templates.
Version
4.52 (11 July 2008)
(No TXA import required if upgrading from a version greater than 4.43)
- Fix regression in Template (version 4.51). If SecwinSetAccess was
declared externally, then a blank procedure name was used.
Version
4.51 (10 July 2008)
(No TXA import required if upgrading from a version greater than 4.43)
Summary: Firebird support, support for a large number of Access Control groups
on one window (where the access control group string compiles to > 1024)
- DLL Change - Implement Firebird support. This requires a different DLL
to the standard ODBC DLL. This is because a lot of the files contain unique
keys made of >250 bytes which Firebird does not support. Important Note for
Firebird users: Some of the string fields (used in unique keys) have been
shortened to accommodate for this limitation in Firebird. Particularly:
Firstname and Lastname
(80 instead of 252), Product
- Template change - workaround for Clarion IDE limitation, which does not
permit more than 1024 chars in a parameter on one line. Split the function
call over to multiple lines if this is the case.
Version
4.50 (27 June 2008)
(No TXA import required if upgrading from a version greater than 4.43)
- DLL Change - Don't allow Hook1 to be set (in the ds_UpdateUser) - this
is used internally.
- DLL Change - ds_SetOwner, allows the second
parameter (Owner2) to be used for a DriverString set (for SQL tables). This
means that additional driver strings can be used in Secwin tables. you may
not use /CLIPSTRING though.
- Template Change - Support for additional driver strings (used in
ds_SetOwner).
- Template Change - Support for Multi-Proj - allows manual inclusion of
the Secwin Driver DLL - instead of using the Secwin Global Extension setting
(better support for Driver Substitution - particularly the IPDriver).
Version
4.49 (11 June 2008)
(No TXA import required if upgrading from a version greater than 4.43)
- Template Change - improved Multi-DLL implementation. TXAs included for
external procedures.
- Improved Multi-DLL examples (includes an IPDriver Multi-DLL
application).
- Template Change - if 'Generate Access points everytime' is unchecked,
then don't force the addition of the sac points file into the
Secwin_SetGlobalAccessControls control template's include file list.
Version
4.48 (5 June 2008)
(No TXA import required if upgrading from a version greater than 4.43)
- DLL fix - suppress CRC check during internal view transactions. In SQL -
this was doing an incorrect CRC check - resulting in a corrupt security
files warning.
- DLL fix - Change Login function was displaying the old Secwin DLL window
if no password was sent to the procedure
- DLL fix - ds_LockScreen - don't allow the window to close unless
legitimate closure issued.
- Template Change - display the login in the UsersList (SecwinSetAllAccess
window)
Version
4.47 (6 May 2008)
(No TXA import required if upgrading from a version greater than 4.43)
- DLL change - increase field length of the login names and passwords in
the deprecated dll window procedures (ds_LoginText, ds_ChangeUser,
ds_ChangePassword).
- DLL change - new procedure
ds_GetUserProperty. Users the Login name to get the property. If the
property was numeric, then ds_GetProperty was not returning the correct
user's details. Also, ds_GetProperty can accept a numeric login preceded by
'####'
- DLL change - IPDriver workaround - IPDriver was returning an incorrect
error code (errorcode 45).
- DLL Change - when upgrading from Secwin3 tables, store the original
login case-sensitively in the case sensitive field, and the login as
uppercase (for optimized login searching).
- Template Change - Secwin Menu extension template - allow all or some of
the procedures to be started in a new thread (requires some procedures to
change their parameter from a long to a string)
- TXAs change - calls the new ds_GetUserProperty where applicable.
Version
4.46 (21 April 2008)
(No TXA import required if upgrading from a version greater than 4.43)
- DLL change - Fix - returns the case-sensitive
name in the functions returning the current login (like ds_CurrentLogin and
ds_GetProperty).
- Rebuilt installs (Corrupt installs for some of the patch installs).
Version
4.45 (9 April 2008)
(No TXA import required if upgrading from a version greater than 4.43)
- DLL change - Lock window password screen centred.
- DLL Change - allow translation of 'Access' and 'Group' used in the
SecwinSetAllAccess window.
- Template change - 'Disable Licence file registry check' is moved to the
global extension template (instead of the User Login Here template). This
was called 'Allow multiple security files'
- Template change - req() not always working when req is associated with a
local extension template - so changed to using restrict instead.
- Template change - new prompt 'Dont check access in list box filters'. To
optimize list box filters if access control is not applied to records in the
browse.
- Template fix - ds_MultiData is included in the call to the ds_LicenceOK
function if the global extension template is checked.
- Template fix - Fixed where statement in UpdateWindow derived code into
ABC mbrowse class. A call to RestrictAccess was being called at every
method.
- Template fix - TearOff support implemented (regression in previous
TearOff support implementation).
- Template change - don't call RestrictAccess if the routine is empty.
Version
4.44 (21
February 2008)
(Recommend Access Control windows TXA import to
optimize the BrowseUsers)
- Optimize DLL (ds_GetUsers) - makes OperatorBrowse
faster.
- Template change - force '' into email address
template field if non-existent.
- Template change - a switch on the Create_Secwin_Menu
template allows quick disabling of AccessControl menu items.
- Template change - if a blank file exists in the Files
to Include (on the SecwinSetGlobalAccess window), ignore it.
- TXA change - remove the LoadQueue after Insert,
Change and Delete (already done in the ResetWindow method).
- TXA Change - don't disable the UserGroups list when
inserting a user (now updating a users user groups is supported during user
insertion).
- TXA Change - remove example sac files from the Files
To Include list (on the SecwinSetGlobalAccess window).
Version
4.43 (6
February 2008)
- Template Change - allow access points (for the Set
Global Access window) to be sorted by Template list order, REstriction Name
or Bit ID.
- Template Change - don't use Default login , if it's
not set.
- Template Change - an additional embed point prior to
logintext if no users found (allows custom code to provide additional
options if no users exist).
- Template Change - if Licence date 0 (not failed) -
then licence is non-expiring (set to 9999/12/31)
- DLL fix - Secwin3 operator browse was not sorting or
scrolling correctly.
- DLL change - optimise the deletion of an Operator for
SQL. Deletes access records with a prop:sql statement, instead of manually.
- DLL Fix - don't display encrypted blank email address
(if email address is blank). Affected ODBC applications.
- DLL change - returns FingerPrint1,2, ExtraLong,
ExtraString, Site, SiteLow, SiteHi from ds_GetProperty function.
- DLL Change - immediate return from the internal
ds_About function.
- DLL Fix - allow VScrolling on the UserGroup list
boxes.
Version
4.42 (30
January 2008)
- DLL Change - stores a case-sensitive login for
reference purposes (in insert user, and when upgrading from dssw2.tps
files).
- DLL Change - when logging in, first tries a get for
the operator (before a set/next) - optimized for SQL. Also in the
ds_ChangeLoginEx function. ds_LoginUser and ds_ChangeLoginEx now internally
use the same function to load the user.
- DLL fix - ChangeLogin and ChangePassword was not
case-insensitive (if set to case-insensitive in the UserLoginHere template).
- DLL fix - was storing in the initial password in
uppercase when adding using the old ds_InsertUserEx function.
- DLL change - allows a ds_SecwinFirstDate to be set
for the expiry date for the licence (and the shelf life for the Activation
Code) to create non-expiring dates (expires 9999/12/31).
- DLL Change - OperatorForm DLL window entry string
pictures changed to @s252.
- DLL Change - WorkGroup fields on OperatorForm
unhidden.
- DLL Change - VSCROLL added to the OperatorFrom and
OperatorBrowse UserGroups list box.
- DLL Change - ds_UpdateUser: Hook2 is reserved for
casedlogin storage of the login.
- Template Change - License name, Default login and
password, Restriction Name, RunAnotherEXE and Command line parameters,
Application Name and Application Pin (in the SetPin template) increased to
252 chars.
- Template Change - BrowseUsers procedure template
prompt moved to global extension.
- Template Change - after changelogin, do GetAccess and
set access rights from the calling window.
- Template Change - Call_OperatorBrowse code template
now dependant on the Secwin Global Extension template (to cal lthe
BrowseOperators procedure set there).
- Template Change - C55 - Work around for doing a
straight case on the returned value of ds_CheckEncryptedActivationCode. Use
a temporary variable to store the value, and compare it.
- Template Change - verifies that 0 is a valid licence
date (was reporting this as an old expired licence)
- TXA change - when returning from the
SecwinOperatorForm, the User's UserGroups are immediately displayed.
- TXA change - Access increased to 247 allowable
columns.
- TXA Change - ChangePassword Cancel button activated.
Version
4.41 (25
January 2008)
- Template fix - regression in 4.39 - when making login
option (and no users added) the program was immediately exiting.
- DLL Fix - regression in 4.39. When adding a superuser,
sometimes all users were seen as superusers (and deletion of users was
essentially disabled).
- TXAs - login, password, user name and user lastname
fields pictures changed to @s252. (Requires re-importing of the txas)
- TXA - AccessControl window columns reduced to 247 to
cater for limitation in the size of the format string.
- TXA - added a Select File button to the
RegisterProduct window (ABC) for XML file selection.
Version
4.40 (24
January 2008)
- Template fix - regression in 4.39 - new apps were not
using the imported login procedure.
Version
4.39 (22
January 2008)
- DLL fix - was able to delete superuser.
- DLL change - DatePicture defaults to @d17 (not @d6)
- DLL change - Default expired licence text changed to:
'The licence for this product has expired.|Consult your application supplier
for a new activation code|to continue using this application.'
- Template change - Login and FirstUser procedure
template prompts moved to the Global Extention template.
- New Extension template -
Create_Secwin_Menu. For ease
of adding the necessary security menu items to your application.
- Template fix - if Secwin is disabled, don't generate
Outlookpanel code.
- Template fix - Procedures where User Screen Security
was disabled was still appearing on the Global Set AllAccess Control window.
- Template fix - Tearoff support was not being disabled
if Secwin was disabled (locally or globally).
- Template change - additional embed between the login
user function and the invalid user login message.
Version
4.38 (11
December 2007)
- DLL fix - login sometimes required case sensitivity
(on the login name) - now completely case-insensitive. Login converted to
uppercase (to optimise login - so that login does not have to be "searched"
for)
- DLL fix - Browse User screen was not always
displaying the Default Access correctly.
- Template fix - Secwin:AfterLogin embed point ID
duplicated.
- DLL change - Login uppercased on user insert (to
optimize future logins). initial password remains the case that the login
was entered.
Version
4.37 (5
December 2007)
- DLL fix (regression introduced in 4.33 for SQL
upgrade tables). Only one record was upgraded in the names table.
- Fix GPF in RegisterABC app
Version
4.36 (3
December 2007)
- DLL fix - If ChangeLogin is selected (with an invalid
user entered) then a different user was "logged in" to the one that should
be currently logged in.
- DLL fix - version number equate used in the version
number display (rather than a constant)
Version
4.35 (29
November 2007)
- Template fix - %BitValue - invalid template variable
(regression in 4.33)
Version
4.34 (26
November 2007)
- Dll fix - remove stop from the DLL (when going to the
AccessControl window)
Version
4.33 (22
November 2007)
- Template Change: User Screen Security group ID -
verified with a queue of existing IDs.
- Template change: User Screen Security: Allow 250
control groups (template now uses ds_UserAllowed,
ds_ModifyAccessEx and ds_GetAccess4
functions).
- ds_UsersEx function now
returns the UserSite for each user in the queue (used to be reserved2
field).
- ds_DisplayUsersQueue type (used in the AccessControl
windows) - name changed to String(252), and a UserSite is added (to contain
the user's site id).
- Fix - ds_UserAllowed
function prototyped to return a string (replaces the ds_UserAllowed function).
- New functions mapped:
ds_ModifyAccessEx (includes the site id of the user) and
ds_GetAccess4
- Internal function: ds_PutAccessEx includes the user
site id (instead of using the glosite, searches for the user with the user's
site id). Also allows -1 to change a particular bit position access only.
- ds_UserAllowed - if
pUser is 0, then loads the current user.
- Prettified Upgrading window.
- Optimized upgrade function - logout and commit for
bulk file reads. New security files opened in deny read/write mode.
- Obscure 'File Error 2 Names :' replaced with a
translatable intelligible message.
Version
4.31 (15
November 2007)
- Template fix: For Multi-DLL applications - allows
Secwin windows to be external (New checkbox - Functions In another app) -
also provides a mechanism to automatically map those windows (if MultiProj
is not used in this application set).
- Template fix: Also for the Login and FirstUser
procedures (in the User Login Here extension template).
- Template change: Change to the feature introduced in
4.29 - to permit a control in a group to deviate from the default (for
Control Restrictions). The default is now re-introduced and may be
overridden for each control (otherwise assumed to be the default).
- Template fix: Displays the control group where the
group is a "To User Type" group. This was not displaying anything in the
Control Restrictions base list.
- TXAs - procedures requiring NAMEs, named (to enable
exporting). NOEXPORT added to those procedures which won't be exported.
Version
4.30 (14
November 2007)
- Template fix: If Default Login is selected - was not
auto-logging in without showing the window.
- Includes a exe to generate Security codes to allow
authorization of Security File repair (see
Your_Security_file_has_become_corrupted._Consult_your_application_supplier_for_a_new_activation_code
for more details).
- Removed omit statement from the GlobalClass.
- DLL fix - if the AutoLogin and Default login was
selected, then was not performing a Default login.
- Expanded the Security Files Corruption Fixer window
to include a Email request generator, as well as being translatable. Email
is not required, but strongly recommended. This property is set in the
Secwin Global Extension template (on the Options tab).
Version
4.29 (6
November 2007)
- Template change: ControlRestrictions - removed
control equate, and combined into one list (not one control and additional
list of other controls).
- Template addition: Control restrictions to a user
type (i.e. supervisor, operator or all).
- Template change: Each control in a control group can
be assigned individually to Disable|ReadOnly|Hide, etc.
- Template change: Action to take on failed licence:
changed to drop down, and controls that still work changed to an inline
list. If "Call a Procedure" is selected, then "return after" checkbox is
default to on.
- Template change: various cosmetic improvements.
Version
4.28 (5
November 2007)
- Fix Counter checking - was not cancelling the licence
if Counter tampering occurred.
- Additional text translation (for expiredcode,
failedcode, wrongproduct and usedbefore messages).
- Additional functions: ds_SetEmailAddress and
ds_SetAppName used for forthcoming functionality.
- Fix - when a user accesses a previously unaccessed
screen, the access record is cleared (was getting some ghost data from a
previous record in the access file). Similarly with the namecodes file.
- Template change - when using the IPDriver, force the
SecFilePos to the 'Data Directory' (only valid position).
- Template change - new EmailAddress (for support)
defaults to the GPFReporter setting.
- Template fix - Where a counter restriction only
pertains to certain levels, don't check the counter for levels outside that
range.
- Template fix - use the correct template message
prompt in the correct place (was using ExpiredActivation message in place of
Failure message).
- Template change - if a valid expired licence code is
issued, then don't display 'licence successful' message. Display Expired
LIcence message.
Version
4.27 (26 October 2007)
- Fix for upgrading Operator's table - was deleting the
file after upgrading in some unusual circumstances. This fixes where folks
cannot login after upgrading. Internal - call ConvertSecwinTables direct for
no file error.
- Fix (regression in 4.23) - for generating licence
activation codes. Internal method change caused invalid codes to be issued.
Version
4.26 (24 October 2007)
- Fix for AutoLogin in a Multi-EXE setup (when using
the new AccessControl windows in your application - was not permitting
AutoLogin from another application, when activated). Template fix, and
GetCurrentUser function added internally in the DLL.
Version
4.25 (23 October 2007)
- Fix user upgrade for Secwin3 file. Secwin 3 allowed a blank user in the
file - whereas Secwin4 does not allow blank Logins. A blank login will
simply be omitted from the upgrade of the user file.
- Fix for Licence concurrent checking file. Was coming up with an Error
47.
- Fix for Counters - was not always loading all the counters into the
internal CounterQ.
- Fix for Counters - was not always returning the Counter value correctly
from ds_CheckCounter
Version
4.24 (18 October 2007)
- ds_UseLicenceEx - fix concurrent copy checking.
- Template change - new embed point before ds_UseLicence call.
- Template change - organise Secwin embeds into a single Secwin Tree
(rather than each individual item in the embed tree)
Version
4.23 (17 October 2007)
- ds_CheckCounter function included in the map file - enabling the new
Counter features to be used.
- New function - ds_CheckHashCode - and EnterHashCode (for allowing
controlled repairing of corrupted SecurityFiles) - this feature is not
available yet, but coming soon.
- ds_CheckCounter function parameters corrected, and checks the required
counter correctly (saving a decremented counter where required)
- ds_DecrementCounterEx calls ds_CheckCounter correctly.
Version
4.22 (12 October 2007)
- ds_GetUsers function optimized (was taking a long time to load the
operators due to a sub-optimal VIEW).
- Call_ChangePassword code template requires Secwin Global Extension
template, and detects the status of the 'Allow Case-Insensitive password'
set in the User Login Here template.
Version
4.21 (9 October 2007)
- Secwin ODBC now supports PostgreSQL.
- DLL fix - supervisor "switched" to user after editing that user's
details.
- Internal DLL Change - Operators file, Access file and NameCodes file
primary key changed to the GUID key - will only affect new databases.
- Internal DLL Change - External names of Operator file's LoginKey and
Key; Namecodes file's Key changed - allows Secwin3 tables and Secwin4 tables
to co-exist in the same database (where databases require database wide
unique key names) - in order to allow upgrading from Secwin 3 to Secwin 4.
- Internal DLL Change - Access table GUID key and the Counters table
LicenceGUIDKey made case-sensitive (Conversion routine created to handle
existing Secwin 4 tables).
- Internal DLL Change - CreateSecwinTables procedure to create tables via
SQL script for those not being created by the create() command.
Version
4.20 (1 October 2007)
- Include map to ds_SetSkipCRCCheck so that Security files CRC check
can be skipped if required.
- Include ip_s4tps6.dll (was not being included in the install).
Version
4.19 (21 September 2007)
- Corrupt Security file work around (allows Security file checking to be
bypassed - only recommended where access control is not used).
Version
4.18 (20 September 2007)
Note: Although support for the IPDriver is
fixed, upgrading from the Secwin 3 tables is still not possible yet.
- CLIPSTRING = FALSE driver string added to the SQL driver strings. This
is to ensure that the CRC is stamped correctly - in correlation to the CRC
returned from the database on a read.
- Regression fix - if CRC test fails, then recheck CRC (removing spaces
from the string) - if correct, then redo CRC in database. Caters for strings
being sent differently to what was returned in SQL (because clipstring was
true by default).
- Regression fix (introduced in 4.17) - if no Secwin 3 tables to upgrade,
the ds_cresec was not creating the names table.
Version
4.17 (18 September 2007)
Note: Although support for the IPDriver is
fixed, upgrading from the Secwin 3 tables is still not possible yet.
- Internal Change - createnames table superannuated (create attribute
added to the names table).
- IPDriver - owner set correctly in IPDriver tables.
- IP Driver DLL name changed to IP_S4tps6.dll - this means that the Secwin
3 DLL can co-exist on the same server as the Secwin 4 DLL (if required).
- DLL Fix - when a user is deleted, delete the association with any
usergroups that the user group is associated.
- Template Fix - If Secwin is disabled from the application, then the
secequ15.clw file is still included (for variable equates and types).
Version
4.16 (14 September 2007)
Note: If you are not using SOS to issue
registration codes (you are using the register application) - then you will need
to recompile your application from the example shipped with Secwin. If you do
not do this, then your registration codes will fail if you are not currently
including the Dealer string in your registration codes.
- IPServer DLL compiled - note, the IPDriver files are not yet upgraded
from the S3 structure to the S4 structure, so only use the IPDriver for new
applications (not existing applications upgraded from Secwin3).
- Optimize callback - use arrays to contain size variables, rather than a
queue.
- Uses thread locking in the FileCallback while priming CRC values.
- Implement CRC check in the FileCallBack for all tables (check for
corruptions/unauthorized alterations in all tables).
- Template Change - Dealer in XML file - an option to detect the existence
of the Dealer in the XML - so Dealer inclusion is dictated by the
registration server - rather than this setting being required to match at
the child and server.
- Template fix - clears the licence details from the licence group, before
loading from XML (incase fields are omitted in the XML file).
Version
4.15 (29 August 2007)
- Control template for the SetAccess windows. Handles toggling and setting
access rights for users.
- Legacy Access Control windows - Correctly named windows and built
missing windows (Login, FirstUser, ChangePassword, ChangeLogin, and
SetAccess) - uses SecwinAL.clw
- Default ABC SetAccess window uses the control template.
- Template fix - when checking parameters required for a procedure- don't
infinite loop if no parameters exist for the procedure.
- Template change - get procedure parameter names (rather than using
hardcoded ones).
- TXAs use short filenames (8.3) - very occasionally Clarion has compile
issues with modules using longfilenames.
Version
4.14 (23 August 2007)
- DLL Fix - Changed ds_LoginUser type if not required to return the user
number (User number handle is optional).
Version
4.13 (16 August 2007)
- Fix - ds_ChangeUserPassword
parameters changed (in the include file, not the DLL) to include user's site
(for replicate compatibility). May be omitted for non-replicate sites.
- Fix - ds_ChangeUserEmailAddress
had incorrect parameters (in the include file) - also changed the site
parameter to optional (for non-Replicate sites).
- Fix - SQL was not importing user's usergroups when converting tables
from Secwin 3 to Secwin 4 format.
Version
4.12 (10 August 2007)
- Fix - Export/Import of tables (was not using a large enough buffer to
export the necessary data that Secwin4 uses). Also exports and imports all
data used in the tables (invalid file message if attempted to import a
previous S4 exported file).
- Fix in deprecated ds_LoginText function - Created user's email address
was not being encoded correctly.
- Optimize BrowseUser screen (actually anything that used the
ds_GetProperty function) - was repeatedly reloading the user from disk -
especially slow in SQL.
- Renamed the AccessControlWindows template utilities.
Version
4.11 (8 August 2007)
Note: If you have an existing Login Window,
then you will need to change it (documented in the
Creating Your Own Login Window
section)
- Fix - Imported windows use 8.3 names (very occasionally Clarion gets
confused using longfilenames).
- Feature - changes GUID generation mechanism, to use printable characters
(so that char can be used for GUID field).
- Template - force generation of AccessPoints file from SecwinSetAllAccess
control template (prevents a compile error when SecwinSetAllAccess window is
added for the first time).
- Template - add Accesspoints include file to the list when
SecwinSetAllAccess window is added.
- Template assert - force set of backend used (if not set).
- Fix - prevent GPF in old ds_GetActivationCode (set level and copies to 1
if non-existant - prevents divide by 0 from occuring).
Version
4.10 ( July 2007)
- Feature - new
AutoPopulateUserScreenSecurity template.
- Fix -Table Limits (now supported in C55 and legacy). Note: C55 requires
a unthreaded class for the filecallback method. C6 uses a threaded or
unthreaded, depending on whether the table is loaded as threaded or
unthreaded.
- Deprecated the ds_SetMaxTableRecords function.
- Fix - Counter is not case dependant.
- Allows a translatable table limit warning message.
- Fix - when table limit is reached (warning is displayed).
- Fix (for legacy) - was not detecting the %ProcedureCategory (must use %ProcedureTemplate)
for display table limit warning template option.
- Fix - added req attribute to Secwin extension templates (so that only if
the global extension is added, the local extensions will be able to be
added).
- Fix - RegisterProduct Control template, was not loading counters
correctly (if MaxLevel was set to None in the template)
- Fix - legacy support for the SecwinRegisterProduct template utility.
- Fix - warning: duplicate name variable - in the AccessControlWindows
imported by the template utility.
Version
4.09 (26 July 2007)
- Fix - When using Table limits, was not saving the limit record
(internally) correctly (GUID was not being populated).
Version
4.08 (26 July 2007)
- New Secwin datatype: ds_UserLoginOptions group (used for passing
parameters to the ds_LoginUser function and the
Login window (when using your own windows for access control)).
- ds_LoginUser function's parameters changed.
- ds_UpdateUser changed - allows the last supervisor's details (except
level) to be changed.
- Allows case in-sensitive login (and password where specified).
- ds_LoginText Returns 0 when user not found (instead of the incorrect
ds_InvalidUser).
- Template - don't clear procs when de-selecting use own windows for
login.
- Secwin_LoginControls template - changed to show (translatable) invalid
login message - where user is invalid.
- SecwinAccessControlWindows changed (recommended re-import).
Version
4.07 (25 July 2007)
Note: If you are using your own windows (for AccessControl) -
then you need to re-import the windows using the template utility (because the
OwnLogin method has changed).
- Fix - user login error (AddUserToMemory function fixed).
- Change - ds_GetLicenceLevelText (replaces ds_GetLevelText) and
ds_GetAccessLevelText - 2 functions for translation purposes (to translate
the level text used throughout Secwin).
- Change - ds_GetUsers replaces ds_UsersEx with a comprehensive set of
user details.
- ds_LoginUser returns 0 when not successful and the appnumber when login
is successful (in keeping with ds_LoginText)
- Internal - OpeRecordToGroup decrypts the user info needing decrypting
(instead of returning encrypted).
- Improved AccessControl windows - SecwinSplashLogin, SecwinChangePassword,
SecwinBrowseOperators, SecwinOperatorForm.
- Template - Activate Licencing support only set on the Global Extension
template (setting superannuated in the UserLoginHere template)
- Template - Default Licence issued is set correctly.
- New control Template - Secwin_LoginControls (required when using your
own login screen).
- Template - when using the GlobalSetAllAccess window, if the checkbox is
checked on the global extension template, then force the access points file
into the list on the GlobalSetAllAccess window.
- Template generated compile error - when a file is attempted to be
included (for access points) that is non-existant, then display a comment to
show where to delete the obsolete access points include file.
Version
4.06 (23 July 2007)
Note: Because of a required file structure change to the
Licence security file, your licences issued after the release of Secwin 4 will
not work, your customers will need to re-activate their licences.
- Fix - security leak allowed licence tampering without detecting. The
upgraded licence file requires abandonment (to a new structure).
- Fix - Licence table was not being created in SQL due to duplicate
primary key.
- Change - new ds_LoginUser function changed to exclude a window (which
allows better integration for using your own login window).
- Change - equates returned from ds_LoginUser changed to negative when
error occurs.
- GUID generation changed - use printable chars only in the GUID.
- OperatorForm - only show the UserGroups list if the user is an operator.
- Fix - if Licence name mismatched, then was failing to add licence
(generating correctly), but
generating a Success message.
- Fix - registry stamp (was not stamping registry on a StoreLicence, so
new licences could be corrupted).
Version
4.05 (19 July 2007)
- Fix for SQL (was not setting the owner string correctly)
- Fix - could not delete usergroups in the SecwinDLL windows.
Version
4.04 (18 July 2007)
- Examples in C55.
- Connects to SQL (MSSQL and MySQL tested) database and creates tables
correctly.
- Upgrades SQL tables correctly.
- Removed Makeover from Secwin - Secwin 4 now supports improved
AccessControl windows.
Version
4.03 (17 July 2007)
- Change functions - ds_GetProperty, ds_ChangeUserEmailAddress,
ds_UserAllowed, ds_UsersUserGroups (and other internal functions) - now
includes site field to correctly identify the user where associated with a
replicate site.
- Fix - SetAccessWindow now sets the access correctly.
- Fix - UserGroups can be deleted - was warning on last supervisor before
loading the record.
- Fix - version number from Lib file removed.
- Template fix - size of template prompt for control field (Control
Restrictions).
- New SetAccessWindow - new import of AccessControlWindows required
- Secwin GroupType change - ds_UsersUserGroupsQType and ds_UserDetailsType
includes the site field.
- New function -
ds_UpdateUsersUserGroups
- Fix - ability to change user details correctly.
- Fix - in UsersUserGroups, ability to assign and read a user that has
been added at a site, into a usergroup from a different site.
Version
4.02 (16 July 2007)
- Fix - template calls ds_SetPin function correctly.
- Include CreateSecurityTables example.
- Fix - warn on no Default Password and Login (if own login window is
used). Will resolve this in a later build to not force this.
- TXAs - include Access Control for windows in your application.
- Include CreateSecurityTables example (and application in bin directory).
- Included Outlookbar support.
Version
4.01 (12 July 2007)
- Fix - When Converting tables check for existing UserGroup (if a user was
previously assigned to a UserGroup) - before assigning the user group.
- Fix - in ds_UsersEx, was not populating the queue correctly (after
finding a usergroup).
Version
4.00 (12 July 2007)
- Show stopper (introduced in 3.99) - conversion was not setting the
LicenceType correctly (to permanent by default). If you upgraded from
Secwin3 during the alpha phase, you need to
delete your upgraded dssw4.tps file, to enforce a re-upgrade of the Secwin tables.
- Support for Secwin Online Server (for online registrations - the Secwin
4 way).
Version 3.99e (10 July 2007)
- Expanded ds_SaveLicenceToXML and ds_LoadLicenceFromXML to load from and
save to an XML string.
- Auto-register XML details when XML file dropped (template option).
Version 3.99e (10 July 2007)
- Expanded ds_SaveLicenceToXML and ds_LoadLicenceFromXML to load from and
save to a XML string.
- Auto-register XML details when XML file dropped (template option).
Version 3.99d (6 July 2007)
- Compiled in versions c6.2 9049 to c6.3 9056.
- xFiles included in the DLL (rather than the application) - this means
that xml comes standard and no additional products are required. TXA
including xFiles support, now becomes deprecated.
- Template fix for including database support.
- Re-labelled additional licence fields (to AdditionalString1,
AdditionalString2, AdditionalString3, AdditionalLong1, AdditionalLong2).
Version 3.99c (3 July 2007)
- Implemented other database support (untested as yet).
- Removed requirement for NetTalk when importing the RegisterProduct
window.
- 2 RegisterProduct txas - one for xFiles, and one without.
- Rehashed product registration window - for better future compatibility.
- included CRCandLen function for RegisterProduct window (for determining
length and CRC of user-enterable fields - particularly helpful for non-XML
registration applications).
- Included drag-and-drop support for XML RegisterProduct window.
- Allow command-line security file creation (for install script running).
- Dealer string allows a licence to be tied to a particular dealer.
Version 3.99b (29 June 2007)
- Removed stops :( from DLL
- Included RegisterABC.app with the correct dct structures required for
XML export.
Version 3.99a (28 June 2007)
- New Dealer field in the Licence file - will cause:

You need to delete your dssw4.tps file , and let Secwin re-upgrade your
Secwin3 file (for upgrading Secwin users).
- Limit Queues include the Relative switch (relative is not supported at
this stage, but will be supported later).
- Included XML file support for registration (requires xFiles version 1.23
or later).
Version 3.99 (26 June 2007)
New Features:
Fixes:
- Fix - CopyAccess was not operating correctly.
- Fix - When deleting a user, their access was not deleted.
- Fix - Users not limited to < 32000 (who's going to have more than 32000
users anyway?).
Version 3.47 (19 June 2007)
- Fix - different products using the same dssw2.tps file (and different
OS's accessing the same dssw2.tps file) - allows valid checking of the
Security file with the registry.
- Include latest Makeover in Secwin.
Version 3.46 (6 June 2007)
- Ability to disable Makeover in Secwin.
Version 3.45 (11 May 2007)
* Include latest Makeover classes into Secwin.
Version 3.44 (18 April 2007)
* Include latest Makeover classes into Secwin.
Version 3.43 (14 March 2006)
* Include latest Makeover classes into Secwin.
Version 3.42 (13 December 2006)
- New function - ds_ModifyAccess - allows modification of access rights
(without having to pass all the existing rights to the function)
Version 3.41 (29 August 2006)
- Message indicates when import is complete.
Version 3.40 (27 July 2006)
- Fix - Exports and imports all tables (was not importing the names table -
so no access rights were being carried over).
Version 3.39 (29 June 2006)
- Fix - for Firebird database support (regression when Ingress support was
implemented). If using Ingress, then you must set the Database Type to
Ingress (Secwin Global Extension template setting).
Version 3.38 (15 June 2006)
- Supports alternative data subdirectory for the security files for the
IPDriver (for more infor see the IPDriver Compatibility
section of this document).
Version 3.37 (10 May 2006)
- Fix - exports the ds_ImportTables and ds_ExportTables functions. These now
take a parameter as to whether you want to select a path to export to/import
from or (by default) export to the current directory without popping open a
select file dialog.
- Template change - tweaks to support SecwinOnlineServer generated code (now
100% control template generated code):
Calls the NetSimpleProcess, iunique changed to a string, implemented Serial
Number send and receive.
- Fix for MySQL operators create in C55 and c5 (regression in 3.36)
Version 3.36 (27 April 2006)
- Fix - workaround for MySQL5 support. MySQL 5 does not allow 0 DATEs (NULLs
are cool - but not zeros). When initializing the LastPasswordChangeDate
(LONG) - it's set to 0, which MySQL 5 was complaining about.
LastPasswordChangeDate is now created as an integer rather than a DATE on
the MySQL backend. In previous versions of MySQL this will also be created
as an integer, but existing DATE types (in previous versions of MySQL) will
still work.
Version 3.35 (27 April 2006)
- Template change - Updated Secwin Online Server control template to support using the HTTP protocol.
- Fix - created a secequ60.clw file which is only included for Clarion6.1
users and earlier (users on Clarion 6.2 9046 will need to check the manual
include checkbox on the global extension template as the requirement for
this include cannot be detected automatically between in 9046)
Version 3.34 (21 April 2006)
- Change to Login window - buttons made transparent, which means that
manifest files will be applied to the login window.
Version 3.33 (21 April 2006)
- Fix - IPDriver - was not detecting the status of the enable checkbox on
the IPDriver client template.
Version 3.32 (18 April 2006)
- Fix - MySQL driver was not creating the licence table correctly.
Version 3.31 (24 Feb 2006)
- Added ds_CloseFiles() function for when a program exits. This was
affecting the IPDriver build of Secwin, because not all the files were being
closed (by the IPDriver DLL) on program exit
Version 3.30 (1June 2005)
- Added ds_ExportTables and
ds_ImportTables functions.
- Added support for Clarion 6.2
- Added support for Ingress, using the ODBC driver
- Added "Secwin : After Login" embed point
- Cosmetic : Small tweak to AllOver utility template
- Fix : Clarion chain template code if no users exist
- Fix : Secwin items are not generated into Multi-Proj projects if Secwin is
disabled.
- Fix : Code added to GrantAccess routine to activate controls if Modules
exist.
Version 3.28 (22 December 2004)
- Added support for new
IP Driver
from SoftVelocity. (Clarion 6.1
only)
- Minor fix to LoginText function
- Updated About screen
- Added new Control Template (GetWebActivation) for use with
Secwin-Online-Server
Version 3.27 (26 October 2004)
- Updated template to new CapeSoft look
- minor fixes for 5.5H, 6.1 support and so on.
Version 3.26 (22 January 2004)
- Fixed Sync bug in ds_CurrentLogin in C6
Version 3.25 (12 January 2004)
- Some changes for Clarion 6 compatibility
- Added support for Postgress in the ODBC version
- Added "Allover" template utility for generating all SetAccess names
Version 3.22 (14 July 2003)
Version 3.21
- Changed all examples to compile in 32 bit
- Added ability to change date picture used on "Messages".
- Fixed problem on Operator Form when "Level" was translated.
Version 3.20
- Added support for Makeover 2.5. If you are using Makeover version 2.5 (or
later) then you MUST use Secwin version 3.2 (or later). You can download
the latest Makeover from here.
- Dropped support for 16 bit. (If this is a problem for you let me know, but
as far as I know no-one is actually using 16 bit, so it bloats the install
for no good reason.)
- Clarion 4 Support Dropped : This version makes use of Clarion 5 language
features. With the imminent release of Clarion 6, support of Clarion 4 is
being phased out.
Version 3.19
- Added ds_GetWorkGroupEx function. (returns
a long, not a short)
- Added ds_CurrentWorkGroupEx function.
(returns a long, not a short)
- Corrected docs - 30 controls allowed, not 31
- Set MySQL to create UpperCase table names
Version 3.16d beta 6
- Added ds_CurrentlyLoggedInEx function
- Fixed message where too many users logged in - now correctly displays names
of people already logged in.
Version 3.16c beta 5
- fixed problem with translations on the SetAccess window
- fixed problem with messages being suppressed immediately after registering
- lengthened column headers from 9 to 20 characters
Version 3.16 beta 4
Version 3.15 beta 3
- Extended number of optional modules supported from 15 to 30.
- Support for MsSql, Oracle and ODBC (MySql / Interbase) drivers completed.
Examples included. See Security-File Driver
Version 3.1 beta 1
Version 3.11 beta 2
- Fixed some bugs in Splash, and SplashABC examples. Specifically a missing
"do LoadQueue" from myBrowseOperators in SplashABC, and some code
to both myBrowseOperators and mySetAcess to limit access to these screens
to supervisors. Also ticked on the Password attribute for all password fields.
- Extended the Change Login Code template
quite a bit. The menu item should now use this template, and not call ChangeLogin
directly. Even if you are calling your own Change Login, you should still
use this template from the menu.
- Changed the Login template (internally)
to support "only 3 tries" even if a myLogin screen is used.
- Changed the Login template (internally)
so that if a myLogin window is used, then it allows repeat attempts. This
makes it consistent with the built-in Secwin login screen.
- Changed the Login template (internally)
to support Automatic Logins from other EXE's, even if a myLogin window is
used.
- Added a new option to the Login template
to allow you to specify the name of your MyFirstUser procedure.
- ds_CountUsers function added.
ds_InsertFirstUser function added. These are both necessary to take care
of the case where no users exist in the system.
- Fixed bug in ds_InsertUserEx function.
- Added myFirstUser procedure to Splash and SplashABC examples.
Version 3.0 Beta 5 :
SPECIAL NOTE : If you used Beta 3, or Beta 4, with any of the SQL driver
packs (MsSql, SQLAnywhere, Oracle, ODBC etc) then you will most likely need to
Drop all the DSSW
n Tables and let Secwin re-create them. This is due to
some changes which were required by SQL in order for Secwin to work properly.
- New : Automatic Impending Expiry Date warning. See UserScreenSecurity
extension.
- New : Restrict Controls based on License Level. See UserScreenSecurity
extension.
- New : Restrict Controls based on Optional Modules in License. See UserScreenSecurity
extension.
- New : Stores MDI Logo thread number in MdiLogoThread# in case you want
to send it an event from the Frame.
- New : ds_SecwinMessage function.
- New : The License file is now encrypted using triple DES. This prevents
the license being changed by data file browsers.
- Changed : AccessRestricted message moved from Template to DLL (to allow
translating) by using ds_SecwinMessage.
- Improved : translation support, especially on SetAccess screen.
- Fixed : SQL support - now appears to be all working except for Concurrent
copies checking
- Fixed : Disable Secwin now disables all CODE templates as required
- Fixed : User Group Form 'wot got broke in beta 4 like'.
- Fixed : Bug in Registration procedure which caused non-displayed optional
modules to be set ON. When generating codes, non-visible optional modules
are assumed to be OFF.
Version 3.0 Beta 4 :
- Fixed bug in registration Code activations
- Fixed SQL support. Tested with MsSql - other tests hopefully coming soon
- Fixed bug in Btrieve, not allowing any operators.
- Fixed bug in Login window after frame opens.
- Fixed bug in Translate feature on Set Access screen.
- Fixed problem where the Change and Delete buttons are not properly disabled
in ABC.
- New : Multi-Set example - Demonstates Secwin in a Multi-Dataset application.
- New : Supports Template Driver setting of <nothing>
- New : Added option to set the Level of the Demo License. See Login
Extension, Licensing Tab.
- New : MsSQL example included in the MsSQL driver pack.