| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- import config from "app/core/config";
- import _ from "lodash";
- import coreModule from "app/core/core_module";
- import store from "app/core/store";
- export class User {
- isGrafanaAdmin: any;
- isSignedIn: any;
- orgRole: any;
- orgId: number;
- timezone: string;
- helpFlags1: number;
- lightTheme: boolean;
- constructor() {
- if (config.bootData.user) {
- _.extend(this, config.bootData.user);
- }
- }
- }
- export class ContextSrv {
- pinned: any;
- version: any;
- user: User;
- isSignedIn: any;
- isGrafanaAdmin: any;
- isEditor: any;
- sidemenu: any;
- sidemenuSmallBreakpoint = false;
- constructor() {
- this.sidemenu = store.getBool("grafana.sidemenu", true);
- if (!config.buildInfo) {
- config.buildInfo = {};
- }
- if (!config.bootData) {
- config.bootData = { user: {}, settings: {} };
- }
- this.version = config.buildInfo.version;
- this.user = new User();
- this.isSignedIn = this.user.isSignedIn;
- this.isGrafanaAdmin = this.user.isGrafanaAdmin;
- this.isEditor = this.hasRole("Editor") || this.hasRole("Admin");
- }
- hasRole(role) {
- return this.user.orgRole === role;
- }
- isGrafanaVisible() {
- return !!(
- document.visibilityState === undefined ||
- document.visibilityState === "visible"
- );
- }
- toggleSideMenu() {
- this.sidemenu = !this.sidemenu;
- store.set("grafana.sidemenu", this.sidemenu);
- }
- }
- var contextSrv = new ContextSrv();
- export { contextSrv };
- coreModule.factory("contextSrv", function() {
- return contextSrv;
- });
|