private void ChangePermission(GISADataset.TrusteeRow user, GISADataset.TipoFunctionRow tipoFunction, ListViewItem item, int colIndex)
		{
			GISADataset.TipoOperationRow tipoOperation = (GISADataset.TipoOperationRow)(GisaDataSetHelper.GetInstance().TipoOperation.Select(string.Format("Name='{0}'", lstvwUserPermissoes.Columns[colIndex].Text))[0]);

			string query = "IDTrustee={0} AND IDTipoFunctionGroup={1} AND IdxTipoFunction = {2} AND IDTipoOperation = {3}";
			query = string.Format(query, user.ID, tipoFunction.IDTipoFunctionGroup, tipoFunction.idx, tipoOperation.ID);

			GISADataset.TrusteePrivilegeRow[] trusteePrivileges = null;
			trusteePrivileges = (GISADataset.TrusteePrivilegeRow[])(GisaDataSetHelper.GetInstance().TrusteePrivilege.Select(query));

			// alterar permissões no dataset
			if (trusteePrivileges.Length > 0)
			{
				if (trusteePrivileges[0].IsGrant)
					trusteePrivileges[0].IsGrant = false;
				else
					trusteePrivileges[0].Delete();
			}
			else
			{
				trusteePrivileges = (GISADataset.TrusteePrivilegeRow[])(GisaDataSetHelper.GetInstance().TrusteePrivilege.Select(query, string.Empty, DataViewRowState.Deleted));
				if (trusteePrivileges.Length > 0)
				{
					trusteePrivileges[0].RejectChanges();
					trusteePrivileges[0].IsGrant = true;
				}
				else
					GisaDataSetHelper.GetInstance().TrusteePrivilege.AddTrusteePrivilegeRow(user, tipoFunction.IDTipoFunctionGroup, tipoFunction.idx, tipoOperation.ID, true, new byte[]{}, 0);
			}

			// popular as alterações
			GISADataset.FunctionOperationRow functionOperation = (GISADataset.FunctionOperationRow)(GisaDataSetHelper.GetInstance().FunctionOperation.Select(string.Format("IDTipoFunctionGroup={0} AND IdxTipoFunction={1} AND IDTipoOperation={2}", tipoFunction.IDTipoFunctionGroup, tipoFunction.idx, tipoOperation.ID))[0]);

			PermissoesHelper.PermissionType permissaoEfectiva = PermissoesHelper.CalculateEffectivePermissions(user, functionOperation);

			if (permissaoEfectiva == PermissoesHelper.PermissionType.ExplicitGrant)
				item.SubItems[colIndex].Text = "Sim";
			else
				item.SubItems[colIndex].Text = "Não";

			GISADataset.TrusteePrivilegeRow[] tpRows = (GISADataset.TrusteePrivilegeRow[])(GisaDataSetHelper.GetInstance().TrusteePrivilege.Select(string.Format("IDTrustee={0} AND IDTipoFunctionGroup={1} AND IdxTipoFunction = {2} AND IDTipoOperation = {3}", user.ID, functionOperation.IDTipoFunctionGroup, functionOperation.IdxTipoFunction, functionOperation.IDTipoOperation)));

			if (tpRows.Length == 0)
			{
				tpRows = (GISADataset.TrusteePrivilegeRow[])(GisaDataSetHelper.GetInstance().TrusteePrivilege.Select(string.Format("IDTrustee={0} AND IDTipoFunctionGroup={1} AND IdxTipoFunction = {2} AND IDTipoOperation = {3}", user.ID, functionOperation.IDTipoFunctionGroup, functionOperation.IdxTipoFunction, functionOperation.IDTipoOperation), string.Empty, DataViewRowState.Deleted));

				if (tpRows.Length == 0)
                    item.SubItems[colIndex].Font = PermissoesHelper.fontItalic;
				else
                    item.SubItems[colIndex].Font = PermissoesHelper.fontBoldItalic;
			}
			else
			{
				if (tpRows[0].RowState == DataRowState.Modified && ! (tpRows[0].IsGrant ^ (bool)(tpRows[0]["IsGrant", DataRowVersion.Original])))
                    item.SubItems[colIndex].Font = PermissoesHelper.fontRegular;
				else
                    item.SubItems[colIndex].Font = PermissoesHelper.fontBold;
			}
		}
