// selecionar um grupo/utilizador
 private void button1_Click(object sender, EventArgs e)
 {
     FormPickUser frm = new FormPickUser();
     if (frm.ShowDialog() == DialogResult.OK)
     {
         currentUser = frm.tRow;
         txtSelectedUser.Text = currentUser.Name;
         UpdateContext();
     }
 }
        public override void LoadData()
        {
            if (CurrentContext.PermissoesNivel == null || CurrentContext.PermissoesTrustee == null)
            {
                currentNivel = null;
                currentUser  = null;
                return;
            }

            currentNivel = CurrentContext.PermissoesNivel;
            currentUser  = CurrentContext.PermissoesTrustee;

            PermissoesNivelList1.CurrentTrusteeRow = currentUser;
            PermissoesNivelList1.CurrentNivelRow   = currentNivel;
            PermissoesNivelList1.ReloadList();
        }
Пример #3
0
        public override void UpdateToolBarButtons(ListViewItem item)
        {
            GISADataset.TrusteeRow selectedTrusteeRow = null;
            if (item != null && item.ListView != null)
            {
                selectedTrusteeRow = (GISADataset.TrusteeRow)item.Tag;
            }
            else if (item != null && item.ListView != null && lstVwTrustees.SelectedItems.Count > 0)
            {
                selectedTrusteeRow = (GISADataset.TrusteeRow)(lstVwTrustees.SelectedItems[0].Tag);
            }

            this.ToolBarButtonAdd.Enabled    = AllowCreate;
            this.ToolBarButtonEdit.Enabled   = selectedTrusteeRow != null && !(selectedTrusteeRow.RowState == DataRowState.Detached) && AllowEdit;
            this.ToolBarButtonDelete.Enabled = selectedTrusteeRow != null && !(selectedTrusteeRow.RowState == DataRowState.Detached) && AllowDelete;
        }
Пример #4
0
        public override void LoadData()
        {
            if (CurrentContext.PermissoesNivelObjDigital == null || CurrentContext.PermissoesTrusteeObjDigital == null)
            {
                mCurrentNivel   = null;
                mCurrentTrustee = null;
                return;
            }

            mCurrentNivel   = CurrentContext.PermissoesNivelObjDigital;
            mCurrentTrustee = CurrentContext.PermissoesTrusteeObjDigital;

            permissoesObjetoDigitalList1.CurrentTrusteeRow = mCurrentTrustee;
            permissoesObjetoDigitalList1.CurrentNivelRow   = mCurrentNivel;
            permissoesObjetoDigitalList1.ReloadList();
        }
        private void MasterPanelSeries_StackChanged(frmMain.StackOperation stackOperation, bool isSupport)
        {
            switch (stackOperation)
            {
            case frmMain.StackOperation.Push:
                this.nivelNavigator1.MultiSelect     = false;
                this.nivelNavigator1.IsParentSupport = isSupport;
                if (actualizaEstrutura)
                {
                    resetEstrutura();
                    actualizaEstrutura = false;
                }

                if (isSupport)
                {
                    AddDragHandlers();
                    groupBox1.Visible = false;
                }
                //ToolBarButtonFiltro.Pushed = false;
                //ToolBar_ButtonClick(this, new System.Windows.Forms.ToolBarButtonClickEventArgs(ToolBarButtonFiltro));

                //this.nivelNavigator1.ClearFiltro();
                if (this.nivelNavigator1.PanelToggleState == NivelNavigator.ToggleState.Documental && this.nivelNavigator1.ContextBreadCrumbsPathID > 0)
                {
                    this.nivelNavigator1.ReloadList();
                }
                break;

            case frmMain.StackOperation.Pop:
                if (isSupport)
                {
                    RemoveDragHandlers();
                    groupBox1.Visible = true;
                }
                //ToolBarButtonFiltro.Pushed = false;
                //ToolBar_ButtonClick(this, new System.Windows.Forms.ToolBarButtonClickEventArgs(ToolBarButtonFiltro));

                //this.nivelNavigator1.ClearFiltro();

                currentUser          = null;
                txtSelectedUser.Text = string.Empty;

                break;
            }
        }
