예제 #1
0
        private void CrearPermisos(Session LocalSesion, ICollection TodasLasClasesPersistentes, Rol rol, bool BorrarPermisos)
        {
            RolParametros parametros = (RolParametros)_VistaPopup.CurrentObject;

            if (BorrarPermisos)
            {
                QuitarPermisos(rol);
            }
            ReflectionClassInfo RefInfo = null;

            foreach (System.Object item in TodasLasClasesPersistentes)
            {
                RefInfo = item as ReflectionClassInfo;
                if (ReferenceEquals(null, RefInfo))
                {
                    continue;
                }
                if (!(RefInfo.FullName.StartsWith("DevExpress") || RefInfo.ClassType.Name.StartsWith("RolParametros") || RefInfo.FullName.EndsWith("TextMessage") ||
                      RefInfo.ClassType.Name.StartsWith("Entidad") || RefInfo.FullName.EndsWith("Parameters")))
                {
                    Boolean faltante = true;
                    foreach (SecuritySystemTypePermissionObject p in rol.TypePermissions)
                    {
                        if (p.TargetType.Name == RefInfo.ClassType.Name)
                        {
                            faltante = false;
                            break;
                        }
                    }
                    if (faltante)
                    {
                        if (RefInfo.ClassType.Name.StartsWith("Usuario"))
                        {
                            rol.AddObjectAccessPermission <Usuario>("[Oid] = CurrentUserId()", SecurityOperations.ReadOnlyAccess);
                            rol.AddMemberAccessPermission <Usuario>("ChangePasswordOnFirstLogon", SecurityOperations.Write);
                            rol.AddMemberAccessPermission <Usuario>("StoredPassword", SecurityOperations.Write);
                        }
                        else if (RefInfo.ClassType.Name.StartsWith("Rol"))
                        {
                            rol.SetTypePermissionsRecursively <Rol>(SecurityOperations.Read, SecuritySystemModifier.Allow);
                        }
                        else
                        if (!parametros.RolVacio)
                        {
                            AgregarPermiso(rol, parametros, RefInfo);
                        }
                    }
                }
            }
        }
예제 #2
0
        private Rol CreateDefaultRole()
        {
            Rol defaultRole = ObjectSpace.FindObject <Rol>(new BinaryOperator("Name", "Default1"));

            if (defaultRole == null)
            {
                defaultRole      = ObjectSpace.CreateObject <Rol>();
                defaultRole.Name = "Default1";

                defaultRole.AddObjectAccessPermission <Usuario>("[Oid] = CurrentUserId()", SecurityOperations.ReadOnlyAccess);
                //defaultRole.AddMemberAccessPermission<Usuario>("ChangePasswordOnFirstLogon", SecurityOperations.Write);
                defaultRole.AddMemberAccessPermission <Usuario>("StoredPassword", SecurityOperations.Write);
                defaultRole.SetTypePermissionsRecursively <Rol>(SecurityOperations.Read, SecuritySystemModifier.Allow);
                defaultRole.SetTypePermissionsRecursively <ModelDifference>(SecurityOperations.ReadWriteAccess, SecuritySystemModifier.Allow);
                defaultRole.SetTypePermissionsRecursively <ModelDifferenceAspect>(SecurityOperations.ReadWriteAccess, SecuritySystemModifier.Allow);
            }
            return(defaultRole);
        }