diff --git a/Aspnet/Controllers/AccionesController.cs b/Aspnet/Controllers/AccionesController.cs new file mode 100644 index 0000000..e69516d --- /dev/null +++ b/Aspnet/Controllers/AccionesController.cs @@ -0,0 +1,20 @@ +using Microsoft.AspNetCore.Mvc; +using Modelo; + +namespace AlquilaFacil.Controllers; + +[ApiController] +public class AccionesController: ControllerBase { + + [HttpPost("api/acciones")] + public IActionResult ListarAccionesPorUsuario([FromBody] string email) { + Request.Cookies.TryGetValue("token", out var token); + if (token == null) return Unauthorized(new { esValido = false}); + + bool esValido = RepositorioUsuarios.Singleton.CheckToken(email, token); + if (!esValido) return Unauthorized(); + + var Permisos = RepositorioPermisos.Singleton.ListarPermisos(email); + return Ok(Permisos); + } +} \ No newline at end of file diff --git a/Aspnet/Controllers/PropiedadesController.cs b/Aspnet/Controllers/PropiedadesController.cs new file mode 100644 index 0000000..b81634e --- /dev/null +++ b/Aspnet/Controllers/PropiedadesController.cs @@ -0,0 +1,8 @@ +using Microsoft.AspNetCore.Mvc; + +namespace AlquilaFacil.Controllers; + +[ApiController] +public class PropiedadesController: ControllerBase { + +} \ No newline at end of file diff --git a/Front/.svelte-kit/ambient.d.ts b/Front/.svelte-kit/ambient.d.ts new file mode 100644 index 0000000..1fb49d9 --- /dev/null +++ b/Front/.svelte-kit/ambient.d.ts @@ -0,0 +1,257 @@ + +// this file is generated — do not edit it + + +/// + +/** + * Environment variables [loaded by Vite](https://vitejs.dev/guide/env-and-mode.html#env-files) from `.env` files and `process.env`. Like [`$env/dynamic/private`](https://svelte.dev/docs/kit/$env-dynamic-private), this module cannot be imported into client-side code. This module only includes variables that _do not_ begin with [`config.kit.env.publicPrefix`](https://svelte.dev/docs/kit/configuration#env) _and do_ start with [`config.kit.env.privatePrefix`](https://svelte.dev/docs/kit/configuration#env) (if configured). + * + * _Unlike_ [`$env/dynamic/private`](https://svelte.dev/docs/kit/$env-dynamic-private), the values exported from this module are statically injected into your bundle at build time, enabling optimisations like dead code elimination. + * + * ```ts + * import { API_KEY } from '$env/static/private'; + * ``` + * + * Note that all environment variables referenced in your code should be declared (for example in an `.env` file), even if they don't have a value until the app is deployed: + * + * ``` + * MY_FEATURE_FLAG="" + * ``` + * + * You can override `.env` values from the command line like so: + * + * ```bash + * MY_FEATURE_FLAG="enabled" npm run dev + * ``` + */ +declare module '$env/static/private' { + export const SHELL: string; + export const LSCOLORS: string; + export const SESSION_MANAGER: string; + export const WINDOWID: string; + export const COLORTERM: string; + export const XDG_CONFIG_DIRS: string; + export const LESS: string; + export const XDG_SESSION_PATH: string; + export const XDG_MENU_PREFIX: string; + export const ICEAUTHORITY: string; + export const LANGUAGE: string; + export const NODE: string; + export const LC_ADDRESS: string; + export const LC_NAME: string; + export const GRADLE_HOME: string; + export const SHELL_SESSION_ID: string; + export const MEMORY_PRESSURE_WRITE: string; + export const npm_config_local_prefix: string; + export const DESKTOP_SESSION: string; + export const LC_MONETARY: string; + export const GTK_RC_FILES: string; + export const EDITOR: string; + export const XDG_SEAT: string; + export const PWD: string; + export const XDG_SESSION_DESKTOP: string; + export const LOGNAME: string; + export const XDG_SESSION_TYPE: string; + export const BUN_WHICH_IGNORE_CWD: string; + export const SYSTEMD_EXEC_PID: string; + export const _: string; + export const XAUTHORITY: string; + export const MOTD_SHOWN: string; + export const GTK2_RC_FILES: string; + export const HOME: string; + export const LC_PAPER: string; + export const LANG: string; + export const LS_COLORS: string; + export const XDG_CURRENT_DESKTOP: string; + export const KONSOLE_DBUS_SERVICE: string; + export const npm_package_version: string; + export const MEMORY_PRESSURE_WATCH: string; + export const WAYLAND_DISPLAY: string; + export const KONSOLE_DBUS_SESSION: string; + export const PROFILEHOME: string; + export const XDG_SEAT_PATH: string; + export const INVOCATION_ID: string; + export const KONSOLE_VERSION: string; + export const MANAGERPID: string; + export const INIT_CWD: string; + export const KDE_SESSION_UID: string; + export const XKB_DEFAULT_LAYOUT: string; + export const XDG_SESSION_CLASS: string; + export const TERM: string; + export const LC_IDENTIFICATION: string; + export const npm_package_name: string; + export const ZSH: string; + export const USER: string; + export const COLORFGBG: string; + export const QT_WAYLAND_RECONNECT: string; + export const KDE_SESSION_VERSION: string; + export const PAM_KWALLET5_LOGIN: string; + export const DISPLAY: string; + export const SHLVL: string; + export const PAGER: string; + export const LC_TELEPHONE: string; + export const LC_MEASUREMENT: string; + export const XDG_VTNR: string; + export const XDG_SESSION_ID: string; + export const npm_config_user_agent: string; + export const npm_execpath: string; + export const XDG_RUNTIME_DIR: string; + export const DEBUGINFOD_URLS: string; + export const npm_package_json: string; + export const LC_TIME: string; + export const BUN_INSTALL: string; + export const QT_AUTO_SCREEN_SCALE_FACTOR: string; + export const JOURNAL_STREAM: string; + export const XDG_DATA_DIRS: string; + export const KDE_FULL_SESSION: string; + export const BROWSER: string; + export const PATH: string; + export const DBUS_SESSION_BUS_ADDRESS: string; + export const KDE_APPLICATIONS_AS_SCOPE: string; + export const MAIL: string; + export const npm_node_execpath: string; + export const LC_NUMERIC: string; + export const OLDPWD: string; + export const KONSOLE_DBUS_WINDOW: string; +} + +/** + * Similar to [`$env/static/private`](https://svelte.dev/docs/kit/$env-static-private), except that it only includes environment variables that begin with [`config.kit.env.publicPrefix`](https://svelte.dev/docs/kit/configuration#env) (which defaults to `PUBLIC_`), and can therefore safely be exposed to client-side code. + * + * Values are replaced statically at build time. + * + * ```ts + * import { PUBLIC_BASE_URL } from '$env/static/public'; + * ``` + */ +declare module '$env/static/public' { + +} + +/** + * This module provides access to runtime environment variables, as defined by the platform you're running on. For example if you're using [`adapter-node`](https://github.com/sveltejs/kit/tree/main/packages/adapter-node) (or running [`vite preview`](https://svelte.dev/docs/kit/cli)), this is equivalent to `process.env`. This module only includes variables that _do not_ begin with [`config.kit.env.publicPrefix`](https://svelte.dev/docs/kit/configuration#env) _and do_ start with [`config.kit.env.privatePrefix`](https://svelte.dev/docs/kit/configuration#env) (if configured). + * + * This module cannot be imported into client-side code. + * + * Dynamic environment variables cannot be used during prerendering. + * + * ```ts + * import { env } from '$env/dynamic/private'; + * console.log(env.DEPLOYMENT_SPECIFIC_VARIABLE); + * ``` + * + * > In `dev`, `$env/dynamic` always includes environment variables from `.env`. In `prod`, this behavior will depend on your adapter. + */ +declare module '$env/dynamic/private' { + export const env: { + SHELL: string; + LSCOLORS: string; + SESSION_MANAGER: string; + WINDOWID: string; + COLORTERM: string; + XDG_CONFIG_DIRS: string; + LESS: string; + XDG_SESSION_PATH: string; + XDG_MENU_PREFIX: string; + ICEAUTHORITY: string; + LANGUAGE: string; + NODE: string; + LC_ADDRESS: string; + LC_NAME: string; + GRADLE_HOME: string; + SHELL_SESSION_ID: string; + MEMORY_PRESSURE_WRITE: string; + npm_config_local_prefix: string; + DESKTOP_SESSION: string; + LC_MONETARY: string; + GTK_RC_FILES: string; + EDITOR: string; + XDG_SEAT: string; + PWD: string; + XDG_SESSION_DESKTOP: string; + LOGNAME: string; + XDG_SESSION_TYPE: string; + BUN_WHICH_IGNORE_CWD: string; + SYSTEMD_EXEC_PID: string; + _: string; + XAUTHORITY: string; + MOTD_SHOWN: string; + GTK2_RC_FILES: string; + HOME: string; + LC_PAPER: string; + LANG: string; + LS_COLORS: string; + XDG_CURRENT_DESKTOP: string; + KONSOLE_DBUS_SERVICE: string; + npm_package_version: string; + MEMORY_PRESSURE_WATCH: string; + WAYLAND_DISPLAY: string; + KONSOLE_DBUS_SESSION: string; + PROFILEHOME: string; + XDG_SEAT_PATH: string; + INVOCATION_ID: string; + KONSOLE_VERSION: string; + MANAGERPID: string; + INIT_CWD: string; + KDE_SESSION_UID: string; + XKB_DEFAULT_LAYOUT: string; + XDG_SESSION_CLASS: string; + TERM: string; + LC_IDENTIFICATION: string; + npm_package_name: string; + ZSH: string; + USER: string; + COLORFGBG: string; + QT_WAYLAND_RECONNECT: string; + KDE_SESSION_VERSION: string; + PAM_KWALLET5_LOGIN: string; + DISPLAY: string; + SHLVL: string; + PAGER: string; + LC_TELEPHONE: string; + LC_MEASUREMENT: string; + XDG_VTNR: string; + XDG_SESSION_ID: string; + npm_config_user_agent: string; + npm_execpath: string; + XDG_RUNTIME_DIR: string; + DEBUGINFOD_URLS: string; + npm_package_json: string; + LC_TIME: string; + BUN_INSTALL: string; + QT_AUTO_SCREEN_SCALE_FACTOR: string; + JOURNAL_STREAM: string; + XDG_DATA_DIRS: string; + KDE_FULL_SESSION: string; + BROWSER: string; + PATH: string; + DBUS_SESSION_BUS_ADDRESS: string; + KDE_APPLICATIONS_AS_SCOPE: string; + MAIL: string; + npm_node_execpath: string; + LC_NUMERIC: string; + OLDPWD: string; + KONSOLE_DBUS_WINDOW: string; + [key: `PUBLIC_${string}`]: undefined; + [key: `${string}`]: string | undefined; + } +} + +/** + * Similar to [`$env/dynamic/private`](https://svelte.dev/docs/kit/$env-dynamic-private), but only includes variables that begin with [`config.kit.env.publicPrefix`](https://svelte.dev/docs/kit/configuration#env) (which defaults to `PUBLIC_`), and can therefore safely be exposed to client-side code. + * + * Note that public dynamic environment variables must all be sent from the server to the client, causing larger network requests — when possible, use `$env/static/public` instead. + * + * Dynamic environment variables cannot be used during prerendering. + * + * ```ts + * import { env } from '$env/dynamic/public'; + * console.log(env.PUBLIC_DEPLOYMENT_SPECIFIC_VARIABLE); + * ``` + */ +declare module '$env/dynamic/public' { + export const env: { + [key: `PUBLIC_${string}`]: string | undefined; + } +} diff --git a/Front/.svelte-kit/generated/client/app.js b/Front/.svelte-kit/generated/client/app.js new file mode 100644 index 0000000..3ef9588 --- /dev/null +++ b/Front/.svelte-kit/generated/client/app.js @@ -0,0 +1,20 @@ +export { matchers } from './matchers.js'; + +export const nodes = [ + () => import('./nodes/0'), + () => import('./nodes/1') +]; + +export const server_loads = []; + +export const dictionary = { + + }; + +export const hooks = { + handleError: (({ error }) => { console.error(error) }), + + reroute: (() => {}) +}; + +export { default as root } from '../root.svelte'; \ No newline at end of file diff --git a/Front/.svelte-kit/generated/client/matchers.js b/Front/.svelte-kit/generated/client/matchers.js new file mode 100644 index 0000000..f6bd30a --- /dev/null +++ b/Front/.svelte-kit/generated/client/matchers.js @@ -0,0 +1 @@ +export const matchers = {}; \ No newline at end of file diff --git a/Front/.svelte-kit/generated/client/nodes/0.js b/Front/.svelte-kit/generated/client/nodes/0.js new file mode 100644 index 0000000..34d98d8 --- /dev/null +++ b/Front/.svelte-kit/generated/client/nodes/0.js @@ -0,0 +1 @@ +export { default as component } from "../../../../node_modules/@sveltejs/kit/src/runtime/components/svelte-4/layout.svelte"; \ No newline at end of file diff --git a/Front/.svelte-kit/generated/client/nodes/1.js b/Front/.svelte-kit/generated/client/nodes/1.js new file mode 100644 index 0000000..9cae4f0 --- /dev/null +++ b/Front/.svelte-kit/generated/client/nodes/1.js @@ -0,0 +1 @@ +export { default as component } from "../../../../node_modules/@sveltejs/kit/src/runtime/components/svelte-4/error.svelte"; \ No newline at end of file diff --git a/Front/.svelte-kit/non-ambient.d.ts b/Front/.svelte-kit/non-ambient.d.ts new file mode 100644 index 0000000..46bd7fb --- /dev/null +++ b/Front/.svelte-kit/non-ambient.d.ts @@ -0,0 +1,25 @@ + +// this file is generated — do not edit it + + +declare module "svelte/elements" { + export interface HTMLAttributes { + 'data-sveltekit-keepfocus'?: true | '' | 'off' | undefined | null; + 'data-sveltekit-noscroll'?: true | '' | 'off' | undefined | null; + 'data-sveltekit-preload-code'?: + | true + | '' + | 'eager' + | 'viewport' + | 'hover' + | 'tap' + | 'off' + | undefined + | null; + 'data-sveltekit-preload-data'?: true | '' | 'hover' | 'tap' | 'off' | undefined | null; + 'data-sveltekit-reload'?: true | '' | 'off' | undefined | null; + 'data-sveltekit-replacestate'?: true | '' | 'off' | undefined | null; + } +} + +export {}; diff --git a/Front/.svelte-kit/tsconfig.json b/Front/.svelte-kit/tsconfig.json new file mode 100644 index 0000000..a2a7665 --- /dev/null +++ b/Front/.svelte-kit/tsconfig.json @@ -0,0 +1,49 @@ +{ + "compilerOptions": { + "paths": { + "$lib": [ + "../src/lib" + ], + "$lib/*": [ + "../src/lib/*" + ] + }, + "rootDirs": [ + "..", + "./types" + ], + "verbatimModuleSyntax": true, + "isolatedModules": true, + "lib": [ + "esnext", + "DOM", + "DOM.Iterable" + ], + "moduleResolution": "bundler", + "module": "esnext", + "noEmit": true, + "target": "esnext" + }, + "include": [ + "ambient.d.ts", + "non-ambient.d.ts", + "./types/**/$types.d.ts", + "../vite.config.js", + "../vite.config.ts", + "../src/**/*.js", + "../src/**/*.ts", + "../src/**/*.svelte", + "../tests/**/*.js", + "../tests/**/*.ts", + "../tests/**/*.svelte" + ], + "exclude": [ + "../node_modules/**", + "../src/service-worker.js", + "../src/service-worker/**/*.js", + "../src/service-worker.ts", + "../src/service-worker/**/*.ts", + "../src/service-worker.d.ts", + "../src/service-worker/**/*.d.ts" + ] +} \ No newline at end of file diff --git a/Front/bun.lockb b/Front/bun.lockb index f4cbd75..254fc77 100755 Binary files a/Front/bun.lockb and b/Front/bun.lockb differ diff --git a/Front/package.json b/Front/package.json index f7518bb..f2b03d6 100644 --- a/Front/package.json +++ b/Front/package.json @@ -13,13 +13,13 @@ "@sveltejs/vite-plugin-svelte": "^3.1.2", "@tsconfig/svelte": "^5.0.4", "svelte": "^4.2.19", - "svelte-check": "^4.0.4", - "tslib": "^2.7.0", - "typescript": "^5.5.3", - "vite": "^5.4.8" + "svelte-check": "^4.0.5", + "tslib": "^2.8.0", + "typescript": "^5.6.3", + "vite": "^5.4.10" }, "dependencies": { - "@sveltejs/kit": "^2.7.1", + "@sveltejs/kit": "^2.7.3", "@sveltestrap/sveltestrap": "^6.2.7", "svelte-routing": "^2.13.0" } diff --git a/Front/src/lib/NavBarAutocompletable.svelte b/Front/src/lib/NavBarAutocompletable.svelte index 9c6fccd..54c4262 100644 --- a/Front/src/lib/NavBarAutocompletable.svelte +++ b/Front/src/lib/NavBarAutocompletable.svelte @@ -1,10 +1,36 @@ diff --git a/Front/tsconfig.json b/Front/tsconfig.json index df56300..1f46d53 100644 --- a/Front/tsconfig.json +++ b/Front/tsconfig.json @@ -17,5 +17,5 @@ "moduleDetection": "force" }, "include": ["src/**/*.ts", "src/**/*.js", "src/**/*.svelte"], - "references": [{ "path": "./tsconfig.node.json" }] + "references": [{ "path": "./tsconfig.json" }] } diff --git a/Modelo/RepositorioPermisos.cs b/Modelo/RepositorioPermisos.cs new file mode 100644 index 0000000..4439813 --- /dev/null +++ b/Modelo/RepositorioPermisos.cs @@ -0,0 +1,19 @@ +using Entidades; +using Microsoft.EntityFrameworkCore; + +namespace Modelo; +public class RepositorioPermisos: RepositorioBase { + public IQueryable? ListarPermisos(string email) { + var con = Context; + Cliente? cli = con.Clientes.Include(x => x.Idgrupos).FirstOrDefault(c => c.Email == email); + if (cli == null) return null; + + var list = con.Clientes + .Where(c => c.Dni == cli.Dni) + .SelectMany(c => c.Idgrupos) + .SelectMany(g => g.Idpermisos) + .Distinct(); + return list; + + } +} \ No newline at end of file