Skip to content

Commit 8f8a037

Browse files
committed
fix: show members menu without permissions/read by removing DRIVES_READ_PERMISSION check
Made-with: Cursor
1 parent a666d1e commit 8f8a037

2 files changed

Lines changed: 17 additions & 12 deletions

File tree

owncloudApp/src/main/java/com/owncloud/android/presentation/spaces/members/SpaceMembersFragment.kt

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ class SpaceMembersFragment : Fragment(), SpaceMembersAdapter.SpaceMembersAdapter
7979
private var listener: SpaceMemberFragmentListener? = null
8080
private var canRemoveMembers = false
8181
private var canEditMembers = false
82+
private var canReadMembers = false
8283
private var numberOfManagers = 1
8384

8485
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View {
@@ -105,6 +106,7 @@ class SpaceMembersFragment : Fragment(), SpaceMembersAdapter.SpaceMembersAdapter
105106
savedInstanceState?.let {
106107
canRemoveMembers = it.getBoolean(CAN_REMOVE_MEMBERS, false)
107108
canEditMembers = it.getBoolean(CAN_EDIT_MEMBERS, false)
109+
canReadMembers = it.getBoolean(CAN_READ_MEMBERS, false)
108110
}
109111

110112
subscribeToViewModels()
@@ -150,6 +152,7 @@ class SpaceMembersFragment : Fragment(), SpaceMembersAdapter.SpaceMembersAdapter
150152
super.onSaveInstanceState(outState)
151153
outState.putBoolean(CAN_REMOVE_MEMBERS, canRemoveMembers)
152154
outState.putBoolean(CAN_EDIT_MEMBERS, canEditMembers)
155+
outState.putBoolean(CAN_READ_MEMBERS, canReadMembers)
153156
}
154157

155158
override fun onRemoveMember(spaceMember: SpaceMember) {
@@ -217,7 +220,8 @@ class SpaceMembersFragment : Fragment(), SpaceMembersAdapter.SpaceMembersAdapter
217220
spaceMember.roles.contains(OCRoleType.toString(OCRoleType.CAN_MANAGE)) }
218221
spaceMembers = it.members
219222
addMemberRoles = it.roles
220-
spaceMembersAdapter.setSpaceMembers(spaceMembers, roles, canRemoveMembers, canEditMembers, numberOfManagers)
223+
val membersForList = if (canReadMembers) spaceMembers else emptyList()
224+
spaceMembersAdapter.setSpaceMembers(membersForList, roles, canRemoveMembers, canEditMembers, numberOfManagers)
221225
val hasLinks = it.links.isNotEmpty()
222226
showOrHideEmptyView(hasLinks)
223227
if (hasLinks) { showSpaceLinks(it.links) }
@@ -242,7 +246,6 @@ class SpaceMembersFragment : Fragment(), SpaceMembersAdapter.SpaceMembersAdapter
242246
is UIResult.Success -> {
243247
uiResult.data?.let { spacePermissions ->
244248
checkPermissions(spacePermissions)
245-
spaceMembersAdapter.setSpaceMembers(spaceMembers, roles, canRemoveMembers, canEditMembers, numberOfManagers)
246249
}
247250
}
248251
is UIResult.Loading -> { }
@@ -316,13 +319,18 @@ class SpaceMembersFragment : Fragment(), SpaceMembersAdapter.SpaceMembersAdapter
316319
}
317320

318321
private fun checkPermissions(spacePermissions: List<String>) {
322+
val hasCreatePermission = DRIVES_CREATE_PERMISSION in spacePermissions
323+
canRemoveMembers = DRIVES_DELETE_PERMISSION in spacePermissions
324+
canEditMembers = DRIVES_UPDATE_PERMISSION in spacePermissions
325+
canReadMembers = DRIVES_READ_PERMISSION in spacePermissions
319326
binding.apply {
320-
val hasCreatePermission = DRIVES_CREATE_PERMISSION in spacePermissions
321327
addMemberButton.isVisible = hasCreatePermission
322-
addPublicLinkButton.isVisible = hasCreatePermission
328+
addPublicLinkButton.isVisible = hasCreatePermission && canReadMembers
329+
membersListSection.isVisible = canReadMembers
330+
publicLinksSection.isVisible = canReadMembers
323331
}
324-
canRemoveMembers = DRIVES_DELETE_PERMISSION in spacePermissions
325-
canEditMembers = DRIVES_UPDATE_PERMISSION in spacePermissions
332+
val membersForList = if (canReadMembers) spaceMembers else emptyList()
333+
spaceMembersAdapter.setSpaceMembers(membersForList, roles, canRemoveMembers, canEditMembers, numberOfManagers)
326334
}
327335

328336
private fun showOrHideEmptyView(hasLinks: Boolean) {
@@ -358,8 +366,10 @@ class SpaceMembersFragment : Fragment(), SpaceMembersAdapter.SpaceMembersAdapter
358366
private const val DRIVES_CREATE_PERMISSION = "libre.graph/driveItem/permissions/create"
359367
private const val DRIVES_DELETE_PERMISSION = "libre.graph/driveItem/permissions/delete"
360368
private const val DRIVES_UPDATE_PERMISSION = "libre.graph/driveItem/permissions/update"
369+
private const val DRIVES_READ_PERMISSION = "libre.graph/driveItem/permissions/read"
361370
private const val CAN_REMOVE_MEMBERS = "CAN_REMOVE_MEMBERS"
362371
private const val CAN_EDIT_MEMBERS = "CAN_EDIT_MEMBERS"
372+
private const val CAN_READ_MEMBERS = "CAN_READ_MEMBERS"
363373

364374
fun newInstance(
365375
accountName: String,

owncloudDomain/src/main/java/com/owncloud/android/domain/spaces/usecases/FilterSpaceMenuOptionsUseCase.kt

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -45,11 +45,7 @@ class FilterSpaceMenuOptionsUseCase(
4545

4646
val editImagePermission = hasSpacePermission(spacePermissionsResult, DRIVES_MANAGE_PERMISSION)
4747

48-
val membersPermission = hasSpacePermission(spacePermissionsResult, DRIVES_READ_PERMISSION)
49-
50-
if (membersPermission) {
51-
optionsToShow.add(SpaceMenuOption.MEMBERS)
52-
}
48+
optionsToShow.add(SpaceMenuOption.MEMBERS)
5349

5450
if (editPermission || (isSpaceManager && currentSpace.isDisabled)) {
5551
optionsToShow.add(SpaceMenuOption.EDIT)
@@ -87,7 +83,6 @@ class FilterSpaceMenuOptionsUseCase(
8783
companion object {
8884
private const val DRIVES_MANAGE_PERMISSION = "libre.graph/driveItem/permissions/update"
8985
private const val DRIVES_DELETE_PERMISSION = "libre.graph/driveItem/permissions/delete"
90-
private const val DRIVES_READ_PERMISSION = "libre.graph/driveItem/permissions/read"
9186
private const val DRIVES_MANAGER_ROLE = "manager"
9287
}
9388
}

0 commit comments

Comments
 (0)