Skip to content

Commit 2266839

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

2 files changed

Lines changed: 19 additions & 12 deletions

File tree

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

Lines changed: 18 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,7 +106,10 @@ 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
}
111+
binding.membersListSection.isVisible = canReadMembers
112+
binding.publicLinksSection.isVisible = canReadMembers
109113

110114
subscribeToViewModels()
111115

@@ -150,6 +154,7 @@ class SpaceMembersFragment : Fragment(), SpaceMembersAdapter.SpaceMembersAdapter
150154
super.onSaveInstanceState(outState)
151155
outState.putBoolean(CAN_REMOVE_MEMBERS, canRemoveMembers)
152156
outState.putBoolean(CAN_EDIT_MEMBERS, canEditMembers)
157+
outState.putBoolean(CAN_READ_MEMBERS, canReadMembers)
153158
}
154159

155160
override fun onRemoveMember(spaceMember: SpaceMember) {
@@ -217,7 +222,8 @@ class SpaceMembersFragment : Fragment(), SpaceMembersAdapter.SpaceMembersAdapter
217222
spaceMember.roles.contains(OCRoleType.toString(OCRoleType.CAN_MANAGE)) }
218223
spaceMembers = it.members
219224
addMemberRoles = it.roles
220-
spaceMembersAdapter.setSpaceMembers(spaceMembers, roles, canRemoveMembers, canEditMembers, numberOfManagers)
225+
val membersForList = if (canReadMembers) spaceMembers else emptyList()
226+
spaceMembersAdapter.setSpaceMembers(membersForList, roles, canRemoveMembers, canEditMembers, numberOfManagers)
221227
val hasLinks = it.links.isNotEmpty()
222228
showOrHideEmptyView(hasLinks)
223229
if (hasLinks) { showSpaceLinks(it.links) }
@@ -242,7 +248,6 @@ class SpaceMembersFragment : Fragment(), SpaceMembersAdapter.SpaceMembersAdapter
242248
is UIResult.Success -> {
243249
uiResult.data?.let { spacePermissions ->
244250
checkPermissions(spacePermissions)
245-
spaceMembersAdapter.setSpaceMembers(spaceMembers, roles, canRemoveMembers, canEditMembers, numberOfManagers)
246251
}
247252
}
248253
is UIResult.Loading -> { }
@@ -316,13 +321,18 @@ class SpaceMembersFragment : Fragment(), SpaceMembersAdapter.SpaceMembersAdapter
316321
}
317322

318323
private fun checkPermissions(spacePermissions: List<String>) {
324+
val hasCreatePermission = DRIVES_CREATE_PERMISSION in spacePermissions
325+
canRemoveMembers = DRIVES_DELETE_PERMISSION in spacePermissions
326+
canEditMembers = DRIVES_UPDATE_PERMISSION in spacePermissions
327+
canReadMembers = DRIVES_READ_PERMISSION in spacePermissions
319328
binding.apply {
320-
val hasCreatePermission = DRIVES_CREATE_PERMISSION in spacePermissions
321329
addMemberButton.isVisible = hasCreatePermission
322-
addPublicLinkButton.isVisible = hasCreatePermission
330+
addPublicLinkButton.isVisible = hasCreatePermission && canReadMembers
331+
membersListSection.isVisible = canReadMembers
332+
publicLinksSection.isVisible = canReadMembers
323333
}
324-
canRemoveMembers = DRIVES_DELETE_PERMISSION in spacePermissions
325-
canEditMembers = DRIVES_UPDATE_PERMISSION in spacePermissions
334+
val membersForList = if (canReadMembers) spaceMembers else emptyList()
335+
spaceMembersAdapter.setSpaceMembers(membersForList, roles, canRemoveMembers, canEditMembers, numberOfManagers)
326336
}
327337

328338
private fun showOrHideEmptyView(hasLinks: Boolean) {
@@ -358,8 +368,10 @@ class SpaceMembersFragment : Fragment(), SpaceMembersAdapter.SpaceMembersAdapter
358368
private const val DRIVES_CREATE_PERMISSION = "libre.graph/driveItem/permissions/create"
359369
private const val DRIVES_DELETE_PERMISSION = "libre.graph/driveItem/permissions/delete"
360370
private const val DRIVES_UPDATE_PERMISSION = "libre.graph/driveItem/permissions/update"
371+
private const val DRIVES_READ_PERMISSION = "libre.graph/driveItem/permissions/read"
361372
private const val CAN_REMOVE_MEMBERS = "CAN_REMOVE_MEMBERS"
362373
private const val CAN_EDIT_MEMBERS = "CAN_EDIT_MEMBERS"
374+
private const val CAN_READ_MEMBERS = "CAN_READ_MEMBERS"
363375

364376
fun newInstance(
365377
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)