of_initsecurity


pfcapsrv.pbl   >   pfc_n_cst_security   >   of_initsecurity   

Full name pfc_n_cst_security.of_initsecurity
Access public
Extend of integer
Return value integer
Prototype public function integer of_initsecurity(n_tr,string,string,string,boolean)

Name Datatype
No Data

Name Datatype
li_idx integer
li_rc integer

public function integer of_initsecurity (n_tr atr_trans, string as_appname, string as_userid, string as_defaultgroup, boolean ab_precache);//////////////////////////////////////////////////////////////////////////////
//
//	Function:  of_InitSecurity
//
//	Access:  public
//
//	Arguments : 
//	atr_trans 			used to connect to the database
//	as_appname			application id
//	as_userid			user id
//	as_defaultgroup	group to be used if the user does not belong to one
//	ab_precache			preload all settings for the user - Default is false
//
//	Returns:  Integer. 1 = OK
//							-1 = Transaction not connected
//							-2 = Application not in dataabse
//							-3 = User not in database
//							-4 = User is not a member of any groups and default group does not exist
//							-5 = Default group not supplied
//							-6 = Error retrieving information
//
//
//	Description:	Initialize the database connection, application and user id's. 
//						Used when setting security.
//
//////////////////////////////////////////////////////////////////////////////
//
//	Revision History
//
//	Version
//	5.0   Initial version
//	5.0.03 Added additional error checking for retrieve statements
//	5.0.03 Fixed problem where is_defaultgroup was used instead of as_defaultgroup
//	6.0 Added ab_precache option
//
//////////////////////////////////////////////////////////////////////////////
//
//	Copyright © 1996-1997 Sybase, Inc. and its subsidiaries.  All rights reserved.
//	Any distribution of the PowerBuilder Foundation Classes (PFC)
//	source code by other than Sybase, Inc. and its subsidiaries is prohibited.
//
//////////////////////////////////////////////////////////////////////////////

integer	li_rc, li_idx

// transaction not connected
if NOT atr_trans.of_isconnected() then return -1

as_defaultgroup = lower(as_defaultgroup)
as_appname = lower(as_appname)
as_userid = lower(as_userid)

 // Is this a valid application?
ids_groups.dataobject = 'd_pfcsecurity_applookup'
ids_groups.of_settransobject(atr_trans)
li_rc = ids_groups.retrieve(as_appname)
if li_rc = 0 then return -2
if li_rc < 0 then return -6

 // Is this a valid user ?
ids_groups.dataobject = 'd_pfcsecurity_userlookup'
ids_groups.of_settransobject(atr_trans)
li_rc= ids_groups.retrieve(as_userid)
if li_rc = 0 then return -3
if li_rc < 0 then return -6

 // how many groups does this user belong to ?
ids_groups.dataobject = 'd_pfcsecurity_grouplookup'
ids_groups.of_settransobject(atr_trans)
ii_numgroups = ids_groups.retrieve(as_userid)
if ii_numgroups = 0  then 
	 // Is default group valid ?
	if len(as_defaultgroup) > 0 then
		ids_groups.dataobject = 'd_pfcsecurity_groupverify'
		ids_groups.of_settransobject(atr_trans)
		ii_numgroups = ids_groups.retrieve(as_defaultgroup)
		if ii_numgroups = 0 then return -4
	else
		return -5
	end if
elseif ii_numgroups < 0 then
	return -6
end if 

// set up item list
ids_items.dataobject = 'd_pfcsecurity_controllist'
ids_items.of_settransobject(atr_trans)
ids_items.of_setappend(true)

// set the values
ib_initsecurity = true
is_defaultgroup = as_defaultgroup
is_app = as_appname
is_userID = as_userid
ib_precache = ab_precache
itr_trans = atr_trans

If ab_precache Then
	// go and retrieve ALL settings for this user
	ids_items.dataobject = 'd_pfcsecurity_allcontrollist'
	ids_items.of_settransobject(atr_trans)
	li_rc = ids_items.retrieve(as_appname, as_userid)
	// read in the setting for all the groups the the user belongs to
	For li_idx = 1 To ii_numgroups 
		li_rc = ids_items.Retrieve(is_app, ids_groups.object.group_name[li_idx] )
		If li_rc = -1 Then
			Return -1
		Else 
			// Resort to force ordering
			ids_items.sort() 
			il_numberofrows += li_rc
		End If
	Next
End If

Return 1

end function

     
Name Owner
pfc_n_cst_security.of_initsecurity pfc_n_cst_security

     
Name Owner
datastore.sort datastore
systemfunctions.len systemfunctions
systemfunctions.lower systemfunctions
pfc_n_ds.of_settransobject pfc_n_ds
pfc_n_ds.of_setappend pfc_n_ds
pfc_n_tr.of_IsConnected pfc_n_tr

     
Full name
No Data

     
Name Scope
No Data