Postgres Users, Windows Server Users and groups

Paul Mulroney pmulroney at logicaldevelopments.com.au
Mon Aug 29 13:30:12 UTC 2022


Hi Martin,

This is what the code would look like in Omnis - you don't need to create an Omnis Scheme to fetch the information, just load the results into a list: (Studio 10.2)

Create a list var vlResults, and two char vars role_name and role_attributes.  Have an object var voStatement, and a session object (voSession) already defined and setup.

# Assume that you already have a Postgres session that you've connected to.
Do vlResults.$define(role_name,role_attributes) ## Define the list to hold the results
Do voSession.$newstatement Returns voStatement ## Get a new statement object to process
Begin statement ## Setup the SQL query in Postgres.
Sta: SELECT usename AS role_name,
Sta: CASE
Sta:   WHEN usesuper AND usecreatedb THEN
Sta:     CAST('superuser, create database' AS pg_catalog.text)
Sta:   WHEN usesuper THEN
Sta:     CAST('superuser' AS pg_catalog.text)
Sta:   WHEN usecreatedb THEN
Sta:     CAST('create database' AS pg_catalog.text)
Sta:   ELSE
Sta:     CAST('' AS pg_catalog.text)
Sta: END role_attributes
Sta: FROM pg_catalog.pg_user
Sta: ORDER BY role_name desc;
End statement
Get statement vsQuery ## Get in a char field so we can debug later if we need to.
Do voStatement.$execdirect(vsQuery) ## Run it
If voStatement.$errorcode=kDAMNoError ## Was there an error?
Do voStatement.$fetch(vlResults,kFetchAll) ## No, get all results.
Else
# Report error here
End If
# At this point you'll have a list of users and roles in vlResults
Quit method 


Regards,
Paul.


> On 29 Aug 2022, at 6:12 pm, Martin Obongita <martin.obongita at yahoo.com> wrote:
> 
> Hi Paul,
> 
> Thank you for the query.
> 
> How do I create the Omnis schema for the Postgres users?
> 
> Rgds,
> Martin O.
> 
> On Monday, August 29, 2022 at 04:27:41 AM GMT+3, Paul Mulroney <pmulroney at logicaldevelopments.com.au> wrote:
> 
> 
> Hi Martin,
> 
> You can get the list of Postgres users with a query:
> 
> SELECT usename AS role_name,
> CASE
>   WHEN usesuper AND usecreatedb THEN
>     CAST('superuser, create database' AS pg_catalog.text)
>   WHEN usesuper THEN
>     CAST('superuser' AS pg_catalog.text)
>   WHEN usecreatedb THEN
>     CAST('create database' AS pg_catalog.text)
>   ELSE
>     CAST('' AS pg_catalog.text)
> END role_attributes
> FROM pg_catalog.pg_user
> ORDER BY role_name desc;
> 
> This is assuming you have already logged into Postgres.
> 
> Regards,
> Paul.
> 
> 
> > On 29 Aug 2022, at 6:34 am, Martin Obongita via omnisdev-en <omnisdev-en at lists.omnis-dev.com> wrote:
> > 
> > Hi ALL,
> > How do I get a list of all users created in my Postgres database on to Omnis?How do I get a list of all active directory users and groups created in a windows server?Is there a function to get this info?
> > I wonder if its also possible to get the passwords as well.
> > In other words, is there a way to setup my application to use the two securities already setup to logon to my application?I wish to have the option for end-users to chose to logon to my application with either setup.
> > 
> > Kind regards,Martin O. 
> > _____________________________________________________________
> > Manage your list subscriptions at https://lists.omnis-dev.com
> > Start a new message -> mailto:omnisdev-en at lists.omnis-dev.com 
> 
> 
> If you are wise you will only believe half of what you hear.  if you are brilliant you will know which half to believe.
> -- 
> Paul W. Mulroney                                            We Don't Do Simple Pty Ltd 
> pmulroney at logicaldevelopments.com.au      Trading as Logical Developments
> www.logicaldevelopments.com.au                  ACN 161 009 374 
> Ph: +61 8 9458 3889                                      86 Coolgardie Street
>                                                                         BENTLEY  WA  6102
> 
> 
> 
> 




 	Paul W Mulroney
Logical Developments
Customised Software Solutions
Ph: 08 9458 3889
 	We Don't Do Simple Pty Ltd
trading as
Logical Developments
ACN 161 009 374
 	       



More information about the omnisdev-en mailing list