MCPcopy Index your code
hub / github.com/diffgram/diffgram / project_update_core

Function project_update_core

default/methods/project/project_update.py:52–158  ·  view source on GitHub ↗

* Send email * Create deletion thing to track it * Remove permissions for all users (including Admin?) * Remove from project * Set project flag to deleted

(session,
                        project,
                        mode,
                        log,
                        member)

Source from the content-addressed store, hash-verified

50
51
52def project_update_core(session,
53 project,
54 mode,
55 log,
56 member):
57 """
58 * Send email
59 * Create deletion thing to track it
60 * Remove permissions for all users (including Admin?)
61 * Remove from project
62 * Set project flag to deleted
63
64 """
65
66 if mode == "DELETE":
67
68 deletion = Deletion(project = project,
69 member_created = member)
70 session.add(deletion)
71 session.add(project)
72
73 project.deletion_pending = True
74
75 deletion.cache = {}
76
77 # Remove permissions for all users (including Admin?)
78 for user in project.users:
79 deletion.cache['permissions'] = {}
80
81 # user_id : user permissions for project
82 deletion.cache['permissions'][user.id] = user.permissions_projects[project.project_string_id]
83
84 Project_permissions.clear_all(
85 session = session,
86 user = user,
87 sub_type = project.project_string_id)
88
89 # Remove database link to project
90 project.users = []
91
92 log['info']['remove'] = "Project scheduled for deletion."
93
94 email = member.user.email
95
96 subject = f"{project.project_string_id} scheduled for deletion."
97
98 message = project.project_string_id + \
99 " may be deleted in approximately 30 days." + \
100 " Please contact us immediately if you did not authorize this change."
101
102 communicate_via_email.send(email, subject, message)
103
104 Event.new(
105 kind = "project_delete",
106 session = session,
107 member = member,
108 success = True
109 )

Callers 1

api_project_updateFunction · 0.85

Calls 5

DeletionClass · 0.90
sendMethod · 0.80
addMethod · 0.45
clear_allMethod · 0.45
newMethod · 0.45

Tested by

no test coverage detected