refactor: always request access to join community

We no longer send community invites to users, instead we just share the
community and let users request access.

That request will either be automatically or manually accepted by the owner/admin.

Depends on https://github.com/status-im/status-go/pull/2682

Closes #5115
This commit is contained in:
Pascal Precht 2022-05-31 13:16:11 +02:00 committed by r4bbit.eth
parent edb014bf12
commit 51b661386a
7 changed files with 21 additions and 11 deletions

View File

@ -90,8 +90,10 @@ QtObject:
self.observedItem.setActiveSectionData(item) self.observedItem.setActiveSectionData(item)
self.observedItemChanged() self.observedItemChanged()
proc joinCommunity*(self: View, communityId: string): string {.slot.} = proc joinCommunity*(self: View, communityId: string, ensName: string) {.slot.} =
result = self.delegate.joinCommunity(communityId) # Users always have to request to join a community but might
# get automatically accepted.
self.delegate.requestToJoinCommunity(communityId, ensName)
proc createCommunity*(self: View, name: string, proc createCommunity*(self: View, name: string,
description: string, introMessage: string, outroMessage: string, description: string, introMessage: string, outroMessage: string,

View File

@ -1072,11 +1072,13 @@ QtObject:
var pubKeys: seq[string] = @[] var pubKeys: seq[string] = @[]
for pubKey in pubKeysParsed: for pubKey in pubKeysParsed:
pubKeys.add(pubKey.getStr) pubKeys.add(pubKey.getStr)
let response = status_go.inviteUsersToCommunity(communityId, pubKeys) # We no longer send invites, but merely share the community so
# users can request access (with automatic acception)
let response = status_go.shareCommunityToUsers(communityId, pubKeys)
discard self.chatService.processMessageUpdateAfterSend(response) discard self.chatService.processMessageUpdateAfterSend(response)
except Exception as e: except Exception as e:
error "Error inviting to community", msg = e.msg error "Error sharing community", msg = e.msg
result = "Error exporting community: " & e.msg result = "Error sharing community: " & e.msg
proc muteCategory*(self: Service, communityId: string, categoryId: string) = proc muteCategory*(self: Service, communityId: string, categoryId: string) =
try: try:

View File

@ -268,5 +268,11 @@ proc inviteUsersToCommunity*(communityId: string, pubKeys: seq[string]): RpcResp
"users": pubKeys "users": pubKeys
}]) }])
proc shareCommunityToUsers*(communityId: string, pubKeys: seq[string]): RpcResponse[JsonNode] {.raises: [Exception].} =
return callPrivateRPC("shareCommunity".prefix, %*[{
"communityId": communityId,
"users": pubKeys
}])
proc getCommunitiesSettings*(): RpcResponse[JsonNode] {.raises: [Exception].} = proc getCommunitiesSettings*(): RpcResponse[JsonNode] {.raises: [Exception].} =
return callPrivateRPC("getCommunitiesSettings".prefix, %*[]) return callPrivateRPC("getCommunitiesSettings".prefix, %*[])

View File

@ -202,7 +202,7 @@ StatusModal {
// text = qsTr("Pending") // text = qsTr("Pending")
// } // }
} else { } else {
error = root.store.communitiesModuleInst.joinCommunity(root.communityId) error = root.store.communitiesModuleInst.joinCommunity(root.communityId, root.store.userProfileInst.ensName)
} }
if (error) { if (error) {

View File

@ -341,8 +341,8 @@ QtObject {
chatCommunitySectionModule.reorderCommunityChat(categoryId, chatId, to) chatCommunitySectionModule.reorderCommunityChat(categoryId, chatId, to)
} }
function joinCommunity(id) { function joinCommunity(id, ensName) {
return communitiesModuleInst.joinCommunity(id) return communitiesModuleInst.joinCommunity(id, ensName)
} }
function requestToJoinCommunity(id, ensName) { function requestToJoinCommunity(id, ensName) {
@ -423,7 +423,7 @@ QtObject {
const userCanJoin = userCanJoin(communityId) const userCanJoin = userCanJoin(communityId)
// TODO find what to do when you can't join // TODO find what to do when you can't join
if (userCanJoin) { if (userCanJoin) {
joinCommunity(communityId, true) joinCommunity(communityId, userProfileInst.ensName)
} }
} }
return result return result

View File

@ -262,7 +262,7 @@ Item {
} }
if (rectangleBubble.state === "unjoined") { if (rectangleBubble.state === "unjoined") {
Global.openPopup(communityIntroDialog, { joinMethod: () => { Global.openPopup(communityIntroDialog, { joinMethod: () => {
let error = root.store.joinCommunity(communityId) let error = root.store.joinCommunity(communityId, userProfile.name)
if (error) joiningError.showError(error) if (error) joiningError.showError(error)
} }); } });
} }

2
vendor/status-go vendored

@ -1 +1 @@
Subproject commit d17b076bc2371e51b1882432cd5a0a0ef44b20e6 Subproject commit f6c9ec7838b91aba325351bda2903f25a8ba5547