/***********************************************************************
*
* Copyright (C) 2005-2006 Novell, Inc. All Rights Reserved.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; version 2.1
* of the License.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, Novell, Inc.
*
* To contact Novell about this file by physical or electronic mail,
* you may find current contact information at www.novell.com.
*
***********************************************************************/
namespace Novell.CASA.GUI {
using System;
using System.Collections;
using Novell.CASA.CASAPolicy;
using Novell.CASA;
public class StorePolicyInterface
{
private static AggregationPol aggPol;
private static string storeNameFirefox = null;
private static string[] storeIdFirefox = new string[Common.MAX_STORES];
private static int kFireFoxStoreCounter = 0;
private static string storeNameMozilla = null;
private static string[] storeId_mozilla = new string[Common.MAX_STORES];
private static int kMozillaStoreCounter = 0;
private static string storeNameKwallet = null;
private static string[] storeIdKwallet = new string[Common.MAX_STORES];
private static int kWalletStoreCounter = 0;
private static string storeNameGkeyring = null;
private static string[] storeIdGkeyring = new string[Common.MAX_STORES];
private static int kGkeyringStoreCounter = 0;
///#######################################################################
/// INIT
///
/// Init AggregationPolicy to the respective attributes
///
public static int Init()
{
Logger.DbgLog("GUI:StorePolicyInterface.Init() - BEGIN");
try
{
aggPol = (AggregationPol) ICASAPol.GetPolicy(CASAPolType.AGGREGATION_POL);
if( null == aggPol )
{
Logger.DbgLog("GUI:StorePolicyInterface.Init() - No Aggregation Policy Found.");
return( Common.STATUS_POLICY_POLICYNOTFOUND );
}
ArrayList stores = aggPol.StoreList;
IEnumerator enumerator = stores.GetEnumerator();
while( enumerator.MoveNext() )
{
if( ((Novell.CASA.CASAPolicy.Store)(enumerator.Current)).StoreName.Equals(Common.STORENAME_KDEWALLET) )
{
Common.IS_KDEWALLET = true;
storeNameKwallet = ((Novell.CASA.CASAPolicy.Store)(enumerator.Current)).StoreName;
storeIdKwallet[kWalletStoreCounter++] = ((Novell.CASA.CASAPolicy.Store)(enumerator.Current)).StoreId;
Logger.DbgLog("GUI:StorePolicyInterface.Init() - miCASA policy = " + Common.IS_MICASA);
}
else if(((Novell.CASA.CASAPolicy.Store)(enumerator.Current)).StoreName.Equals(Common.STORENAME_GNOMEKEYRING))
{
Common.IS_GNOMEKEYRING=true;
storeNameGkeyring=((Novell.CASA.CASAPolicy.Store)(enumerator.Current)).StoreName;
storeIdGkeyring[kGkeyringStoreCounter++]=((Novell.CASA.CASAPolicy.Store)(enumerator.Current)).StoreId;
Logger.DbgLog("GUI:StorePolicyInterface.Init() - GNOMEKEYRING policy = " + Common.IS_GNOMEKEYRING);
}
else if(((Novell.CASA.CASAPolicy.Store)(enumerator.Current)).StoreName.Equals(Common.STORENAME_FIREFOX))
{
Common.IS_FIREFOX=true;
storeNameFirefox=((Novell.CASA.CASAPolicy.Store)(enumerator.Current)).StoreName;
storeIdFirefox[kFireFoxStoreCounter++]=((Novell.CASA.CASAPolicy.Store)(enumerator.Current)).StoreId;
Logger.DbgLog("GUI:StorePolicyInterface.Init() - FIREFOX policy = " + Common.IS_FIREFOX);
}
else if(((Novell.CASA.CASAPolicy.Store)(enumerator.Current)).StoreName.Equals(Common.STORENAME_MOZILLA))
{
Common.IS_MOZILLA=true;
storeNameMozilla=((Novell.CASA.CASAPolicy.Store)(enumerator.Current)).StoreName;
storeId_mozilla[kMozillaStoreCounter++]=((Novell.CASA.CASAPolicy.Store)(enumerator.Current)).StoreId;
Logger.DbgLog("GUI:StorePolicyInterface.Init() - MOZILLA policy = " + Common.IS_MOZILLA);
}
}
}
catch(Exception exp)
{
Logger.DbgLog("GUI:StorePolicyInterface.Init() - EXCEPTION" + exp.ToString());
//Common.ShowErrorDialog(exp);
return( Common.STATUS_POLICY_POLICYNOTFOUND );
}
Logger.DbgLog("GUI:StorePolicyInterface.Init() - END");
return( Common.STATUS_SUCCESS );
}
///#######################################################################
/// IS AGGREGATION POLICY ENABLED FOR STORE ?
///
/// Reports whether the aggregation policy is set for the store.
///
public static bool IsAggregationPolicyEnabledFor(int storeIDentifier)
{
Logger.DbgLog("GUI:StorePolicyInterface.isAggregationPolicyEnabledFor()");
if( Common.STORE_MICASA == storeIDentifier )
return( Common.IS_MICASA );
else if( Common.STORE_KDEWALLET == storeIDentifier )
return( Common.IS_KDEWALLET );
else if( Common.STORE_GNOMEKEYRING == storeIDentifier )
return( Common.IS_GNOMEKEYRING );
else if( Common.STORE_FIREFOX == storeIDentifier )
return( Common.IS_FIREFOX );
else if( Common.STORE_MOZILLA == storeIDentifier )
return( Common.IS_MOZILLA );
else
{
Logger.DbgLog("GUI:StorePolicyInterface.isAggregationPolicyEnabledFor() - STATUS_POLICY_POLICYNOTFOUND");
//Common.ShowErrorDialog(Common.STATUS_POLICY_POLICYNOTFOUND);
return( false );
}
}
///#######################################################################
/// GET LIST OF STORE IDs FOR A STORE
///
/// Get Aggregation Policy - storeId
///
public static string[] GetAggregationPolicyStoreIDFor(int storeIDentifier)
{
Logger.DbgLog("GUI:StorePolicyInterface.getAggregationPolicyStoreIDFor()");
if( Common.STORE_KDEWALLET == storeIDentifier )
return( storeIdKwallet );
else if( Common.STORE_GNOMEKEYRING == storeIDentifier )
return( storeIdGkeyring );
else if( Common.STORE_FIREFOX == storeIDentifier )
return( storeIdFirefox );
else if( Common.STORE_MOZILLA == storeIDentifier )
return( storeId_mozilla );
else
{
Logger.DbgLog("GUI:StorePolicyInterface.getAggregationPolicyStoreIDFor() - STATUS_POLICY_POLICYNOTFOUND");
//Common.ShowErrorDialog(Common.STATUS_POLICY_POLICYNOTFOUND);
return( null );
}
}
///#######################################################################
/// SET AGGREGATION POLICY FOR A STORE
///
/// Set Aggregation Policy for a perticular store.
///
public static void SetAggregationPolicy(int storeIDentifier,bool status,string[] storeId,int numberOfStoreIds)
{
Logger.DbgLog("GUI:StorePolicyInterface.SetAggregationPolicy()");
try
{
if( storeIDentifier == Common.STORE_KDEWALLET )
{
Common.IS_KDEWALLET=status;
storeNameKwallet=Common.STORENAME_KDEWALLET;
storeIdKwallet=storeId;
kWalletStoreCounter=numberOfStoreIds;
}
else if( storeIDentifier == Common.STORE_GNOMEKEYRING )
{
Common.IS_GNOMEKEYRING=status;
storeNameGkeyring=Common.STORENAME_GNOMEKEYRING;
storeIdGkeyring=storeId;
kGkeyringStoreCounter=numberOfStoreIds;
}
else if( storeIDentifier == Common.STORE_MOZILLA )
{
Common.IS_MOZILLA=status;
storeNameMozilla=Common.STORENAME_MOZILLA;
storeId_mozilla=storeId;
kMozillaStoreCounter=numberOfStoreIds;
}
else if( storeIDentifier == Common.STORE_FIREFOX )
{
Common.IS_FIREFOX=status;
storeNameFirefox=Common.STORENAME_FIREFOX;
storeIdFirefox=storeId;
kFireFoxStoreCounter=numberOfStoreIds;
}
}
catch(Exception exp)
{
Logger.DbgLog("GUI:StorePolicyInterface.SetAggregationPolicy() - EXCEPTION" + exp.ToString());
//Common.ShowErrorDialog(exp);
}
}
///#######################################################################
/// SAVE AGGREGATION POLICY
///
/// Save Aggregation Policy
///
public static int SaveAggregationPolicy()
{
Logger.DbgLog("GUI:StorePolicyInterface.SaveAggregationPolicy()");
ArrayList storeList = new ArrayList();
Novell.CASA.CASAPolicy.Store store = null;
if( true == Common.IS_KDEWALLET )
{
for(int i=0; i < kWalletStoreCounter; i++)
{
store = new Novell.CASA.CASAPolicy.Store(storeNameKwallet,storeIdKwallet[i]);
storeList.Add(store);
}
}
if( true == Common.IS_GNOMEKEYRING )
{
for(int i=0; i < kGkeyringStoreCounter; i++)
{
store = new Novell.CASA.CASAPolicy.Store(storeNameGkeyring,storeIdGkeyring[i]);
storeList.Add(store);
}
}
if( true == Common.IS_FIREFOX )
{
for(int i=0; i < kFireFoxStoreCounter; i++)
{
store = new Novell.CASA.CASAPolicy.Store(storeNameFirefox,storeIdFirefox[i]);
storeList.Add(store);
}
}
if( true == Common.IS_MOZILLA )
{
for(int i=0; i < kMozillaStoreCounter; i++)
{
store = new Novell.CASA.CASAPolicy.Store(storeNameMozilla,storeId_mozilla[i]);
storeList.Add(store);
}
}
AggregationPol aggPol = new AggregationPol(storeList);
if( true == ICASAPol.SetPolicy(aggPol) )
return( Common.STATUS_SUCCESS );
else
{
Logger.DbgLog("GUI:StorePolicyInterface.SaveAggregationPolicy() - STATUS_POLICY_COULDNOTBESAVED");
//Common.ShowErrorDialog(Common.STATUS_POLICY_COULDNOTBESAVED);
return( Common.STATUS_POLICY_COULDNOTBESAVED );
}
}
///#######################################################################
/// SET MASTER PASSWORD
///
/// Set Master Password for miCASA persistent store
///
public static void SetMasterPassword(string passWord)
{
Logger.DbgLog("GUI:StorePolicyInterface.SetMasterPassword()");
try
{
Novell.CASA.miCASA.SetMasterPassword(0,passWord);
}
catch(Exception exp)
{
Logger.DbgLog("GUI:StorePolicyInterface.SetMasterPassword() - EXCEPTION" + exp.ToString());
//Common.ShowErrorDialog(exp);
}
}
}
}
///###########################################################################
/// END OF FILE
///###########################################################################