Пример #6
0
		public override void LoadData(DataRow CurrentDataRow, IDbConnection conn)
		{
			IsLoaded = false;
			try
			{
				CurrentTrusteeRow = (GISADataset.TrusteeRow)CurrentDataRow;
				if (CurrentTrusteeRow != null)
					TrusteeRule.Current.LoadPanelTrusteePermissionsData(GisaDataSetHelper.GetInstance(), CurrentTrusteeRow.ID, conn);

			}
			catch (InvalidCastException)
			{
				CurrentTrusteeRow = null;
				return;
			}

			IsLoaded = true;
		}
Пример #7
0
		protected virtual void updateListViewItem(ListViewItem li, GISADataset.TrusteeRow tRow)
		{
			li.Text = tRow.Name;
			while (li.SubItems.Count < li.ListView.Columns.Count)
			{
				li.SubItems.Add("");
			}
			li.SubItems[ColumnHeaderIsActive.Index].Text = TranslationHelper.FormatBoolean(tRow.IsActive);
			if (tRow.IsDescriptionNull())
			{
				li.SubItems[ColumnHeaderDescription.Index].Text = "";
			}
			else
			{
				li.SubItems[ColumnHeaderDescription.Index].Text = tRow.Description;
			}
			li.Tag = tRow;
		}
 public override void LoadData()
 {
     var ho = new GisaDataSetHelper.HoldOpen(GisaDataSetHelper.GetConnection());
     try
     {
         CurrentTrustee = CurrentContext.Trustee;
         if (CurrentTrustee != null)
             DepositoRule.Current.LoadDepositosPermissionsData(GisaDataSetHelper.GetInstance(), CurrentTrustee.ID, ho.Connection);
     }
     catch (Exception)
     {
         CurrentTrustee = null;
         return;
     }
     finally
     {
         ho.Dispose();
     }
 }
Пример #9
0
        public static void LoadObjDigitalPermissions(GISADataset.NivelRow nRow, GISADataset.TrusteeRow tRow)
        {
            GisaDataSetHelper.HoldOpen ho = new GisaDataSetHelper.HoldOpen(GisaDataSetHelper.GetConnection());
            try
            {
                // carregar a informação independentemente do contexto selecionado
                DBAbstractDataLayer.DataAccessRules.PermissoesRule.Current.LoadDataCIPermissoes(GisaDataSetHelper.GetInstance(), nRow.ID, ho.Connection);
            }
            catch (Exception e)
            {
                Trace.WriteLine(e);
                throw;
            }
            finally
            {
                ho.Dispose();
            }

            var imgRowsObjDig = nRow.GetFRDBaseRows().Single().GetSFRDImagemRows().Where(r => r.Tipo.Equals(FedoraHelper.typeFedora));

            if (imgRowsObjDig.Count() == 1)
            {
                var odRow = imgRowsObjDig.Single().GetSFRDImagemObjetoDigitalRows().Single().ObjetoDigitalRow;
                GisaDataSetHelper.GetInstance().ObjetoDigitalTipoOperation.Cast <GISADataset.ObjetoDigitalTipoOperationRow>().ToList().ForEach(op =>
                {
                    var perm    = CalculateEffectivePermissions(odRow, tRow, nRow, op.TipoOperationRow);
                    var isGrant = perm == PermissionType.ExplicitGrant || perm == PermissionType.ImplicitGrant;
                    if (op.IDTipoOperation == (byte)TipoOperation.READ)
                    {
                        mObjDigAllowRead = isGrant;
                    }
                    else if (op.IDTipoOperation == (byte)TipoOperation.WRITE)
                    {
                        mObjDigAllowWrite = isGrant;
                    }
                });
            }
            else
            {
                mObjDigAllowRead  = true;
                mObjDigAllowWrite = true;
            }
        }
