check display name
This commit is contained in:
parent
203d793cf0
commit
1603309e60
@ -236,7 +236,14 @@ deleteContact db user@User {userId} Contact {contactId, localDisplayName, active
|
|||||||
if isNothing ctMember
|
if isNothing ctMember
|
||||||
then do
|
then do
|
||||||
deleteContactProfile_ db userId contactId
|
deleteContactProfile_ db userId contactId
|
||||||
DB.execute db "DELETE FROM display_names WHERE user_id = ? AND local_display_name = ?" (userId, localDisplayName)
|
DB.execute
|
||||||
|
db
|
||||||
|
[sql|
|
||||||
|
DELETE FROM display_names
|
||||||
|
WHERE user_id = ? AND local_display_name = ?
|
||||||
|
AND local_display_name NOT IN (SELECT local_display_name FROM users)
|
||||||
|
|]
|
||||||
|
(userId, localDisplayName)
|
||||||
else do
|
else do
|
||||||
currentTs <- getCurrentTime
|
currentTs <- getCurrentTime
|
||||||
DB.execute db "UPDATE group_members SET contact_id = NULL, updated_at = ? WHERE user_id = ? AND contact_id = ?" (currentTs, userId, contactId)
|
DB.execute db "UPDATE group_members SET contact_id = NULL, updated_at = ? WHERE user_id = ? AND contact_id = ?" (currentTs, userId, contactId)
|
||||||
@ -250,7 +257,14 @@ deleteContactWithoutGroups :: DB.Connection -> User -> Contact -> IO ()
|
|||||||
deleteContactWithoutGroups db user@User {userId} Contact {contactId, localDisplayName, activeConn} = do
|
deleteContactWithoutGroups db user@User {userId} Contact {contactId, localDisplayName, activeConn} = do
|
||||||
DB.execute db "DELETE FROM chat_items WHERE user_id = ? AND contact_id = ?" (userId, contactId)
|
DB.execute db "DELETE FROM chat_items WHERE user_id = ? AND contact_id = ?" (userId, contactId)
|
||||||
deleteContactProfile_ db userId contactId
|
deleteContactProfile_ db userId contactId
|
||||||
DB.execute db "DELETE FROM display_names WHERE user_id = ? AND local_display_name = ?" (userId, localDisplayName)
|
DB.execute
|
||||||
|
db
|
||||||
|
[sql|
|
||||||
|
DELETE FROM display_names
|
||||||
|
WHERE user_id = ? AND local_display_name = ?
|
||||||
|
AND local_display_name NOT IN (SELECT local_display_name FROM users)
|
||||||
|
|]
|
||||||
|
(userId, localDisplayName)
|
||||||
DB.execute db "DELETE FROM contacts WHERE user_id = ? AND contact_id = ? AND is_user = 0" (userId, contactId)
|
DB.execute db "DELETE FROM contacts WHERE user_id = ? AND contact_id = ? AND is_user = 0" (userId, contactId)
|
||||||
forM_ activeConn $ \Connection {customUserProfileId} ->
|
forM_ activeConn $ \Connection {customUserProfileId} ->
|
||||||
forM_ customUserProfileId $ \profileId ->
|
forM_ customUserProfileId $ \profileId ->
|
||||||
@ -259,7 +273,7 @@ deleteContactWithoutGroups db user@User {userId} Contact {contactId, localDispla
|
|||||||
setContactDeleted :: DB.Connection -> User -> Contact -> IO ()
|
setContactDeleted :: DB.Connection -> User -> Contact -> IO ()
|
||||||
setContactDeleted db User {userId} Contact {contactId} = do
|
setContactDeleted db User {userId} Contact {contactId} = do
|
||||||
currentTs <- getCurrentTime
|
currentTs <- getCurrentTime
|
||||||
DB.execute db "UPDATE contacts SET deleted = 1, updated_at = ? WHERE user_id = ? AND contact_id = ?" (currentTs, userId, contactId)
|
DB.execute db "UPDATE contacts SET deleted = 1, updated_at = ? WHERE user_id = ? AND contact_id = ? AND is_user = 0" (currentTs, userId, contactId)
|
||||||
|
|
||||||
getDeletedContacts :: DB.Connection -> User -> IO [Contact]
|
getDeletedContacts :: DB.Connection -> User -> IO [Contact]
|
||||||
getDeletedContacts db user@User {userId} = do
|
getDeletedContacts db user@User {userId} = do
|
||||||
@ -501,7 +515,14 @@ updateContactLDN_ db userId contactId displayName newName updatedAt = do
|
|||||||
db
|
db
|
||||||
"UPDATE group_members SET local_display_name = ?, updated_at = ? WHERE user_id = ? AND contact_id = ?"
|
"UPDATE group_members SET local_display_name = ?, updated_at = ? WHERE user_id = ? AND contact_id = ?"
|
||||||
(newName, updatedAt, userId, contactId)
|
(newName, updatedAt, userId, contactId)
|
||||||
DB.execute db "DELETE FROM display_names WHERE local_display_name = ? AND user_id = ?" (displayName, userId)
|
DB.execute
|
||||||
|
db
|
||||||
|
[sql|
|
||||||
|
DELETE FROM display_names
|
||||||
|
WHERE local_display_name = ? AND user_id = ?
|
||||||
|
AND local_display_name NOT IN (SELECT local_display_name FROM users)
|
||||||
|
|]
|
||||||
|
(displayName, userId)
|
||||||
|
|
||||||
getContactByName :: DB.Connection -> User -> ContactName -> ExceptT StoreError IO Contact
|
getContactByName :: DB.Connection -> User -> ContactName -> ExceptT StoreError IO Contact
|
||||||
getContactByName db user localDisplayName = do
|
getContactByName db user localDisplayName = do
|
||||||
@ -614,7 +635,14 @@ createOrUpdateContactRequest db user@User {userId} userContactLinkId invId (Vers
|
|||||||
WHERE user_id = ? AND contact_request_id = ?
|
WHERE user_id = ? AND contact_request_id = ?
|
||||||
|]
|
|]
|
||||||
(invId, minV, maxV, ldn, currentTs, userId, cReqId)
|
(invId, minV, maxV, ldn, currentTs, userId, cReqId)
|
||||||
DB.execute db "DELETE FROM display_names WHERE local_display_name = ? AND user_id = ?" (oldLdn, userId)
|
DB.execute
|
||||||
|
db
|
||||||
|
[sql|
|
||||||
|
DELETE FROM display_names
|
||||||
|
WHERE local_display_name = ? AND user_id = ?
|
||||||
|
AND local_display_name NOT IN (SELECT local_display_name FROM users)
|
||||||
|
|]
|
||||||
|
(oldLdn, userId)
|
||||||
where
|
where
|
||||||
updateProfile currentTs =
|
updateProfile currentTs =
|
||||||
DB.execute
|
DB.execute
|
||||||
@ -684,6 +712,7 @@ deleteContactRequest db User {userId} contactRequestId = do
|
|||||||
SELECT local_display_name FROM contact_requests
|
SELECT local_display_name FROM contact_requests
|
||||||
WHERE user_id = ? AND contact_request_id = ?
|
WHERE user_id = ? AND contact_request_id = ?
|
||||||
)
|
)
|
||||||
|
AND local_display_name NOT IN (SELECT local_display_name FROM users)
|
||||||
|]
|
|]
|
||||||
(userId, userId, contactRequestId)
|
(userId, userId, contactRequestId)
|
||||||
DB.execute db "DELETE FROM contact_requests WHERE user_id = ? AND contact_request_id = ?" (userId, contactRequestId)
|
DB.execute db "DELETE FROM contact_requests WHERE user_id = ? AND contact_request_id = ?" (userId, contactRequestId)
|
||||||
|
@ -225,6 +225,7 @@ deleteGroupLink db User {userId} GroupInfo {groupId} = do
|
|||||||
JOIN user_contact_links uc USING (user_contact_link_id)
|
JOIN user_contact_links uc USING (user_contact_link_id)
|
||||||
WHERE uc.user_id = ? AND uc.group_id = ?
|
WHERE uc.user_id = ? AND uc.group_id = ?
|
||||||
)
|
)
|
||||||
|
AND local_display_name NOT IN (SELECT local_display_name FROM users)
|
||||||
|]
|
|]
|
||||||
(userId, userId, groupId)
|
(userId, userId, groupId)
|
||||||
DB.execute
|
DB.execute
|
||||||
@ -586,7 +587,14 @@ deleteGroup :: DB.Connection -> User -> GroupInfo -> IO ()
|
|||||||
deleteGroup db user@User {userId} g@GroupInfo {groupId, localDisplayName} = do
|
deleteGroup db user@User {userId} g@GroupInfo {groupId, localDisplayName} = do
|
||||||
deleteGroupProfile_ db userId groupId
|
deleteGroupProfile_ db userId groupId
|
||||||
DB.execute db "DELETE FROM groups WHERE user_id = ? AND group_id = ?" (userId, groupId)
|
DB.execute db "DELETE FROM groups WHERE user_id = ? AND group_id = ?" (userId, groupId)
|
||||||
DB.execute db "DELETE FROM display_names WHERE user_id = ? AND local_display_name = ?" (userId, localDisplayName)
|
DB.execute
|
||||||
|
db
|
||||||
|
[sql|
|
||||||
|
DELETE FROM display_names
|
||||||
|
WHERE user_id = ? AND local_display_name = ?
|
||||||
|
AND local_display_name NOT IN (SELECT local_display_name FROM users)
|
||||||
|
|]
|
||||||
|
(userId, localDisplayName)
|
||||||
forM_ (incognitoMembershipProfile g) $ deleteUnusedIncognitoProfileById_ db user . localProfileId
|
forM_ (incognitoMembershipProfile g) $ deleteUnusedIncognitoProfileById_ db user . localProfileId
|
||||||
|
|
||||||
deleteGroupProfile_ :: DB.Connection -> UserId -> GroupId -> IO ()
|
deleteGroupProfile_ :: DB.Connection -> UserId -> GroupId -> IO ()
|
||||||
@ -1051,7 +1059,14 @@ cleanupMemberProfileAndName_ db User {userId} GroupMember {groupMemberId, member
|
|||||||
sameProfileMember :: (Maybe GroupMemberId) <- maybeFirstRow fromOnly $ DB.query db "SELECT group_member_id FROM group_members WHERE user_id = ? AND contact_profile_id = ? AND group_member_id != ? LIMIT 1" (userId, memberContactProfileId, groupMemberId)
|
sameProfileMember :: (Maybe GroupMemberId) <- maybeFirstRow fromOnly $ DB.query db "SELECT group_member_id FROM group_members WHERE user_id = ? AND contact_profile_id = ? AND group_member_id != ? LIMIT 1" (userId, memberContactProfileId, groupMemberId)
|
||||||
when (isNothing sameProfileMember) $ do
|
when (isNothing sameProfileMember) $ do
|
||||||
DB.execute db "DELETE FROM contact_profiles WHERE user_id = ? AND contact_profile_id = ?" (userId, memberContactProfileId)
|
DB.execute db "DELETE FROM contact_profiles WHERE user_id = ? AND contact_profile_id = ?" (userId, memberContactProfileId)
|
||||||
DB.execute db "DELETE FROM display_names WHERE user_id = ? AND local_display_name = ?" (userId, localDisplayName)
|
DB.execute
|
||||||
|
db
|
||||||
|
[sql|
|
||||||
|
DELETE FROM display_names
|
||||||
|
WHERE user_id = ? AND local_display_name = ?
|
||||||
|
AND local_display_name NOT IN (SELECT local_display_name FROM users)
|
||||||
|
|]
|
||||||
|
(userId, localDisplayName)
|
||||||
|
|
||||||
deleteGroupMemberConnection :: DB.Connection -> User -> GroupMember -> IO ()
|
deleteGroupMemberConnection :: DB.Connection -> User -> GroupMember -> IO ()
|
||||||
deleteGroupMemberConnection db User {userId} GroupMember {groupMemberId} =
|
deleteGroupMemberConnection db User {userId} GroupMember {groupMemberId} =
|
||||||
@ -1361,7 +1376,14 @@ updateGroupProfile db User {userId} g@GroupInfo {groupId, localDisplayName, grou
|
|||||||
db
|
db
|
||||||
"UPDATE groups SET local_display_name = ?, updated_at = ? WHERE user_id = ? AND group_id = ?"
|
"UPDATE groups SET local_display_name = ?, updated_at = ? WHERE user_id = ? AND group_id = ?"
|
||||||
(ldn, currentTs, userId, groupId)
|
(ldn, currentTs, userId, groupId)
|
||||||
DB.execute db "DELETE FROM display_names WHERE local_display_name = ? AND user_id = ?" (localDisplayName, userId)
|
DB.execute
|
||||||
|
db
|
||||||
|
[sql|
|
||||||
|
DELETE FROM display_names
|
||||||
|
WHERE local_display_name = ? AND user_id = ?
|
||||||
|
AND local_display_name NOT IN (SELECT local_display_name FROM users)
|
||||||
|
|]
|
||||||
|
(localDisplayName, userId)
|
||||||
|
|
||||||
getGroupInfo :: DB.Connection -> VersionRange -> User -> Int64 -> ExceptT StoreError IO GroupInfo
|
getGroupInfo :: DB.Connection -> VersionRange -> User -> Int64 -> ExceptT StoreError IO GroupInfo
|
||||||
getGroupInfo db vr User {userId, userContactId} groupId =
|
getGroupInfo db vr User {userId, userContactId} groupId =
|
||||||
@ -2030,7 +2052,14 @@ updateMemberProfile db User {userId} m p'
|
|||||||
db
|
db
|
||||||
"UPDATE group_members SET local_display_name = ?, updated_at = ? WHERE user_id = ? AND group_member_id = ?"
|
"UPDATE group_members SET local_display_name = ?, updated_at = ? WHERE user_id = ? AND group_member_id = ?"
|
||||||
(ldn, currentTs, userId, groupMemberId)
|
(ldn, currentTs, userId, groupMemberId)
|
||||||
DB.execute db "DELETE FROM display_names WHERE local_display_name = ? AND user_id = ?" (localDisplayName, userId)
|
DB.execute
|
||||||
|
db
|
||||||
|
[sql|
|
||||||
|
DELETE FROM display_names
|
||||||
|
WHERE local_display_name = ? AND user_id = ?
|
||||||
|
AND local_display_name NOT IN (SELECT local_display_name FROM users)
|
||||||
|
|]
|
||||||
|
(localDisplayName, userId)
|
||||||
pure $ Right m {localDisplayName = ldn, memberProfile = profile}
|
pure $ Right m {localDisplayName = ldn, memberProfile = profile}
|
||||||
where
|
where
|
||||||
GroupMember {groupMemberId, localDisplayName, memberProfile = LocalProfile {profileId, displayName, localAlias}} = m
|
GroupMember {groupMemberId, localDisplayName, memberProfile = LocalProfile {profileId, displayName, localAlias}} = m
|
||||||
|
@ -388,6 +388,7 @@ deleteUserAddress db user@User {userId} = do
|
|||||||
JOIN user_contact_links uc USING (user_contact_link_id)
|
JOIN user_contact_links uc USING (user_contact_link_id)
|
||||||
WHERE uc.user_id = :user_id AND uc.local_display_name = '' AND uc.group_id IS NULL
|
WHERE uc.user_id = :user_id AND uc.local_display_name = '' AND uc.group_id IS NULL
|
||||||
)
|
)
|
||||||
|
AND local_display_name NOT IN (SELECT local_display_name FROM users)
|
||||||
|]
|
|]
|
||||||
[":user_id" := userId]
|
[":user_id" := userId]
|
||||||
DB.executeNamed
|
DB.executeNamed
|
||||||
|
Loading…
Reference in New Issue
Block a user