@@ -873,10 +873,13 @@ def get_object(self):
873873 return super ().get_object ()
874874
875875 def create (self , request , * args , ** kwargs ):
876+ member_status = Member .STATUS_INVITED
876877 if settings .EDITION_TYPE == "community" :
877- raise PermissionDenied ( "Community edition does not support this feature" )
878+ member_status = Member . STATUS_ACTIVE
878879
879- serializer = self .get_serializer (data = request .data )
880+ serializer = self .get_serializer (
881+ data = request .data , context = {** self .get_serializer_context (), "member_status" : member_status }
882+ )
880883 serializer .is_valid (raise_exception = True )
881884
882885 with transaction .atomic ():
@@ -885,12 +888,13 @@ def create(self, request, *args, **kwargs):
885888 member = serializer .instance
886889
887890 try :
888- AuthorizerService ().invite_member (
889- member = member ,
890- from_user = request .user ,
891- realm_code = request .realm_code ,
892- space_code = request .space_code ,
893- )
891+ if settings .EDITION_TYPE == "entreprise" :
892+ AuthorizerService ().invite_member (
893+ member = member ,
894+ from_user = request .user ,
895+ realm_code = request .realm_code ,
896+ space_code = request .space_code ,
897+ )
894898 headers = self .get_success_headers (serializer .data )
895899 return Response (serializer .data , status = status .HTTP_201_CREATED , headers = headers )
896900 except Exception as err :
@@ -916,9 +920,6 @@ def _handle_authorizer_error(request, member, err):
916920 )
917921
918922 def update (self , request , * args , ** kwargs ):
919- if settings .EDITION_TYPE == "community" :
920- raise PermissionDenied ("Community edition does not support this feature" )
921-
922923 serializer = self .get_serializer (data = request .data )
923924 serializer .is_valid (raise_exception = True )
924925
@@ -945,14 +946,15 @@ def update(self, request, *args, **kwargs):
945946 raise ValidationError ("Could not remove admin rights from owner" )
946947
947948 if member .is_admin != form_data_is_admin or member .is_owner != form_data_is_owner :
948- authorizer = AuthorizerService ()
949- authorizer .update_member (
950- member ,
951- request .realm_code ,
952- request .space_code ,
953- is_admin = form_data_is_admin ,
954- is_owner = form_data_is_owner ,
955- )
949+ if settings .EDITION_TYPE == "entreprise" :
950+ authorizer = AuthorizerService ()
951+ authorizer .update_member (
952+ member ,
953+ request .realm_code ,
954+ request .space_code ,
955+ is_admin = form_data_is_admin ,
956+ is_owner = form_data_is_owner ,
957+ )
956958
957959 if not member .is_owner and form_data_is_owner is True :
958960 master_user = MasterUser .objects .get (space_code = kwargs ["space_code" ])
@@ -977,9 +979,6 @@ def validate_member_settings(request):
977979 raise ValidationError ("Could not remove owner rights from yourself" )
978980
979981 def destroy (self , request , * args , ** kwargs ):
980- if settings .EDITION_TYPE == "community" :
981- raise PermissionDenied ("Community edition does not support this feature" )
982-
983982 if self .get_object ().username == "finmars_bot" :
984983 raise PermissionDenied ()
985984
@@ -991,15 +990,12 @@ def destroy(self, request, *args, **kwargs):
991990 return Response (status = status .HTTP_204_NO_CONTENT )
992991
993992 def perform_destroy (self , instance , request ):
994- if settings .EDITION_TYPE == "community" :
995- raise PermissionDenied ("Community edition does not support this feature" )
996-
997993 if instance .is_owner :
998994 raise PermissionDenied ()
999995
1000- authorizer = AuthorizerService ()
1001-
1002- authorizer .kick_member (instance , request .realm_code , request .space_code )
996+ if settings . EDITION_TYPE == "entreprise" :
997+ authorizer = AuthorizerService ()
998+ authorizer .kick_member (instance , request .realm_code , request .space_code )
1003999
10041000 instance .status = Member .STATUS_DELETED
10051001 instance .save ()
@@ -1008,9 +1004,6 @@ def perform_destroy(self, instance, request):
10081004
10091005 @action (detail = True , methods = ["put" ], url_path = "send-invite" )
10101006 def send_invite (self , request , pk = None , realm_code = None , space_code = None ):
1011- if settings .EDITION_TYPE == "community" :
1012- raise PermissionDenied ("Community edition does not support this feature" )
1013-
10141007 member = self .get_object ()
10151008
10161009 if not member .is_deleted and member .status != Member .STATUS_INVITE_DECLINED :
@@ -1019,14 +1012,15 @@ def send_invite(self, request, pk=None, realm_code=None, space_code=None):
10191012 member .status = Member .STATUS_INVITED
10201013 member .save ()
10211014
1022- authorizer = AuthorizerService ()
1015+ if settings .EDITION_TYPE == "entreprise" :
1016+ authorizer = AuthorizerService ()
10231017
1024- authorizer .invite_member (
1025- member = member ,
1026- from_user = request .user ,
1027- realm_code = request .realm_code ,
1028- space_code = request .space_code ,
1029- )
1018+ authorizer .invite_member (
1019+ member = member ,
1020+ from_user = request .user ,
1021+ realm_code = request .realm_code ,
1022+ space_code = request .space_code ,
1023+ )
10301024
10311025 return Response ({"status" : "ok" })
10321026
0 commit comments