Пример #10
0
        public static PermissionType CalculateEffectivePermissions(GISADataset.TrusteeRow tRow, GISADataset.TipoOperationRow opRow, GISADataset.DepositoRow depRow)
        {
            var tdpRow = GisaDataSetHelper.GetInstance().TrusteeDepositoPrivilege.Cast <GISADataset.TrusteeDepositoPrivilegeRow>()
                         .SingleOrDefault(r => r.RowState != DataRowState.Deleted && r.IDTrustee == tRow.ID && r.IDTipoOperation == opRow.ID && r.IDDeposito == depRow.ID);

            if (tdpRow != null)
            {
                return(tdpRow.IsGrant ? PermissionType.ExplicitGrant : PermissionType.ExplicitDeny);
            }

            if (tRow.CatCode.Equals("USR"))
            {
                if (tRow.GetTrusteeUserRows().Length > 0)
                {
                    var ugRows = tRow.GetTrusteeUserRows()[0].GetUserGroupsRows();
                    return(CalculateGroupPermissionsDepositos(ugRows, opRow, depRow));
                }
            }

            return(PermissionType.ImplicitDeny);
        }
Пример #11
0
        public static void ChangeToPermission(GISADataset.TrusteeRow user, GISADataset.NivelRow nivel, ListViewItem item, int colIndex, string permValue)
        {
            string TipoOperationName = item.ListView.Columns[colIndex].Text;
            var    tnpRow            = GetTrusteeNivelPrivilegeRow(user, nivel);

            if (permValue == null || permValue == string.Empty)
            {
                tnpRow[TipoOperationName] = DBNull.Value;
            }
            else if (permValue.Equals("Sim"))
            {
                tnpRow[TipoOperationName] = 1;
            }
            else if (permValue.Equals("Não"))
            {
                tnpRow[TipoOperationName] = 0;
            }

            var permissaoEfectiva = GetEffectivePermission(item, colIndex, TipoOperationName, tnpRow, user.ID);

            PopulatePermission(item, colIndex, tnpRow, permissaoEfectiva);
        }
Пример #12
0
        public static void ChangeODPermission(GISADataset.TrusteeRow user, GISADataset.NivelRow nivel, ListViewItem item, int colIndex)
        {
            var odRow   = item.Tag as GISADataset.ObjetoDigitalRow;
            var opRow   = item.SubItems[colIndex].Tag as GISADataset.ObjetoDigitalTipoOperationRow;
            var todpRow = GisaDataSetHelper.GetInstance().TrusteeObjetoDigitalPrivilege.Cast <GISADataset.TrusteeObjetoDigitalPrivilegeRow>()
                          .SingleOrDefault(r => r.RowState != DataRowState.Deleted && r.IDObjetoDigital == odRow.ID && r.IDTipoOperation == opRow.IDTipoOperation && r.IDTrustee == user.ID);

            if (todpRow != null)
            {
                if (todpRow.IsGrant)
                {
                    todpRow.IsGrant = false;
                }
                else
                {
                    todpRow.Delete();
                }
            }
            else
            {
                todpRow = GisaDataSetHelper.GetInstance().TrusteeObjetoDigitalPrivilege.Cast <GISADataset.TrusteeObjetoDigitalPrivilegeRow>()
                          .SingleOrDefault(r => r.RowState == DataRowState.Deleted && (long)r["IDObjetoDigital", DataRowVersion.Original] == odRow.ID && (byte)r["IDTipoOperation", DataRowVersion.Original] == opRow.IDTipoOperation && (long)r["IDTrustee", DataRowVersion.Original] == user.ID);

                if (todpRow != null)
                {
                    todpRow.RejectChanges();
                    todpRow.IsGrant = true;
                }
                else
                {
                    todpRow = GisaDataSetHelper.GetInstance().TrusteeObjetoDigitalPrivilege.AddTrusteeObjetoDigitalPrivilegeRow(user, odRow, opRow, true, new byte[] { }, 0);
                }
            }

            // popular as alterações
            var permissaoEfectiva = PermissoesHelper.CalculateEffectivePermissions(odRow, user, nivel, opRow.TipoOperationRow);

            PopulatePermission(item, colIndex, todpRow, permissaoEfectiva);
        }
        public override void LoadData()
        {
            var ho = new GisaDataSetHelper.HoldOpen(GisaDataSetHelper.GetConnection());

            try
            {
                CurrentTrustee = CurrentContext.Trustee;
                if (CurrentTrustee != null)
                {
                    DepositoRule.Current.LoadDepositosPermissionsData(GisaDataSetHelper.GetInstance(), CurrentTrustee.ID, ho.Connection);
                }
            }
            catch (Exception)
            {
                CurrentTrustee = null;
                return;
            }
            finally
            {
                ho.Dispose();
            }
        }
Пример #14
0
		private void AddTrusteeIfUsernameDoesntExist(PersistencyHelper.PreConcArguments args)
		{
			PersistencyHelper.CreateTrusteePreConcArguments cetpca = null;
			cetpca = (PersistencyHelper.CreateTrusteePreConcArguments)args;
			GISADataset.TrusteeRow truRow = (GISADataset.TrusteeRow)(GisaDataSetHelper.GetInstance().Trustee.Select("ID=" + cetpca.truRowID.ToString())[0]);
			GISADataset.TrusteeUserRow usrRow = (GISADataset.TrusteeUserRow)(GisaDataSetHelper.GetInstance().TrusteeUser.Select("ID=" + cetpca.usrRowID.ToString())[0]);

			if (! (DBAbstractDataLayer.DataAccessRules.TrusteeRule.Current.isValidNewTrustee(truRow.Name, cetpca.tran)))
			{
				System.Data.DataSet tempgisaBackup1 = cetpca.gisaBackup;
				PersistencyHelper.BackupRow(ref tempgisaBackup1, usrRow);
					cetpca.gisaBackup = tempgisaBackup1;
				System.Data.DataSet tempgisaBackup2 = cetpca.gisaBackup;
				PersistencyHelper.BackupRow(ref tempgisaBackup2, truRow);
					cetpca.gisaBackup = tempgisaBackup2;
				usrRow.RejectChanges();
				truRow.RejectChanges();
				cetpca.successful = false;
			}
			else
				cetpca.successful = true;
		}
Пример #15
0
        // as permissões alternam entre: atribuída -> não atribuída -> não definida (é o mesmo que não atribuído mas necessário
        // para definir heranças de grupos de utilizadores e/ou níveis hierarquicamente superiores)
        public static void ChangePermission(GISADataset.TrusteeRow user, GISADataset.NivelRow nivel, ListViewItem item, int colIndex)
        {
            string TipoOperationName = item.ListView.Columns[colIndex].Text;
            var    tnpRow            = GetTrusteeNivelPrivilegeRow(user, nivel);

            if (tnpRow[TipoOperationName] == DBNull.Value)
            {
                tnpRow[TipoOperationName] = 1;
            }
            else if ((byte)tnpRow[TipoOperationName] == 1)
            {
                tnpRow[TipoOperationName] = 0;
            }
            else
            {
                // a permissão explícita é apagada e a permissão efectiva passa a ser herdada pelo grupo e/ou nível
                // hierarquicamente superior (se for qualquer um dos casos)
                tnpRow[TipoOperationName] = DBNull.Value;
            }

            var permissaoEfectiva = GetEffectivePermission(item, colIndex, TipoOperationName, tnpRow, user.ID);

            PopulatePermission(item, colIndex, tnpRow, permissaoEfectiva);
        }
		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();
		}
        private void MasterPanelSeries_StackChanged(frmMain.StackOperation stackOperation, bool isSupport)
        {
            switch (stackOperation)
            {
                case frmMain.StackOperation.Push:
                    this.nivelNavigator1.MultiSelect = false;
                    this.nivelNavigator1.IsParentSupport = isSupport;
                    if (actualizaEstrutura)
                    {
                        resetEstrutura();
                        actualizaEstrutura = false;
                    }

                    if (isSupport)
                    {
                        AddDragHandlers();
                        groupBox1.Visible = false;
                    }
                    //ToolBarButtonFiltro.Pushed = false;
                    //ToolBar_ButtonClick(this, new System.Windows.Forms.ToolBarButtonClickEventArgs(ToolBarButtonFiltro));

                    //this.nivelNavigator1.ClearFiltro();
                    if (this.nivelNavigator1.PanelToggleState == NivelNavigator.ToggleState.Documental && this.nivelNavigator1.ContextBreadCrumbsPathID > 0)
                        this.nivelNavigator1.ReloadList();
                    break;

                case frmMain.StackOperation.Pop:
                    if (isSupport)
                    {
                        RemoveDragHandlers();
                        groupBox1.Visible = true;
                    }
                    //ToolBarButtonFiltro.Pushed = false;
                    //ToolBar_ButtonClick(this, new System.Windows.Forms.ToolBarButtonClickEventArgs(ToolBarButtonFiltro));

                    //this.nivelNavigator1.ClearFiltro();

                    currentUser = null;
                    txtSelectedUser.Text = string.Empty;

                    break;
            }
        }
