Add debug logging for role-based contact data visibility

This commit is contained in:
Torsten Schulz (local)
2025-10-21 14:44:43 +02:00
parent 37994f39b2
commit d21c96de07
17 changed files with 256 additions and 227 deletions

View File

@@ -274,7 +274,7 @@ const client_manifest = {
"module": true,
"prefetch": true,
"preload": true,
"file": "B4vdtHsr.js",
"file": "Dorx0xsu.js",
"name": "entry",
"src": "node_modules/nuxt/dist/app/entry.js",
"isEntry": true,
@@ -284,14 +284,14 @@ const client_manifest = {
"node_modules/nuxt/dist/app/components/error-500.vue"
],
"css": [
"entry.CjazO3pS.css"
"entry.FYEsgUy-.css"
],
"assets": [
"Harheimer TC.CKfYAfp1.svg"
]
},
"entry.CjazO3pS.css": {
"file": "entry.CjazO3pS.css",
"entry.FYEsgUy-.css": {
"file": "entry.FYEsgUy-.css",
"resourceType": "style",
"prefetch": true,
"preload": true
@@ -563,7 +563,7 @@ const client_manifest = {
"module": true,
"prefetch": true,
"preload": true,
"file": "CEVega_m.js",
"file": "Ctsomia6.js",
"name": "mitglieder",
"src": "pages/mitgliederbereich/mitglieder.vue",
"isDynamicEntry": true,

File diff suppressed because one or more lines are too long

View File

@@ -31,7 +31,7 @@ const _sfc_main = {
const showModal = ref(false);
const editingMember = ref(null);
const errorMessage = ref("");
const viewMode = ref("table");
const viewMode = ref("cards");
const formData = ref({
firstName: "",
lastName: "",
@@ -43,6 +43,9 @@ const _sfc_main = {
const canEdit = computed(() => {
return authStore.role === "admin" || authStore.role === "vorstand";
});
const canViewContactData = computed(() => {
return authStore.role === "vorstand";
});
const formatDate = (dateString) => {
if (!dateString) return "";
const date = new Date(dateString);
@@ -98,16 +101,28 @@ const _sfc_main = {
_push(`<!---->`);
}
_push(`</td><td class="px-4 py-3 whitespace-nowrap">`);
if (member.email) {
_push(`<a${ssrRenderAttr("href", `mailto:${member.email}`)} class="text-sm text-primary-600 hover:text-primary-800">${ssrInterpolate(member.email)}</a>`);
if (canViewContactData.value) {
_push(`<!--[-->`);
if (member.email) {
_push(`<a${ssrRenderAttr("href", `mailto:${member.email}`)} class="text-sm text-primary-600 hover:text-primary-800">${ssrInterpolate(member.email)}</a>`);
} else {
_push(`<span class="text-sm text-gray-400">-</span>`);
}
_push(`<!--]-->`);
} else {
_push(`<span class="text-sm text-gray-400">-</span>`);
_push(`<span class="text-sm text-gray-400">Nur für Vorstand</span>`);
}
_push(`</td><td class="px-4 py-3 whitespace-nowrap">`);
if (member.phone) {
_push(`<a${ssrRenderAttr("href", `tel:${member.phone}`)} class="text-sm text-primary-600 hover:text-primary-800">${ssrInterpolate(member.phone)}</a>`);
if (canViewContactData.value) {
_push(`<!--[-->`);
if (member.phone) {
_push(`<a${ssrRenderAttr("href", `tel:${member.phone}`)} class="text-sm text-primary-600 hover:text-primary-800">${ssrInterpolate(member.phone)}</a>`);
} else {
_push(`<span class="text-sm text-gray-400">-</span>`);
}
_push(`<!--]-->`);
} else {
_push(`<span class="text-sm text-gray-400">-</span>`);
_push(`<span class="text-sm text-gray-400">Nur für Vorstand</span>`);
}
_push(`</td><td class="px-4 py-3 whitespace-nowrap"><div class="flex items-center space-x-2">`);
if (member.hasLogin) {
@@ -155,25 +170,36 @@ const _sfc_main = {
_push(`<span class="ml-2 px-2 py-1 bg-purple-100 text-purple-800 text-xs font-medium rounded-full"> Aus Login-System </span>`);
}
_push(`</div><div class="grid sm:grid-cols-2 gap-3 text-gray-600">`);
if (member.email) {
_push(`<div class="flex items-center">`);
if (canViewContactData.value) {
_push(`<!--[-->`);
if (member.email) {
_push(`<div class="flex items-center">`);
_push(ssrRenderComponent(unref(Mail), {
size: 16,
class: "mr-2 text-primary-600"
}, null, _parent));
_push(`<a${ssrRenderAttr("href", `mailto:${member.email}`)} class="hover:text-primary-600">${ssrInterpolate(member.email)}</a></div>`);
} else {
_push(`<!---->`);
}
if (member.phone) {
_push(`<div class="flex items-center">`);
_push(ssrRenderComponent(unref(Phone), {
size: 16,
class: "mr-2 text-primary-600"
}, null, _parent));
_push(`<a${ssrRenderAttr("href", `tel:${member.phone}`)} class="hover:text-primary-600">${ssrInterpolate(member.phone)}</a></div>`);
} else {
_push(`<!---->`);
}
_push(`<!--]-->`);
} else {
_push(`<div class="col-span-2 flex items-center text-gray-500 text-sm italic">`);
_push(ssrRenderComponent(unref(Mail), {
size: 16,
class: "mr-2 text-primary-600"
class: "mr-2"
}, null, _parent));
_push(`<a${ssrRenderAttr("href", `mailto:${member.email}`)} class="hover:text-primary-600">${ssrInterpolate(member.email)}</a></div>`);
} else {
_push(`<!---->`);
}
if (member.phone) {
_push(`<div class="flex items-center">`);
_push(ssrRenderComponent(unref(Phone), {
size: 16,
class: "mr-2 text-primary-600"
}, null, _parent));
_push(`<a${ssrRenderAttr("href", `tel:${member.phone}`)} class="hover:text-primary-600">${ssrInterpolate(member.phone)}</a></div>`);
} else {
_push(`<!---->`);
_push(` Kontaktdaten nur für Vorstand sichtbar </div>`);
}
if (member.address) {
_push(`<div class="flex items-start col-span-2">`);
@@ -262,4 +288,4 @@ _sfc_main.setup = (props, ctx) => {
};
export { _sfc_main as default };
//# sourceMappingURL=mitglieder--YAYTNgB.mjs.map
//# sourceMappingURL=mitglieder-B4jiyTlo.mjs.map

File diff suppressed because one or more lines are too long

View File

@@ -569,7 +569,7 @@ const _routes = [
name: "mitgliederbereich-mitglieder",
path: "/mitgliederbereich/mitglieder",
meta: { ...__nuxt_page_meta || {}, ...{ "middleware": "auth" } },
component: () => import('./mitglieder--YAYTNgB.mjs')
component: () => import('./mitglieder-B4jiyTlo.mjs')
}
];
const ROUTE_KEY_PARENTHESES_RE = /(:\w+)\([^)]+\)/g;

View File

@@ -3,9 +3,9 @@ const styles = {
"node_modules/nuxt/dist/app/components/error-404.vue": () => import('./error-404-styles.BsF5Lbhq.mjs').then(interopDefault),
"node_modules/nuxt/dist/app/components/error-500.vue": () => import('./error-500-styles.Dccc6iq5.mjs').then(interopDefault),
"components/Hero.vue": () => import('./Hero-styles.DnxJI8Rq.mjs').then(interopDefault),
"components/Hero.vue?vue&type=style&index=0&scoped=33d25311&lang.css": () => import('./Hero-styles.DnxJI8Rq.mjs').then(interopDefault),
"node_modules/nuxt/dist/app/components/error-404.vue?vue&type=style&index=0&scoped=b728498f&lang.css": () => import('./error-404-styles.BsF5Lbhq.mjs').then(interopDefault),
"node_modules/nuxt/dist/app/components/error-500.vue?vue&type=style&index=0&scoped=70d84538&lang.css": () => import('./error-500-styles.Dccc6iq5.mjs').then(interopDefault),
"components/Hero.vue?vue&type=style&index=0&scoped=33d25311&lang.css": () => import('./Hero-styles.DnxJI8Rq.mjs').then(interopDefault)
"node_modules/nuxt/dist/app/components/error-500.vue?vue&type=style&index=0&scoped=70d84538&lang.css": () => import('./error-500-styles.Dccc6iq5.mjs').then(interopDefault)
};
export { styles as default };