mirror of
https://github.com/danbulant/Nertivia-Client
synced 2026-07-04 10:30:37 +00:00
show admin tag
This commit is contained in:
parent
00544d6c0f
commit
3d3d055c10
2 changed files with 38 additions and 8 deletions
|
|
@ -19,12 +19,14 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="type === 'OWNER'" class="type-box">Owner</div>
|
<div v-if="type === 'OWNER'" class="type-box">Owner</div>
|
||||||
|
<div v-else-if="isAdmin" class="type-box">Admin</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import ProfilePicture from "@/components/ProfilePictureTemplate";
|
import ProfilePicture from "@/components/ProfilePictureTemplate";
|
||||||
import config from "@/config";
|
import config from "@/config";
|
||||||
|
import { containsPerm, permissions } from "../../utils/RolePermissions";
|
||||||
export default {
|
export default {
|
||||||
components: { ProfilePicture },
|
components: { ProfilePicture },
|
||||||
props: ["user", "avatar", "type", "member"],
|
props: ["user", "avatar", "type", "member"],
|
||||||
|
|
@ -49,16 +51,40 @@ export default {
|
||||||
const userPresense = presences[this.user.uniqueID];
|
const userPresense = presences[this.user.uniqueID];
|
||||||
return userPresense || 0;
|
return userPresense || 0;
|
||||||
},
|
},
|
||||||
|
roles() {
|
||||||
|
return this.$store.getters["servers/selectedServerRoles"];
|
||||||
|
},
|
||||||
roleColor() {
|
roleColor() {
|
||||||
if (!this.member || !this.member.roles) return undefined;
|
if (!this.member || !this.member.roles) return undefined;
|
||||||
const roles = this.$store.getters["servers/selectedServerRoles"];
|
if (!this.roles) return undefined;
|
||||||
if (!roles) return undefined;
|
|
||||||
|
|
||||||
let filter = roles.filter(r => this.member.roles.includes(r.id));
|
let filter = this.roles.filter(r => this.member.roles.includes(r.id));
|
||||||
if (!filter.length) {
|
if (!filter.length) {
|
||||||
filter = [roles.find(r => r.default)];
|
filter = [this.roles.find(r => r.default)];
|
||||||
}
|
}
|
||||||
return filter[0].color;
|
return filter[0].color;
|
||||||
|
},
|
||||||
|
isAdmin() {
|
||||||
|
if (!this.roles) return false;
|
||||||
|
const defaultRole = this.roles.find(r => r.default === true);
|
||||||
|
if (containsPerm(defaultRole.permissions, permissions.ADMIN.value)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (!this.member.roles) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (let index = 0; index < this.member.roles.length; index++) {
|
||||||
|
const roleID = this.member.roles[index];
|
||||||
|
const role = this.roles.find(r => r.id === roleID);
|
||||||
|
if (role) {
|
||||||
|
if (containsPerm(role.permissions, permissions.ADMIN.value)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
|
|
||||||
|
|
@ -176,7 +176,7 @@
|
||||||
<div
|
<div
|
||||||
class="no-message-permission"
|
class="no-message-permission"
|
||||||
v-if="
|
v-if="
|
||||||
sendChannelMessagePermission === false || !roleSendMessagePermission
|
sendChannelMessagePermission === false || roleSendMessagePermission === false
|
||||||
"
|
"
|
||||||
>
|
>
|
||||||
You don't have permission to send messages in this channel.
|
You don't have permission to send messages in this channel.
|
||||||
|
|
@ -729,9 +729,9 @@ export default {
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
myRolePermissions() {
|
myRolePermissions() {
|
||||||
if (!this.serverMember) return;
|
if (!this.serverMember) return undefined;
|
||||||
const roles = this.$store.getters["servers/selectedServerRoles"];
|
const roles = this.$store.getters["servers/selectedServerRoles"];
|
||||||
if (!roles ) return undefined;
|
if (!roles) return undefined;
|
||||||
|
|
||||||
let perms = 0;
|
let perms = 0;
|
||||||
|
|
||||||
|
|
@ -749,7 +749,11 @@ export default {
|
||||||
return perms;
|
return perms;
|
||||||
},
|
},
|
||||||
roleSendMessagePermission() {
|
roleSendMessagePermission() {
|
||||||
return containsPerm(
|
if (this.type !== 1) return true;
|
||||||
|
if (!this.channel) return null;
|
||||||
|
|
||||||
|
if (!this.server) return false;
|
||||||
|
return !!containsPerm(
|
||||||
this.myRolePermissions || 0,
|
this.myRolePermissions || 0,
|
||||||
permissions.SEND_MESSAGES.value
|
permissions.SEND_MESSAGES.value
|
||||||
);
|
);
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue