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

Class Share_Project

default/methods/share/share.py:109–447  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

107
108
109class Share_Project():
110
111 def __init__(
112 self,
113 session,
114 member,
115 member_list, # for existing members only?
116 mode, # NEW , REMOVE
117 project,
118 user_dict, # "NEW" user dict
119 notify = False
120 ):
121
122 """
123
124 user_dict of form:
125 {'email': str},
126 {'permission_type': str},
127 {'note': None}
128
129 Assumption is that member_list, or user_dict can be None based on the mode
130 And then the new() or remove() etc method will check if the dict it needs exists
131 """
132
133 self.session = session
134 self.member = member
135 self.mode = mode
136 self.log = regular_log.default()
137 self.mode = mode
138 self.project_string_id = project.project_string_id # Convenience since it's used a lot
139 self.project = project
140 self.member_list_untrusted = member_list
141 self.member_list = []
142 self.user_dict = user_dict
143 self.notify = notify
144
145 def main(self):
146 if self.mode == "NEW":
147 self.new()
148
149 if log_has_error(self.log):
150 return
151
152 # Could add "update" here in future...
153 if self.mode in ["REMOVE"]:
154 self.verify_member_list_untrusted()
155
156 for member in self.member_list:
157
158 self.member_to_modify = member
159
160 if self.mode == "REMOVE":
161 self.remove()
162
163 if log_has_error(self.log):
164 return
165
166 if len(self.log["error"].keys()) == 0:

Callers 1

share_member_project_apiFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected