Advice on best practices and approach for new development

If you have questions or if you want to share your opinion about Aware IM post your message on this forum
Post Reply
MarkP
Posts: 20
Joined: Tue Jul 28, 2020 2:57 am
Location: Brisbane AUS

Advice on best practices and approach for new development

Post by MarkP »

Hi everyone,
Mark the newbie here.
I am looking for advice on possibly the best direction(s) to take in terms of developing the following app in AwareIM.

I have been reviewing all of the AwareIM video tutorials with the intention of converting an existing multi-tenant Access application (Access front end / SQL Server backend hosted in the Cloud) to an AwareIM front end linked to a similar SQL Server backend.
I have already defined my business objects (which will probably need alteration based on comments received) but in terms of managing logins and access rights etc it has become obvious that there is more than 1 way to skin a cat when developing a similar approach in AwareIM.
So my users normally login to the application by indicating their respective company account IDs first along with a valid userid/password associated with that company id. We normally configure the company id account initially with a default id/password of admin and admin with full access rights to allow them to log into the system and get started firstly by changing the default id and password to suit. So the uniqueness of the login id is based on the AccountID / UserID combination and not just the UserID.
Multi Tenant Logon Security Screen
Multi Tenant Logon Security Screen
LogOnScreen.jpg (36.53 KiB) Viewed 2459 times
When I look at the videos related to Access Control levels, it appears that Aware wants you to have a unique UserID for each RegularUser object and gives you an error message if you try to input a duplicate. So this would cause an initial problem of defining startup logins of admin and admin against each company account (Because sometimes many users dont actually change this).
Normally you can control this directly within SQL Server by defining a unique index combination of these 2 fields on your User record but in the AwareIM properties related to attributes you can't define a multiple attribute unique index (not as far as I can see anyway).
So initially I see a problem with (a) having to customize the default Aware log in screen to incorporate a customer account data entry field along with userid/password and then checking this combination for validity and establishment of access rights. (b) normally we store appropriate access rights as session variables so that the app can determine what the logged on user is allowed to do. There doesn't seem to be an equivalent session variable methodology in Aware? Or am I missing something? I understand that you can set up combinations of access control levels and visual perspectives to switch menu and process options on/off but this is only valid if you have pre-defined access capabilities linked to specific levels. In my case, each user record has a set of Yes/No flags or No Access / Read Only / Full Access fields encompassing many areas of the application and hence there are pretty much unlimited combinations of security rights available. In Access we control all of this through VBA code.
Example of User Access Right flags
Example of User Access Right flags
UserAccessRightsExample.jpg (162.58 KiB) Viewed 2459 times
So, given that such a wide variety of security rights is available I don't think it is possible to use multiple visual perspectives unless you just use one overall VP and include a whole heap of business rules associated with each flag to protect / read protect the various menu options and processes accordingly.

I would also be interested to hear any advice / information on how performance is affected using lots of business rules to control data manipulations rather than code. For example, do multiple rule validation processes linked to attributes (as opposed to form level business rule processing) cause multiple callbacks to the server or are they all processed and evaluated in memory first prior to writing back to the server? In Access VBA code we do all the necessary calculations and data manipulations first prior to writing final transactions to the database and I am wondering if AwareIM does the same?

Any advice on how you AwareIM experts might approach this would be greatly appreciated to get me started.
Thanks in advance
Mark
customaware
Posts: 2391
Joined: Mon Jul 02, 2012 12:24 am
Location: Ulaanbaatar, Mongolia

Re: Advice on best practices and approach for new developmen

Post by customaware »

Have PM'd you Mark
Cheers,
Mark
_________________
AwareIM 6.0, 8.7, 8.8, 9.0 , MariaDB, Windows 10, Ubuntu Linux. Theme: Default, Browser: Arc
Upcloud, Obsidian....
Image
Post Reply