mirror of
https://github.com/danbulant/Nertivia-Client
synced 2026-06-17 05:21:07 +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 v-if="type === 'OWNER'" class="type-box">Owner</div>
|
||||
<div v-else-if="isAdmin" class="type-box">Admin</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import ProfilePicture from "@/components/ProfilePictureTemplate";
|
||||
import config from "@/config";
|
||||
import { containsPerm, permissions } from "../../utils/RolePermissions";
|
||||
export default {
|
||||
components: { ProfilePicture },
|
||||
props: ["user", "avatar", "type", "member"],
|
||||
|
|
@ -49,16 +51,40 @@ export default {
|
|||
const userPresense = presences[this.user.uniqueID];
|
||||
return userPresense || 0;
|
||||
},
|
||||
roles() {
|
||||
return this.$store.getters["servers/selectedServerRoles"];
|
||||
},
|
||||
roleColor() {
|
||||
if (!this.member || !this.member.roles) return undefined;
|
||||
const roles = this.$store.getters["servers/selectedServerRoles"];
|
||||
if (!roles) return undefined;
|
||||
if (!this.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) {
|
||||
filter = [roles.find(r => r.default)];
|
||||
filter = [this.roles.find(r => r.default)];
|
||||
}
|
||||
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: {
|
||||
|
|
|
|||
|
|
@ -176,7 +176,7 @@
|
|||
<div
|
||||
class="no-message-permission"
|
||||
v-if="
|
||||
sendChannelMessagePermission === false || !roleSendMessagePermission
|
||||
sendChannelMessagePermission === false || roleSendMessagePermission === false
|
||||
"
|
||||
>
|
||||
You don't have permission to send messages in this channel.
|
||||
|
|
@ -729,9 +729,9 @@ export default {
|
|||
);
|
||||
},
|
||||
myRolePermissions() {
|
||||
if (!this.serverMember) return;
|
||||
if (!this.serverMember) return undefined;
|
||||
const roles = this.$store.getters["servers/selectedServerRoles"];
|
||||
if (!roles ) return undefined;
|
||||
if (!roles) return undefined;
|
||||
|
||||
let perms = 0;
|
||||
|
||||
|
|
@ -749,7 +749,11 @@ export default {
|
|||
return perms;
|
||||
},
|
||||
roleSendMessagePermission() {
|
||||
return containsPerm(
|
||||
if (this.type !== 1) return true;
|
||||
if (!this.channel) return null;
|
||||
|
||||
if (!this.server) return false;
|
||||
return !!containsPerm(
|
||||
this.myRolePermissions || 0,
|
||||
permissions.SEND_MESSAGES.value
|
||||
);
|
||||
|
|
|
|||
Loading…
Reference in a new issue