rtsecuritymanager/rtsecuritymanagerserver/inc/rtsecmgrpolicyparser.h
changeset 57 61b27eec6533
parent 45 7aa6007702af
--- a/rtsecuritymanager/rtsecuritymanagerserver/inc/rtsecmgrpolicyparser.h	Fri Apr 16 15:54:49 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,282 +0,0 @@
-/*
-* Copyright (c) 2007-2008 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:       Utility XML parser to parse trust and access policy files
- *
-*/
-
-
-
-
-
-
-#ifndef C_RTSECMGRPOLICYPARSER_H
-#define C_RTSECMGRPOLICYPARSER_H
-
-#include <e32base.h>
-#include <gmxmlparser.h>
-#include <gmxmlnode.h>
-#include <escapeutils.h>
-#include "rtsecmgrdata.h"
-#include "rtsecmgrcommondef.h"
-
-/*
- * Enumerations for policy parsing status codes
- * 
- */
-enum TParserErrCode
-{
-	EErrNone = 0, //zero for success , equivalent to KErrNone of symbian
-	EErrInvalidDocNode = KErrXMLBase,
-	EErrInvalidRootNode = EErrInvalidDocNode - 1,
-	EErrNoPolicyInfo   = EErrInvalidRootNode - 1,
-	EErrInvalidDomainName = EErrNoPolicyInfo - 1,
-	EErrRepeatedDomainTag = EErrInvalidDomainName - 1,
-	EErrJunkContent = EErrRepeatedDomainTag - 1,
-	EErrNoDefaultCondition = EErrJunkContent - 1,
-	EErrInvalidFormat = EErrNoDefaultCondition - 1,
-	EErrInvalidCapability = EErrInvalidFormat - 1,
-	EErrInvalidPermission = EErrInvalidCapability - 1,
-	EErrRepeatedCaps = EErrInvalidPermission - 1,
-	EErrRepeatedAliasTag = EErrRepeatedCaps - 1,
-	EErrInvalidAliasName = EErrRepeatedAliasTag - 1,
-	EErrMisplacedAlias = EErrInvalidAliasName
-};
-
-/*
- * Abstracts policy parsing logic.
- * 
- * Security access policy and trust policy are represented in
- * XML format. CPolicyParser uses native XML parser to parse
- * the policy files.
- * 
- *  
- * @see MMDXMLParserObserver
- * @see CMDXMLParser
- * @see CMDXMLElement
- * @see CProtectionDomain
- * @see CTrustInfo
- * @see TUserPromptOption
- * 
- * @exe rtsecmgrserver.exe
- */
-NONSHARABLE_CLASS(CPolicyParser) : public CBase, public MMDXMLParserObserver
-{
-public:
-	
-	/**
-	 * Two-phased constructor
-	 * 
-	 * Constructs a CPolicyParser instance
-	 * 
-	 * @return CPolicyParser* pointer to an instance of CPolicyParser
-	 */
-	static CPolicyParser* NewL();
-
-	/**
-	 * Two-phased constructor
-	 * 
-	 * Constructs a CPolicyParser instance and leaves the created instance
-	 * on the cleanupstack
-	 * 
-	 * @return CPolicyParser* pointer to an instance of CPolicyParser
-	 */
-	static CPolicyParser* NewLC();	
-
-
-	/**
-	 * Destructor
-	 * 
-	 */
-	~CPolicyParser();
-	
-	/**
-	 * Parses the security access policy file and populates
-	 * the input protection domain array
-	 * 
-	 * @param aSecPolicy RFile& Handle to security policy file
-	 * @param aPolicyInfo RProtectionDomains& input array of protection domains
-	 * 
-	 * @return EErrSuccess if there is no parsing error; Otherwise one of
-	 * error codes defined in TParserErrCode
-	 * 
-	 * @see TParserErrCode
-	 */
-	TInt GetPolicyInfo(RFile& aSecPolicy, RProtectionDomains& aPolicyInfo, RAliasGroup& aAliasGroup);	
-	
-	/**
-	 * Callback offered by MMDXMLParserObserver to notify the calling client that the XML 
-	 * parsing is completed and DOM data structure is available for 
-	 * navigation
-	 * 
-	 * @see MMDXMLParserObserver
-	 * 
-	 * This identifies whether the policy file is in the proper format
-	 * if not in proper format, parsing errors as defined in TParserErrCode are thrown
-	 * @see TParserErrCode
-	 */
-	void ParseFileCompleteL();	
-private:	
-	
-	//private default constructor
-	inline CPolicyParser();	
-	
-	/**
-	 * Gets the list of capability nodes provided the parent domain
-	 * node
-	 * 
-	 */
-	TInt GetCapsNode(CMDXMLElement* aParentDomainNode, 
-					 RPointerArray<CMDXMLElement>& aCapNodes, 
-					 const TDesC& aNodeName);
-	
-	/**
-	 * Overloaded version to get the list of capability nodes provided the parent domain
-	 * node
-	 * 
-	 */
-	CMDXMLElement* GetCapsNode(CMDXMLElement* aParentDomainNode, const TDesC& aNodeName);
-	
-
-	/**
-	 * Populates the permission set data structure with capability
-	 * information provided the parent capability node
-	 * 
-	 * @return EErrSuccess if there is no parsing error; Otherwise one of these error codes 
-	 * @return EErrRepeatedCaps if there are capabilities specified more than once in same domain
-	 * @return EErrInvalidCapability if the capability string is invalid
-	 * 
-	 * @see TParserErrCode
-	 * 
-	 */
-	TInt GetCapabilities(CMDXMLElement* aParentNode, 
-						 CPermissionSet& aCapInfo,
-				   	 	 TUserPromptOption aUpOpt=RTUserPrompt_UnDefined,
-				   	 	 TBool aUGCaps=EFalse,
-						 TUserPromptOption aDefUpOpt=RTUserPrompt_UnDefined);
-						 
-	/**
-	 * Gets the user prompt option provided the parent user node
-	 * 
-	 * @return EErrSuccess if there is no parsing error; Otherwise one of these error codes 
-	 * @return EErrInvalidPermission if prompt sessions specified are invalid
-	 */
-	TInt GetConditions(CMDXMLElement* aParentNode, TUserPromptOption& aUserPromptOpt);
-	
-	/**
-	 * Gets the default user prompt option provided the parent user node
-	 * 
-	 */
-	TUserPromptOption GetDefaultCondition(CMDXMLElement* aParentNode);
-	
-	/**
-	 * Utility to convert the stringified user prompt option text to
-	 * TCapability enumeration
-	 * 
-	 * @see TCapability
-	 * 
-	 */
-	TCapability GetCapability(const TDesC& aUserPromptOpt);
-	
-	/**
-	 * Utility to convert the stringified user prompt option to
-	 * TUserPromptOption structure
-	 * 
-	 */
-	TUserPromptOption GetUserPromptOption(const TDesC& aUserPromptOpt);		
-	
-	/**
-	 * Finds out if a domain node is present with the passed domain name
-	 * 
-	 */
-	TBool isDomainPresent(const TDesC& aDomainName);
-	
-	/**
-	 * Utility method to check if a capability is already part of 
-	 * unconditional permissions
-	 * 
-	 */
-	TBool IsPresent(const CPermissionSet& aCapInfo, TCapability aCap);
-	
-	/**
-	 * Utility method to check if a capability is already part of user
-	 * grantable permissions
-	 * 
-	 */
-	TBool IsUserGrantPresent(const CPermissionSet& aCapInfo, TCapability aCap);
-
-	
-	/**
-	 * Populates the permission set data structure with capability
-	 * information provided the parent capability node
-	 * 
-	 * @return EErrSuccess if there is no parsing error; Otherwise one of these error codes 
-	 * @return EErrRepeatedCaps if there are capabilities specified more than once in same domain
-	 * @return EErrInvalidCapability if the capability string is invalid
-	 * 
-	 * @see TParserErrCode
-	 * 
-	 * This is similar to GetCapabilities method except that this retrives the capability information for the Group
-	 */
-	TInt GetCapabilitiesForGroup(CMDXMLElement* aParentNode, 
-						 CPermissionSet& aCapInfo,
-						 CPermission& aAliasInfo,
-				   	 	 TUserPromptOption aUpOpt=RTUserPrompt_UnDefined,
-				   	 	 TBool aUGCaps=EFalse,
-						 TUserPromptOption aDefUpOpt=RTUserPrompt_UnDefined);
-						 
-	/**
-	 * Finds out if the passed capability is present in alias group
-	 * 
-	 */
-	TBool IsCapsAliasPresent(const CPermission& aAliasInfo, TCapability aCap);
-	
-	/**
-	 * Finds out if a domain node is present with the passed domain name
-	 * 
-	 */
-	TBool isAliasPresent(const TDesC& aAliasName);
-	
-		
-private:	
-	
-	//reference to undelying native symbian XML parser
-	CMDXMLParser* iDomParser;	
-	
-	//Completion status of parsing request made to XML parser.
-	TRequestStatus* iStatus;
-	CActiveSchedulerWait iWaitScheduler;
-	
-	//list of domains declared in the security access policy
-	RProtectionDomains iPolicyInfo;
-	
-	//list of trust information specified in the trust policy file
-	RTrustArray iTrustInfo;
-
-	//variable to initiate parsing for trust policy file
-	TBool isTrustInfo;
-	
-	//status code to store last parsing error
-	TInt iLastError;
-
-	
-	//Array of TPermissions - used for Capability Grouping
-	RAliasGroup iAliasGroup;
-
-};
-
-#endif  //C_RTSECMGRPOLICYPARSER_H
-
-// End of file
-
-