Пример #18
0
 // este metodo deve ser sempre overriden
 protected virtual void UpdateTrustees(GISADataset.TrusteeRow tRow)
 {
 }
Пример #19
0
		protected override void AddTrustee()
		{
            GISADataset.TrusteeRow truRow = null;
			GISADataset.TrusteeUserRow usrRow = null;

			FormCreateTrustee form = new FormCreateTrustee();
			form.Text = "Novo utilizador";
			switch (form.ShowDialog())
			{
				case DialogResult.OK:
                    ((frmMain)TopLevelControl).EnterWaitMode();
					truRow = GisaDataSetHelper.GetInstance().Trustee.NewTrusteeRow();
					truRow.Name = form.txtTrusteeName.Text;
					truRow.Description = string.Empty;
					truRow.CatCode = "USR";
					truRow.BuiltInTrustee = false;
					truRow.IsActive = true;
					truRow.Versao = new byte[]{};
					truRow.isDeleted = 0;
					usrRow = GisaDataSetHelper.GetInstance().TrusteeUser.NewTrusteeUserRow();
					usrRow.Password = "";
					usrRow.FullName = "";
					usrRow.IsAuthority = false;
					usrRow["IDTrusteeUserDefaultAuthority"] = DBNull.Value;
					usrRow.Versao = new byte[]{};
					usrRow.isDeleted = 0;
					usrRow.TrusteeRow = truRow;

                    // selecionar o grupo "TODOS"
                    GISADataset.TrusteeGroupRow tgRow = (GISADataset.TrusteeGroupRow)(((GISADataset.TrusteeRow)(GisaDataSetHelper.GetInstance().Trustee.Select("Name='ACESSO_COMPLETO'")[0])).GetTrusteeGroupRows()[0]);

                    // incluir o novo utilizador no grupo "TODOS" por omissão
					GisaDataSetHelper.GetInstance().Trustee.AddTrusteeRow(truRow);
					GisaDataSetHelper.GetInstance().TrusteeUser.AddTrusteeUserRow(usrRow);
					GisaDataSetHelper.GetInstance().UserGroups.AddUserGroupsRow(usrRow, tgRow, new byte[]{}, 0);

					PersistencyHelper.CreateTrusteePreConcArguments ctpca = new PersistencyHelper.CreateTrusteePreConcArguments();
					ctpca.truRowID = truRow.ID;
					ctpca.usrRowID = usrRow.ID;

					Trace.WriteLine("A criar utilizador...");

                    PersistencyHelper.save(AddTrusteeIfUsernameDoesntExist, ctpca);
					PersistencyHelper.cleanDeletedData();

					if (! ctpca.successful)
					{
						MessageBox.Show("Este nome já existe atribuído a um utilizador ou grupo, " + Environment.NewLine + "por favor escolha outro nome.", form.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning);
						UpdateTrustees(null);
					}
					else
					{
                        // actualizar interface
						UpdateTrustees(truRow);
					}

                    ((frmMain)TopLevelControl).LeaveWaitMode();
                    break;
				case DialogResult.Cancel:
				break;
			}
		}
        private void ChangePermission(GISADataset.TrusteeRow user, ListViewItem item, int colIndex)
        {
            var depRow = item.Tag as GISADataset.DepositoRow;
            var opRow  = item.SubItems[colIndex].Tag as GISADataset.DepositoTipoOperationRow;
            var tdpRow = GisaDataSetHelper.GetInstance().TrusteeDepositoPrivilege.Cast <GISADataset.TrusteeDepositoPrivilegeRow>()
                         .SingleOrDefault(r => r.RowState != DataRowState.Deleted && r.IDDeposito == depRow.ID && r.IDTipoOperation == opRow.IDTipoOperation && r.IDTrustee == user.ID);

            if (tdpRow != null)
            {
                if (tdpRow.IsGrant)
                {
                    tdpRow.IsGrant = false;
                }
                else
                {
                    tdpRow.Delete();
                }
            }
            else
            {
                tdpRow = GisaDataSetHelper.GetInstance().TrusteeDepositoPrivilege.Cast <GISADataset.TrusteeDepositoPrivilegeRow>()
                         .SingleOrDefault(r => r.RowState == DataRowState.Deleted && (long)r["IDDeposito", DataRowVersion.Original] == depRow.ID && (byte)r["IDTipoOperation", DataRowVersion.Original] == opRow.IDTipoOperation && (long)r["IDTrustee", DataRowVersion.Original] == user.ID);

                if (tdpRow != null)
                {
                    tdpRow.RejectChanges();
                    tdpRow.IsGrant = true;
                }
                else
                {
                    tdpRow = GisaDataSetHelper.GetInstance().TrusteeDepositoPrivilege.AddTrusteeDepositoPrivilegeRow(user, depRow, opRow, true, new byte[] { }, 0);
                }
            }

            // popular as alterações
            PermissoesHelper.PermissionType permissaoEfectiva = PermissoesHelper.CalculateEffectivePermissions(CurrentTrustee, opRow.TipoOperationRow, depRow);

            //PermissoesHelper.PopulatePermission(item, colIndex, tdpRow, permissaoEfectiva);
            if (permissaoEfectiva == PermissoesHelper.PermissionType.ExplicitGrant)
            {
                item.SubItems[colIndex].Text = "Sim";
            }
            else
            {
                item.SubItems[colIndex].Text = "Não";
            }

            GISADataset.TrusteeDepositoPrivilegeRow[] tpRows = (GISADataset.TrusteeDepositoPrivilegeRow[])(GisaDataSetHelper.GetInstance().TrusteeDepositoPrivilege.Select(string.Format("IDTrustee={0} AND IDDeposito={1} AND IDTipoOperation={2}", user.ID, depRow.ID, opRow.IDTipoOperation)));

            if (tpRows.Length == 0)
            {
                tpRows = (GISADataset.TrusteeDepositoPrivilegeRow[])(GisaDataSetHelper.GetInstance().TrusteeDepositoPrivilege.Select(string.Format("IDTrustee={0} AND IDDeposito={1} AND IDTipoOperation={2}", user.ID, depRow.ID, opRow.IDTipoOperation), "", 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;
                }
            }
        }
Пример #21
0
 public override void Deactivate()
 {
     DeactivatePanels();
     CurrentTrustee = null;
 }
Пример #22
0
        public static void UndoAddNivelGrantPermissions(GISADataset.NivelRow NivelRow, GISADataset.TrusteeRow trusteeRow)
        {
            Trace.WriteLine("Removing privileges from nivel with ID " + NivelRow.ID.ToString());

            GisaDataSetHelper.GetInstance().TrusteeNivelPrivilege.Cast <GISADataset.TrusteeNivelPrivilegeRow>().
            Where(tnp => tnp.RowState != DataRowState.Deleted && tnp.IDNivel == NivelRow.ID && tnp.IDTrustee == trusteeRow.ID).ToList().ForEach(r => r.Delete());
        }
        public override void LoadData()
		{
            if (CurrentContext.PermissoesNivel == null || CurrentContext.PermissoesTrustee == null)
			{
				currentNivel = null;
                currentUser = null;
				return;
			}

			currentNivel = CurrentContext.PermissoesNivel;
            currentUser = CurrentContext.PermissoesTrustee;

            PermissoesNivelList1.CurrentTrusteeRow = currentUser;
            PermissoesNivelList1.CurrentNivelRow = currentNivel;
            PermissoesNivelList1.ReloadList();
		}
Пример #24
0
        public static void DeleteTrusteeAndRelatedRows(GISADataset.TrusteeRow truRow)
        {
            GISADataset.TrusteeGroupRow[] grpRows = truRow.GetTrusteeGroupRows();
            GISADataset.TrusteeUserRow[]  usrRows = truRow.GetTrusteeUserRows();
            GISADataset.UserGroupsRow[]   ugRows  = null;
            List <long> UserIDs = new List <long>();

            if (grpRows.Length > 0)
            {
                ugRows = grpRows[0].GetUserGroupsRows();
                foreach (GISADataset.UserGroupsRow ugRow in ugRows)
                {
                    UserIDs.Add(ugRow.IDUser);
                }
            }
            else if (usrRows.Length > 0)
            {
                ugRows = usrRows[0].GetUserGroupsRows();
            }

            GISADataset.TrusteePrivilegeRow[] tpRows = (GISADataset.TrusteePrivilegeRow[])(GisaDataSetHelper.GetInstance().TrusteePrivilege.Select(string.Format("IDTrustee={0}", truRow.ID)));

            foreach (GISADataset.TrusteePrivilegeRow tpRow in tpRows)
            {
                tpRow.Delete();
            }

            if (ugRows != null)
            {
                foreach (GISADataset.UserGroupsRow ugRow in ugRows)
                {
                    ugRow.Delete();
                }
            }

            foreach (GISADataset.TrusteeGroupRow grpRow in grpRows)
            {
                grpRow.Delete();
            }

            foreach (GISADataset.TrusteeUserRow usrRow in usrRows)
            {
                foreach (GISADataset.TrusteeUserRow uRowAuth in usrRow.GetTrusteeUserRows())
                {
                    uRowAuth.SetIDTrusteeUserDefaultAuthorityNull();
                }

                usrRow.Delete();
            }

            truRow.Delete();

            try
            {
                PersistencyHelper.save();
                PersistencyHelper.cleanDeletedData();
            }
            catch (Exception ex)
            {
                Trace.WriteLine(ex);
                throw;
            }
        }
Пример #25
0
		public override void LoadData()
		{
			//AddHandler CurrentContext.TrusteeChanged, AddressOf TrusteeChanged
			if (CurrentContext.Trustee == null)
			{
				CurrentTrustee = null;
				return;
			}

			this.CurrentTrustee = CurrentContext.Trustee;

			IDbConnection conn = GisaDataSetHelper.GetConnection();
			try
			{
				conn.Open();
				GISAPanel selectedPanel = (GISAPanel)this.DropDownTreeView1.SelectedNode.Tag;
				if (! selectedPanel.IsLoaded)
					selectedPanel.LoadData(CurrentTrustee, conn);
			}
			catch (Exception ex)
			{
				Trace.WriteLine(ex);
				throw;
			}
			finally
			{
				conn.Close();
			}
		}
Пример #26
0
		public override void LoadData(DataRow CurrentDataRow, IDbConnection conn)
		{
			IsLoaded = false;

			if (CurrentDataRow == null)
				return;

			CurrentTrusteeRow = (GISADataset.TrusteeRow)CurrentDataRow;

			// carregar informação da base de dados
			TrusteeRule.Current.LoadMembership(GisaDataSetHelper.GetInstance(), CurrentTrusteeRow.ID, conn);

			IsLoaded = true;
		}
Пример #27
0
		public override void Deactivate()
		{
            GUIHelper.GUIHelper.clearField(txtGroupName);
            GUIHelper.GUIHelper.clearField(chkActive);
            GUIHelper.GUIHelper.clearField(txtDescription);
            GUIHelper.GUIHelper.clearField(lvMembers);
			CurrentTrusteeRow = null;
		}
Пример #28
0
        public static PermissionType CalculateEffectivePermissions(GISADataset.ObjetoDigitalRow odRow, GISADataset.TrusteeRow tRow, GISADataset.NivelRow nRow, GISADataset.TipoOperationRow opRow)
        {
            var tdpRow = GisaDataSetHelper.GetInstance().TrusteeObjetoDigitalPrivilege.Cast <GISADataset.TrusteeObjetoDigitalPrivilegeRow>()
                         .SingleOrDefault(r => r.RowState != DataRowState.Deleted && r.IDTrustee == tRow.ID && r.IDTipoOperation == opRow.ID && r.IDObjetoDigital == odRow.ID);

            if (tdpRow != null)
            {
                return(tdpRow.IsGrant ? PermissionType.ExplicitGrant : PermissionType.ExplicitDeny);
            }
            else
            {
                var ho = new GisaDataSetHelper.HoldOpen(GisaDataSetHelper.GetConnection());
                try
                {
                    var perm = PermissoesRule.Current.CalculateODGroupPermissions(tRow.ID, odRow.ID, opRow.ID, ho.Connection);
                    if (perm < 0)
                    {
                        var nivelPerms = PermissoesRule.Current.CalculateEffectivePermissions(new List <long>()
                        {
                            nRow.ID
                        }, tRow.ID, ho.Connection);
                        return(GetPermissionValue(nivelPerms[nRow.ID], GisaDataSetHelper.GetInstance().NivelTipoOperation.Cast <GISADataset.NivelTipoOperationRow>().Single(r => r.TipoOperationRow.Name.Equals(opRow.Name))) == 1 ? PermissionType.ImplicitGrant : PermissionType.ImplicitDeny);
                    }
                    else
                    {
                        return(perm == 0 ? PermissionType.ImplicitDeny : PermissionType.ImplicitGrant);
                    }
                }
                catch (Exception ex)
                {
                    Trace.WriteLine(ex);
                    throw;
                }
                finally
                {
                    ho.Dispose();
                }
            }
        }
Пример #29
0
		public override void Deactivate()
		{
			DeactivatePanels();
			CurrentTrustee = null;
		}
Пример #30
0
        private static GISADataset.TrusteeNivelPrivilegeRow GetTrusteeNivelPrivilegeRow(GISADataset.TrusteeRow user, GISADataset.NivelRow nivel)
        {
            var tnpRow = GisaDataSetHelper.GetInstance().TrusteeNivelPrivilege.Rows.Cast <GISADataset.TrusteeNivelPrivilegeRow>()
                         .SingleOrDefault(r => r.IDNivel == nivel.ID && r.IDTrustee == user.ID && r.RowState != DataRowState.Deleted);

            if (tnpRow == null)
            {
                tnpRow = GisaDataSetHelper.GetInstance().TrusteeNivelPrivilege.Rows.Cast <GISADataset.TrusteeNivelPrivilegeRow>()
                         .SingleOrDefault(r => r.IDNivel == nivel.ID && r.IDTrustee == user.ID && r.RowState == DataRowState.Deleted);

                if (tnpRow != null)
                {
                    tnpRow.RejectChanges();
                }
                else
                {
                    tnpRow             = GisaDataSetHelper.GetInstance().TrusteeNivelPrivilege.NewTrusteeNivelPrivilegeRow();
                    tnpRow.IDTrustee   = user.ID;
                    tnpRow.IDNivel     = nivel.ID;
                    tnpRow["Criar"]    = DBNull.Value;
                    tnpRow["Ler"]      = DBNull.Value;
                    tnpRow["Escrever"] = DBNull.Value;
                    tnpRow["Apagar"]   = DBNull.Value;
                    tnpRow["Expandir"] = DBNull.Value;
                    tnpRow.Versao      = new byte[] { };
                    tnpRow.isDeleted   = 0;
                    GisaDataSetHelper.GetInstance().TrusteeNivelPrivilege.AddTrusteeNivelPrivilegeRow(tnpRow);
                }
            }
            return(tnpRow);
        }