summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohn Molakvoæ <skjnldsv@users.noreply.github.com>2021-06-04 12:34:32 +0200
committerGitHub <noreply@github.com>2021-06-04 12:34:32 +0200
commitfc280fdae6f1f210342ec97098d5bceefd9200eb (patch)
treeb92ed3839384887fb0e5f9a079b1906a620a66d9
parent26ce91ad61b7ff855a35785deebe563e85543b19 (diff)
parent348fb9cbaf1e0677383c602b1f82c4faa92be256 (diff)
Merge pull request #2254 from nextcloud/fix/admin-can-promote
Admins can also promote others as admin
-rw-r--r--src/components/MemberList.vue4
-rw-r--r--src/components/MembersList/MembersListItem.vue13
2 files changed, 12 insertions, 5 deletions
diff --git a/src/components/MemberList.vue b/src/components/MemberList.vue
index 06235d98..ffd8fb12 100644
--- a/src/components/MemberList.vue
+++ b/src/components/MemberList.vue
@@ -35,7 +35,9 @@
<AppContentList v-else :class="{ 'icon-loading': loading, showdetails: showDetails }">
<div class="members-list__new">
- <button class="icon-add" @click="onShowPicker(circle.id)">
+ <button v-if="circle.canManageMembers"
+ class="icon-add"
+ @click="onShowPicker(circle.id)">
{{ t('contacts', 'Add members') }}
</button>
<button v-if="isMobile"
diff --git a/src/components/MembersList/MembersListItem.vue b/src/components/MembersList/MembersListItem.vue
index ba3dd018..51961a0d 100644
--- a/src/components/MembersList/MembersListItem.vue
+++ b/src/components/MembersList/MembersListItem.vue
@@ -162,16 +162,21 @@ export default {
const levels = Object.keys(CIRCLES_MEMBER_LEVELS)
// Object.keys returns those as string
.map(level => parseInt(level, 10))
- // we cannot set to a level higher than the current user's level
+ // we cannot set to a level higher or equal than the current user's level
.filter(level => level < this.currentUserLevel)
- // we cannot set to the level this member is already
- .filter(level => level !== this.source.level)
+ // Admins can promote others as Admin too
+ if (this.currentUserLevel === MemberLevels.ADMIN) {
+ levels.push(MemberLevels.ADMIN)
+ }
+
+ // Owners transfer ownership to another member
if (this.circle.isOwner) {
levels.push(MemberLevels.OWNER)
}
- return levels
+ // we cannot set to the level this member is already
+ return levels.filter(level => level !== this.source.level)
},
/**