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); } } } } }
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); }