diff --git a/object/organization.go b/object/organization.go index e735499d..aff9b80e 100644 --- a/object/organization.go +++ b/object/organization.go @@ -73,6 +73,7 @@ type Organization struct { EnableSoftDeletion bool `json:"enableSoftDeletion"` IsProfilePublic bool `json:"isProfilePublic"` UseEmailAsUsername bool `json:"useEmailAsUsername"` + EnableTour bool `json:"enableTour"` MfaItems []*MfaItem `xorm:"varchar(300)" json:"mfaItems"` AccountItems []*AccountItem `xorm:"varchar(5000)" json:"accountItems"` diff --git a/web/src/App.js b/web/src/App.js index 11d9b8bc..d5b95b47 100644 --- a/web/src/App.js +++ b/web/src/App.js @@ -16,6 +16,7 @@ import React, {Component, Suspense, lazy} from "react"; import "./App.less"; import {Helmet} from "react-helmet"; import * as Setting from "./Setting"; +import {setIsTourVisible, setTourLogo} from "./TourConfig"; import {StyleProvider, legacyLogicalPropertiesTransformer} from "@ant-design/cssinjs"; import {GithubOutlined, InfoCircleFilled, ShareAltOutlined} from "@ant-design/icons"; import {Alert, Button, ConfigProvider, Drawer, FloatButton, Layout, Result, Tooltip} from "antd"; @@ -247,6 +248,8 @@ class App extends Component { this.setLanguage(account); this.setTheme(Setting.getThemeData(account.organization), Conf.InitThemeAlgorithm); + setTourLogo(account.organization.logo); + setIsTourVisible(account.organization.enableTour); } else { if (res.data !== "Please login first") { Setting.showMessage("error", `${i18next.t("application:Failed to sign in")}: ${res.msg}`); diff --git a/web/src/OrganizationEditPage.js b/web/src/OrganizationEditPage.js index 3de2b22c..0589a6de 100644 --- a/web/src/OrganizationEditPage.js +++ b/web/src/OrganizationEditPage.js @@ -446,6 +446,16 @@ class OrganizationEditPage extends React.Component { }} /> + + + {Setting.getLabel(i18next.t("general:Enable tour"), i18next.t("general:Enable tour - Tooltip"))} : + + + { + this.updateOrganizationField("enableTour", checked); + }} /> + + {Setting.getLabel(i18next.t("organization:Account items"), i18next.t("organization:Account items - Tooltip"))} : diff --git a/web/src/OrganizationListPage.js b/web/src/OrganizationListPage.js index 33d05c7e..372018de 100644 --- a/web/src/OrganizationListPage.js +++ b/web/src/OrganizationListPage.js @@ -44,6 +44,7 @@ class OrganizationListPage extends BaseListPage { defaultPassword: "", enableSoftDeletion: false, isProfilePublic: true, + enableTour: true, accountItems: [ {name: "Organization", visible: true, viewRule: "Public", modifyRule: "Admin"}, {name: "ID", visible: true, viewRule: "Public", modifyRule: "Immutable"}, diff --git a/web/src/TourConfig.js b/web/src/TourConfig.js index c9171677..7dd490e8 100644 --- a/web/src/TourConfig.js +++ b/web/src/TourConfig.js @@ -208,6 +208,12 @@ export function setIsTourVisible(visible) { window.dispatchEvent(new Event("storageTourChanged")); } +export function setTourLogo(tourLogoSrc) { + if (tourLogoSrc !== "") { + TourObj["home"][0]["cover"] = (casdoor.png); + } +} + export function getTourVisible() { return localStorage.getItem("isTourVisible") !== "false"; }