Leaked source code of windows server 2003
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
#include "pch.h"
//
// Personal expenditures
//
#define ACCESS_FUND_PERSONAL 0x00000001
//
// Company spending
//
#define ACCESS_FUND_CORPORATE 0x00000002
//
// Transfer to other funds
//
#define ACCESS_FUND_TRANSFER 0x00000004
/*++
Class Description This class handles the access control for a fund, using AuthZ and internal logic to determine whether certain users should be permitted certain types of actions on the fund.
--*/
class FundsRM { private:
//
// The amount of money available in the fund
//
DWORD _dwFundsAvailable; //
// The resource manager, initialized with the callback functions
//
AUTHZ_RESOURCE_MANAGER_HANDLE _hRM; //
// The security descriptor for the fund, containing a callback ACE
// which causes the resource manager callbacks to be used
//
SECURITY_DESCRIPTOR _SD; public:
//
// Constructor for the resource manager
// dwFundsAvailable is the initial funds deposited
//
FundsRM(DWORD dwFundsAvailable); //
// Destructor
//
~FundsRM(); //
// This function is called by a user who needs approval of a given amount
// of spending in a given spending type. If the spending is approved, it
// is deducted from the fund's total. If the spending is approved, TRUE
// is returned. Otherwise FALSE is returned.
//
// LPTSTR szwUsername - The name of the user, currently limited to
// Bob, Martha, or Joe
//
// DWORD dwRequestAmount - The amount of spending requested, in cents
//
// DWORD dwSpendingType - The type of spending, ACCESS_FUND_PERSONAL,
// ACCESS_FUND_TRANSFER, or ACCESS_FUND_CORPORATE
//
BOOL Authorize(LPTSTR szwUsername, DWORD RequestAmount, DWORD SpendingType); //
// Returns the amount of funds still available
//
DWORD FundsAvailable(); };
|