this would be very complex, but you culd have a user-session daemon (creating a .desktop file, and an autostart entry):
that talks to the system daemon (through socket or whatnot), hands over all required user related info and then your system daemon execs whatever is needed as root…