We have been doing this for a few years.

People login to Unix (HP-Ux).  

Within each UniBasic program, we do a gosub Access.Check.

I expect to enhance this with a file of users, depts, and printers so that I
no longer have to suffer the "hard-coded" dis.

HTH.

--Bill  

*---------------------------------------------------------------------------
--
Access.Check:

  VM = char(253)

  Access.Depts  = ' '        : VM
  Access.Depts := 'Act'      : VM
  Access.Depts := 'Cust'     : VM
 *Access.Depts := 'Dock'     : VM
 *Access.Depts := 'Eng'      : VM
 *Access.Depts := 'Est'      : VM
  Access.Depts := 'Exec'     : VM
  Access.Depts := 'Pack'     : VM
  Access.Depts := 'Prod.Mgr' : VM
  Access.Depts := 'Prod'     : VM
  Access.Depts := 'Purch'    : VM
  Access.Depts := 'Qual.Mgr' : VM
  Access.Depts := 'Qual'     : VM
  Access.Depts := 'Sales'    : VM
  Access.Depts := 'Tool.Mgr'
                                                       
  call *ACCESS.CHECK.R5(Access.Depts, Access.Status)
                                   if Access.Status # 'Granted'  then  go
The.End 

return

*-------------------------------------------------------------------------
*-------------------------------------------------------------------------

*R0  Bill Brutzman  Jan.2006

  SUBROUTINE ACCESS.CHECK.R5 ( Access.Depts, Access.Status )

  equate true to 1, false to 0

  VM = char(253)

  prompt ''

*---------------------------------------------------------------------------
---
Access.Check:

  begin case

        case @logname = 'joann'      ;  My.Dept = 'Act' 

        case @logname = 'karen'      ;  My.Dept = 'Cust' 
        case @logname = 'maria'      ;  My.Dept = 'Cust' 

        case @logname = 'lou'        ;  My.Dept = 'Dock' 

        case @logname = 'bobs'       ;  My.Dept = 'Eng' 

        case @logname = 'rich'       ;  My.Dept = 'Est'  

        case @logname = 'osborn'     ;  My.Dept = 'Exec' 
        case @logname = 'raymond'    ;  My.Dept = 'Exec' 

        case @logname = 'brutzy'     ;  My.Dept = 'IT' 
        case @logname = 'color'      ;  My.Dept = 'IT' 
        case @logname = 'pm'         ;  My.Dept = 'IT' 

        case @logname = 'jimr'       ;  My.Dept = 'Pack' 
        case @logname = 'robert'     ;  My.Dept = 'Pack' 

        case @logname = 'mike'       ;  My.Dept = 'Prod.Mgr' 
        case @logname = 'jimt'       ;  My.Dept = 'Prod' 

        case @logname = 'maryann'    ;  My.Dept = 'Purch' 
        case @logname = 'jimc'       ;  My.Dept = 'Purch' 

        case @logname = 'ed'         ;  My.Dept = 'Qual.Mgr' 
        case @logname = 'alex'       ;  My.Dept = 'Qual' 
        case @logname = 'wayne'      ;  My.Dept = 'Qual' 

        case @logname = 'brian'      ;  My.Dept = 'Sales' 
        case @logname = 'jimg'       ;  My.Dept = 'Tool.Mgr' 

        case @logname = 'eddie'      ;  My.Dept = 'Tool.Room' 
        case @logname = 'jimb'       ;  My.Dept = 'Tool.Room' 
        case @logname = 'joe'        ;  My.Dept = 'Tool.Room' 
        case @logname = 'ken'        ;  My.Dept = 'Tool.Room' 
        case @logname = 'lloyd'      ;  My.Dept = 'Tool.Room' 

        case @logname = 'fred'       ;  My.Dept = 'Maint' 

        case 1                       ;  My.Dept = 'UnDefined'
  end   case

*--------------------------------------

  begin case
        case My.Dept = 'IT'          ;  Access.Status = 'Granted'  ;  go
The.End
  end   case

*--------------------------------------

  All.Depts = dcount(Access.Depts, VM )

                                          Access.Status = 'Denied'
  for Dept.Posn = 1 to All.Depts

                         This.OK.Dept = Access.Depts<1, Dept.Posn>
    begin case
          case My.Dept = This.OK.Dept  ;  Access.Status = 'Granted'  ;  go
The.End
    end   case

  next Dept.Posn

  gosub Access.Denied  

  go The.End

*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
Access.Denied:

  crt @(-1)

  crt
  crt
  crt
  crt
  crt
  crt
  crt
  crt
  crt
  crt
  crt
  crt @(-5)
  crt ' __________________        '
  crt ' \                 \       '
  crt '  \  Access Denied  \      '
  crt '   \_________________\     ' 
  crt '                       [X] ' : @(-6)
  crt '                        ':

  input Ans, 1

  Ans = upcase(Ans)

  begin case
        case Ans = 'X'  ;  null
        case 1          ;  go Access.Denied   
  end   case

return

*-------------------------------------------------------------------------
The.End:

  RETURN
  END





-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] Behalf Of Baker Hughes
Sent: Thursday, April 19, 2007 9:49 AM
To: u2-users@listserver.u2ug.org
Subject: [U2] Single Signon for U2 - Identity Management ?


You know how when you go to bed sometimes and your brain keeps thinking
about some problem...

I've been thinking this isn't possible in U2 environment, but sometime
during the night I resolved to ask the question.

Does anyone know of an Identity Management Suite that is U2 aware?  This
data security issue represents the next frontier for programmers, for
solution providers, for network analysts.  Who is the frontiersman in
the U2/MV space?

What we need - single signon and immediate access to those systems,
servers, storage that your identity allows.  Whatever you don't have
rights to, you can't see (an old Novell concept that Microslop still
doesn't get).

Does anyone know about an IDM solution that interoperates with the major
*nix OS's that U2 is ported to?

Thanks for any guidance.

-Baker
-------
u2-users mailing list
u2-users@listserver.u2ug.org
To unsubscribe please visit http://listserver.u2ug.org/
-------
u2-users mailing list
u2-users@listserver.u2ug.org
To unsubscribe please visit http://listserver.u2ug.org/

Reply via email to