Пример #1
0
		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);

		}
Пример #2
0
		public void RecalculatePrivileges(GISADataset.TipoServerRow tsRow, List<GISADataset.ModulesRow> mRows)
		{
			RecalculatePrivileges(tsRow, mRows, null);
		}