Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/stefan-niedermann/nextcloud-deck.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Niedermann <info@niedermann.it>2020-05-09 13:54:57 +0300
committerStefan Niedermann <info@niedermann.it>2020-05-09 13:54:57 +0300
commit167dc12720c3980ba238cebc15f6f2670282f1d6 (patch)
tree1d3ab6da445dabd438f42cee1ef9b867f4ed5629 /app/src/main/java/it/niedermann/nextcloud/deck/ui/board
parent06404d6e81a2dd1daded266784729a87a947aad0 (diff)
Only allow changing edit and manage permissions of sharees when user itself has manage permission at this board
Diffstat (limited to 'app/src/main/java/it/niedermann/nextcloud/deck/ui/board')
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/board/accesscontrol/AccessControlAdapter.java42
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/board/accesscontrol/AccessControlDialogFragment.java2
2 files changed, 28 insertions, 16 deletions
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/accesscontrol/AccessControlAdapter.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/accesscontrol/AccessControlAdapter.java
index b3e2a24dc..4ab3ac80b 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/accesscontrol/AccessControlAdapter.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/accesscontrol/AccessControlAdapter.java
@@ -4,6 +4,7 @@ import android.content.Context;
import android.content.res.ColorStateList;
import android.graphics.Color;
import android.view.LayoutInflater;
+import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.ColorInt;
@@ -45,6 +46,7 @@ public class AccessControlAdapter extends RecyclerView.Adapter<RecyclerView.View
private AccessControlChangedListener accessControlChangedListener;
@NonNull
private Context context;
+ private boolean hasManagePermission = false;
AccessControlAdapter(@NonNull Account account, @NonNull AccessControlChangedListener accessControlChangedListener, @NonNull Context context) {
this.account = account;
@@ -94,18 +96,25 @@ public class AccessControlAdapter extends RecyclerView.Adapter<RecyclerView.View
acHolder.binding.username.setCompoundDrawables(null, null, ac.getStatus() == DBStatus.LOCAL_EDITED.getId() ? context.getResources().getDrawable(R.drawable.ic_sync_blue_24dp) : null, null);
acHolder.binding.delete.setOnClickListener((v) -> accessControlChangedListener.deleteAccessControl(ac));
- acHolder.binding.permissionEdit.setChecked(ac.isPermissionEdit());
- acHolder.binding.permissionEdit.setOnCheckedChangeListener((buttonView, isChecked) -> {
- ac.setPermissionEdit(isChecked);
- accessControlChangedListener.updateAccessControl(ac);
- });
-
- acHolder.binding.permissionManage.setChecked(ac.isPermissionManage());
- acHolder.binding.permissionManage.setOnCheckedChangeListener((buttonView, isChecked) -> {
- ac.setPermissionManage(isChecked);
- accessControlChangedListener.updateAccessControl(ac);
- acHolder.binding.username.setCompoundDrawables(null, null, null, null);
- });
+ if (hasManagePermission) {
+ acHolder.binding.permissionEdit.setVisibility(View.VISIBLE);
+ acHolder.binding.permissionEdit.setChecked(ac.isPermissionEdit());
+ acHolder.binding.permissionEdit.setOnCheckedChangeListener((buttonView, isChecked) -> {
+ ac.setPermissionEdit(isChecked);
+ accessControlChangedListener.updateAccessControl(ac);
+ });
+
+ acHolder.binding.permissionManage.setVisibility(View.VISIBLE);
+ acHolder.binding.permissionManage.setChecked(ac.isPermissionManage());
+ acHolder.binding.permissionManage.setOnCheckedChangeListener((buttonView, isChecked) -> {
+ ac.setPermissionManage(isChecked);
+ accessControlChangedListener.updateAccessControl(ac);
+ acHolder.binding.username.setCompoundDrawables(null, null, null, null);
+ });
+ } else {
+ acHolder.binding.permissionEdit.setVisibility(View.GONE);
+ acHolder.binding.permissionManage.setVisibility(View.GONE);
+ }
acHolder.binding.permissionShare.setChecked(ac.isPermissionShare());
acHolder.binding.permissionShare.setOnCheckedChangeListener((buttonView, isChecked) -> {
@@ -114,8 +123,10 @@ public class AccessControlAdapter extends RecyclerView.Adapter<RecyclerView.View
});
if (Application.isBrandingEnabled(context)) {
- brandSwitch(context, acHolder.binding.permissionEdit, mainColor);
- brandSwitch(context, acHolder.binding.permissionManage, mainColor);
+ if (hasManagePermission) {
+ brandSwitch(context, acHolder.binding.permissionEdit, mainColor);
+ brandSwitch(context, acHolder.binding.permissionManage, mainColor);
+ }
brandSwitch(context, acHolder.binding.permissionShare, mainColor);
}
break;
@@ -140,9 +151,10 @@ public class AccessControlAdapter extends RecyclerView.Adapter<RecyclerView.View
}
}
- public void update(@NonNull List<AccessControl> accessControls) {
+ public void update(@NonNull List<AccessControl> accessControls, boolean hasManagePermission) {
this.accessControls.clear();
this.accessControls.addAll(accessControls);
+ this.hasManagePermission = hasManagePermission;
notifyDataSetChanged();
}
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/accesscontrol/AccessControlDialogFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/accesscontrol/AccessControlDialogFragment.java
index e0ab5a8f2..6d2dc7e26 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/accesscontrol/AccessControlDialogFragment.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/accesscontrol/AccessControlDialogFragment.java
@@ -82,7 +82,7 @@ public class AccessControlDialogFragment extends BrandedDialogFragment implement
ownerControl.setLocalId(HEADER_ITEM_LOCAL_ID);
ownerControl.setUser(fullBoard.getOwner());
accessControlList.add(0, ownerControl);
- adapter.update(accessControlList);
+ adapter.update(accessControlList, fullBoard.getBoard().isPermissionManage());
userAutoCompleteAdapter = new UserAutoCompleteAdapter(requireActivity(), viewModel.getCurrentAccount(), boardId);
binding.people.setAdapter(userAutoCompleteAdapter);
binding.people.setOnItemClickListener(this);