Пример #1
0
        public static void ChangeDocPermissionPublicados(long docID, bool permissao)
        {
            GISADataset.TrusteeNivelPrivilegeRow   tnpRow  = null;
            GISADataset.TrusteeNivelPrivilegeRow[] tnpRows = (GISADataset.TrusteeNivelPrivilegeRow[])
                                                             GisaDataSetHelper.GetInstance().TrusteeNivelPrivilege.Select(string.Format("IDNivel={0} AND IDTrustee={1}", docID, PermissoesHelper.GrpAcessoPublicados.ID));

            if (tnpRows.Length > 0)
            {
                tnpRow = tnpRows[0];
            }
            else
            {
                tnpRow           = GisaDataSetHelper.GetInstance().TrusteeNivelPrivilege.NewTrusteeNivelPrivilegeRow();
                tnpRow.IDNivel   = docID;
                tnpRow.IDTrustee = PermissoesHelper.GrpAcessoPublicados.ID;
                tnpRow.Versao    = new byte[] { };
                GisaDataSetHelper.GetInstance().TrusteeNivelPrivilege.AddTrusteeNivelPrivilegeRow(tnpRow);
            }

            if (permissao)
            {
                tnpRow.Ler = 1;
            }
            else
            {
                tnpRow["Ler"] = DBNull.Value;
            }
        }
Пример #2
0
        private static PermissoesHelper.PermissionType GetEffectivePermission(ListViewItem item, int colIndex, string TipoOperationName, GISADataset.TrusteeNivelPrivilegeRow tnpRow, long IDTrustee)
        {
            PermissoesHelper.PermissionType permissaoEfectiva = PermissionType.ImplicitDeny;
            if ((tnpRow != null) && (tnpRow[TipoOperationName] != DBNull.Value))
            {
                permissaoEfectiva =
                    (byte)tnpRow[TipoOperationName] == 1 ? PermissionType.ExplicitGrant : PermissionType.ExplicitDeny;
            }
            else
            {
                var nRow = (GISADataset.NivelRow)item.Tag;
                var ho   = new GisaDataSetHelper.HoldOpen(GisaDataSetHelper.GetConnection());
                try
                {
                    var perms = PermissoesRule.Current.CalculateImplicitPermissions(nRow.ID, IDTrustee, ho.Connection);
                    if (perms.ContainsKey(nRow.ID))
                    {
                        permissaoEfectiva = GetPermissionValue(perms[nRow.ID], GisaDataSetHelper.GetInstance().NivelTipoOperation.Cast <GISADataset.NivelTipoOperationRow>().Single(r => r.TipoOperationRow.Name.Equals(TipoOperationName))) == 1 ? PermissionType.ImplicitGrant : PermissionType.ImplicitDeny;
                    }
                }
                catch (Exception ex)
                {
                    Trace.WriteLine(ex);
                    throw;
                }
                finally
                {
                    ho.Dispose();
                }
            }

            return(permissaoEfectiva);
        }