show admin tag

This commit is contained in:
unknown 2020-01-02 20:48:41 +00:00
parent 00544d6c0f
commit 3d3d055c10
2 changed files with 38 additions and 8 deletions

View file

@ -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: {

View file

@ -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
);