chore: user workflow (#2762)
* dev: workspace member deactivation and leave endpoints and filters * dev: deactivated for project members * dev: project members leave * dev: project member check on workspace deactivation * dev: project member queryset update and remove leave project endpoint * dev: rename is_deactivated to is_active and user deactivation apis * dev: check if the user is already part of workspace then make them active * dev: workspace and project save * dev: update project members to make them active * dev: project invitation * dev: automatic user workspace and project member create when user sign in/up * dev: fix member invites * dev: rename deactivation variable * dev: update project member invitation * dev: additional permission layer for workspace * dev: update the url for workspace invitations * dev: remove invitation urls from users * dev: cleanup workspace invitation workflow * dev: workspace and project invitation
This commit is contained in:
parent
1f904e88e1
commit
bdbdacd68c
25 changed files with 1318 additions and 720 deletions
|
|
@ -11,25 +11,33 @@ from slack_sdk import WebClient
|
|||
from slack_sdk.errors import SlackApiError
|
||||
|
||||
# Module imports
|
||||
from plane.db.models import Workspace, WorkspaceMemberInvite
|
||||
from plane.db.models import User, Workspace, WorkspaceMemberInvite
|
||||
|
||||
|
||||
@shared_task
|
||||
def workspace_invitation(email, workspace_id, token, current_site, invitor):
|
||||
try:
|
||||
|
||||
user = User.objects.get(email=invitor)
|
||||
|
||||
workspace = Workspace.objects.get(pk=workspace_id)
|
||||
workspace_member_invite = WorkspaceMemberInvite.objects.get(
|
||||
token=token, email=email
|
||||
)
|
||||
|
||||
realtivelink = (
|
||||
f"/workspace-member-invitation/?invitation_id={workspace_member_invite.id}&email={email}"
|
||||
# Relative link
|
||||
relative_link = (
|
||||
f"/workspace-invitations/?invitation_id={workspace_member_invite.id}&email={email}&slug={workspace.slug}"
|
||||
)
|
||||
abs_url = current_site + realtivelink
|
||||
|
||||
# The complete url including the domain
|
||||
abs_url = current_site + relative_link
|
||||
|
||||
# The email from
|
||||
from_email_string = settings.EMAIL_FROM
|
||||
|
||||
subject = f"{invitor or email} invited you to join {workspace.name} on Plane"
|
||||
# Subject of the email
|
||||
subject = f"{user.first_name or user.display_name or user.email} invited you to join {workspace.name} on Plane"
|
||||
|
||||
context = {
|
||||
"email": email,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue