improved logout link, fixed permissions on task creation

This commit is contained in:
2025-09-23 10:54:36 +02:00
parent 771fa28fe4
commit f549269326
4 changed files with 24 additions and 2 deletions

View File

@@ -64,7 +64,7 @@ onMount(fetchModules);
{#if module.name.trim()}<a href={module.url}>{module.name}</a>{/if} {#if module.name.trim()}<a href={module.url}>{module.name}</a>{/if}
{/each} {/each}
{#if user.name } {#if user.name }
<a onclick={logout}>{t('logout')}</a> <a onclick={logout}>{t('logout_user',{user:user.name})}</a>
{/if} {/if}
<TimeRecorder /> <TimeRecorder />
</nav> </nav>

View File

@@ -32,6 +32,26 @@
for (let uid of Object.keys(member)) task.members[uid] = project.members[uid]; for (let uid of Object.keys(member)) task.members[uid] = project.members[uid];
} }
function flat(json){
return JSON.parse(JSON.stringify(json));
}
function copyMembers(source){
task.members = {};
let owner = null;
let me = null;
for (let [uid, member] of Object.entries(source)){
task.members[uid] = member;
if (member.permission.name == 'OWNER') owner = flat(member);
if (uid == user.id) me = flat(member);
}
if (owner && me) {
// of someone else is owner of the parent task or project, make current user the owner
task.members[me.user.id].permission = owner.permission;
task.members[owner.user.id].permission = me.permission;
}
}
function dropMember(member){ function dropMember(member){
delete task.members[member.user.id]; delete task.members[member.user.id];
console.log({drop:member.user.id}); console.log({drop:member.user.id});
@@ -65,7 +85,7 @@
project = await resp.json(); project = await resp.json();
task.project_id = +project_id; task.project_id = +project_id;
let member_source = parent_task?parent_task.members:project.members; let member_source = parent_task?parent_task.members:project.members;
task.members = JSON.parse(JSON.stringify(member_source)); // deep copy copyMembers(member_source);
error = null; error = null;
} else { } else {
error = await resp.text(); error = await resp.text();

View File

@@ -116,6 +116,7 @@
"login" : "Anmeldung", "login" : "Anmeldung",
"login_services": "Login-Services", "login_services": "Login-Services",
"logout": "Abmelden", "logout": "Abmelden",
"logout_user": "{user} abmelden",
"long_click_to_edit": "lang klicken zum Bearbeiten", "long_click_to_edit": "lang klicken zum Bearbeiten",
"MANAGE_LOGIN_SERVICES": "Login-Services verwalten", "MANAGE_LOGIN_SERVICES": "Login-Services verwalten",

View File

@@ -116,6 +116,7 @@
"login" : "login", "login" : "login",
"login_services": "login service", "login_services": "login service",
"logout": "logout", "logout": "logout",
"logout_user": "logout {user}",
"long_click_to_edit": "click long to edit", "long_click_to_edit": "click long to edit",
"MANAGE_LOGIN_SERVICES": "manage login services", "MANAGE_LOGIN_SERVICES": "manage login services",