Exemplo n.º 2
0
        private bool CanChangePermission(ListViewItem item, int colIndex)
        {
            if (colIndex == 0 || item.Tag is GISADataset.TipoFunctionGroupRow)
                return false;

            GISADataset.TipoFunctionRow tipoFunction = (GISADataset.TipoFunctionRow)item.Tag;
            GISADataset.TipoOperationRow tipoOperation = (GISADataset.TipoOperationRow)(GisaDataSetHelper.GetInstance().TipoOperation.Select(string.Format("Name='{0}'", lstvwPermissoes.Columns[colIndex].Text))[0]);
            GISADataset.FunctionOperationRow[] functionOperation = (GISADataset.FunctionOperationRow[])(GisaDataSetHelper.GetInstance().FunctionOperation.Select(string.Format("IDTipoFunctionGroup={0} AND IdxTipoFunction={1} AND IDTipoOperation={2}", tipoFunction.IDTipoFunctionGroup, tipoFunction.idx, tipoOperation.ID)));

            if (functionOperation.Length == 0)
                return false;
            else
                return true;
        }
		private bool CanChangePermission(GISADataset.TipoFunctionRow tipoFunction, int colIndex)
		{
			GISADataset.TipoOperationRow[] tipoOperation = (GISADataset.TipoOperationRow[])(GisaDataSetHelper.GetInstance().TipoOperation.Select(string.Format("Name='{0}'", lstvwUserPermissoes.Columns[colIndex].Text)));

			if (tipoOperation.Length == 0)
				return false;

			GISADataset.FunctionOperationRow[] functionOperation = (GISADataset.FunctionOperationRow[])(GisaDataSetHelper.GetInstance().FunctionOperation.Select(string.Format("IDTipoFunctionGroup={0} AND IdxTipoFunction={1} AND IDTipoOperation={2}", tipoFunction.IDTipoFunctionGroup, tipoFunction.idx, tipoOperation[0].ID)));

			if (functionOperation.Length == 0)
				return false;
			else
				return true;
		}
Exemplo n.º 4
0
		private void treeviews_BeforeSelect(object Sender, TreeViewCancelEventArgs e)
		{
			TreeNode node = null;
			node = e.Node;

			if (node != null)
			{
				GISADataset.TipoFunctionRow tfRow = null;
				if (node.Tag is GISADataset.TipoFunctionRow)
				{
					tfRow = (GISADataset.TipoFunctionRow)node.Tag;
					UpdateContext(tfRow);
				}
				else
					UpdateContext(tfRow);
			}
		}
Exemplo n.º 5
0
		private void LoadOperationsAndPermissions(GISADataset.TipoFunctionRow CurrentFunctionGroup, ListViewItem fgItem)
		{
			Debug.Assert(CurrentTrusteeRow != null);

			foreach (GISADataset.FunctionOperationRow fo in GisaDataSetHelper.GetInstance().FunctionOperation)
			{
				fgItem.SubItems.Add(string.Empty);
				if (CurrentFunctionGroup.IDTipoFunctionGroup == fo.IDTipoFunctionGroup && CurrentFunctionGroup.idx == fo.IdxTipoFunction)
				{
					int colIndex = GetColumnIndex(fo.TipoOperationRow.Name);

					PermissoesHelper.PermissionType permissaoEfectiva = PermissoesHelper.CalculateEffectivePermissions(CurrentTrusteeRow, fo);

					if (permissaoEfectiva == PermissoesHelper.PermissionType.ExplicitGrant)
						fgItem.SubItems[colIndex].Text = "Sim";
					else
						fgItem.SubItems[colIndex].Text = "Não";

					if (GisaDataSetHelper.GetInstance().TrusteePrivilege.Select(string.Format("IDTrustee={0} AND IDTipoFunctionGroup={1} AND IdxTipoFunction = {2} AND IDTipoOperation = {3}", CurrentTrusteeRow.ID, fo.IDTipoFunctionGroup, fo.IdxTipoFunction, fo.IDTipoOperation)).Length == 0)
						fgItem.SubItems[colIndex].Font = PermissoesHelper.fontItalic;
				}
			}
		}
Exemplo n.º 6
0
		public bool UpdateContext(GISADataset.TipoFunctionRow row)
		{
			return CurrentContext.SetTipoFunction(row);
		}
		private void clearUserPermissions(GISADataset.TrusteeRow tRow)
		{
			GISADataset.TipoFunctionRow tfRow = ((SlavePanelPermissoesModulos)this).currentTipoFunction;
			foreach (GISADataset.TrusteePrivilegeRow tpRow in GisaDataSetHelper.GetInstance().TrusteePrivilege.Select(string.Format("IDTrustee={0} AND IDTipoFunctionGroup={1} AND IdxTipoFunction={2}", tRow.ID, tfRow.IDTipoFunctionGroup, tfRow.idx)))
				tpRow.Delete();
		}
		public override void LoadData()
		{
			if (CurrentContext.TipoFunction == null)
			{
				mCurrentTipoFunction = null;
				return;
			}

			this.mCurrentTipoFunction = CurrentContext.TipoFunction;

			IDbConnection conn = GisaDataSetHelper.GetConnection();
			try
			{
				conn.Open();
				PermissoesRule.Current.LoadDataModuloPermissoes(GisaDataSetHelper.GetInstance(), currentTipoFunction.IDTipoFunctionGroup, currentTipoFunction.idx, conn);
			}
			catch (Exception ex)
			{
				Trace.WriteLine(ex);
				throw;
			}
			finally
			{
				conn.Close();
			}
		}