public void RecalculatePrivileges(GISADataset.TipoServerRow tsRow, List<GISADataset.ModulesRow> modulesList, IDbTransaction Trans) { mTrusteePrivileges = (GISADataset.TrusteePrivilegeDataTable)(GisaDataSetHelper.GetInstance().TrusteePrivilege.Clone()); string modules = string.Empty; foreach (GISADataset.ModulesRow mRow in modulesList) { modules += mRow.ID + ","; } modules = modules.TrimEnd(','); // This resolves user privileges and his groups. // Does not handle groups of groups. These are not supported by DB IDbConnection conn = GisaDataSetHelper.GetConnection(); if (Trans == null && ! (conn.State == ConnectionState.Open)) { try { conn.Open(); TrusteeRule.Current.LoadTrusteePrivilegeData(mTrusteePrivileges, tsRow.BuiltInName, modules, TrusteeUserOperator.ID, conn, Trans); } catch (Exception ex) { Trace.WriteLine(ex); } finally { conn.Close(); } } else if (Trans == null && conn.State == ConnectionState.Open) { try { TrusteeRule.Current.LoadTrusteePrivilegeData(mTrusteePrivileges, tsRow.BuiltInName, modules, TrusteeUserOperator.ID, conn, Trans); } catch (Exception ex) { Trace.WriteLine(ex); } } else { TrusteeRule.Current.LoadTrusteePrivilegeData(mTrusteePrivileges, tsRow.BuiltInName, modules, TrusteeUserOperator.ID, conn, Trans); } // Keep our copy of this data and merge it with the dataset GisaDataSetHelper.GetInstance().Merge(mTrusteePrivileges); }
public void RecalculatePrivileges(GISADataset.TipoServerRow tsRow, List<GISADataset.ModulesRow> mRows) { RecalculatePrivileges(tsRow, mRows, null); }