client/app/services/policy/DefaultPolicy.js (51 lines of code) (raw):
import { get, isArray } from "lodash";
import { currentUser, clientConfig } from "@/services/auth";
/* eslint-disable class-methods-use-this */
export default class DefaultPolicy {
refresh() {
return Promise.resolve(this);
}
canCreateDataSource() {
return currentUser.isAdmin;
}
isCreateDataSourceEnabled() {
return currentUser.isAdmin;
}
canCreateDestination() {
return currentUser.isAdmin;
}
isCreateDestinationEnabled() {
return currentUser.isAdmin;
}
canCreateDashboard() {
return currentUser.hasPermission("create_dashboard");
}
isCreateDashboardEnabled() {
return currentUser.hasPermission("create_dashboard");
}
canCreateAlert() {
return true;
}
canCreateUser() {
return currentUser.isAdmin;
}
isCreateUserEnabled() {
return currentUser.isAdmin;
}
isCreateQuerySnippetEnabled() {
return true;
}
getDashboardRefreshIntervals() {
const result = clientConfig.dashboardRefreshIntervals;
return isArray(result) ? result : null;
}
getQueryRefreshIntervals() {
const result = clientConfig.queryRefreshIntervals;
return isArray(result) ? result : null;
}
canEdit(object) {
return get(object, "can_edit", false);
}
canRun() {
return true;
}
}