mirror of
https://github.com/langgenius/dify.git
synced 2024-11-16 03:32:23 +08:00
validate user permission before enter app detail page (#8527)
Some checks are pending
Build and Push API & Web / build (api, DIFY_API_IMAGE_NAME, linux/amd64, build-api-amd64) (push) Waiting to run
Build and Push API & Web / build (api, DIFY_API_IMAGE_NAME, linux/arm64, build-api-arm64) (push) Waiting to run
Build and Push API & Web / build (web, DIFY_WEB_IMAGE_NAME, linux/amd64, build-web-amd64) (push) Waiting to run
Build and Push API & Web / build (web, DIFY_WEB_IMAGE_NAME, linux/arm64, build-web-arm64) (push) Waiting to run
Build and Push API & Web / create-manifest (api, DIFY_API_IMAGE_NAME, merge-api-images) (push) Blocked by required conditions
Build and Push API & Web / create-manifest (web, DIFY_WEB_IMAGE_NAME, merge-web-images) (push) Blocked by required conditions
Some checks are pending
Build and Push API & Web / build (api, DIFY_API_IMAGE_NAME, linux/amd64, build-api-amd64) (push) Waiting to run
Build and Push API & Web / build (api, DIFY_API_IMAGE_NAME, linux/arm64, build-api-arm64) (push) Waiting to run
Build and Push API & Web / build (web, DIFY_WEB_IMAGE_NAME, linux/amd64, build-web-amd64) (push) Waiting to run
Build and Push API & Web / build (web, DIFY_WEB_IMAGE_NAME, linux/arm64, build-web-arm64) (push) Waiting to run
Build and Push API & Web / create-manifest (api, DIFY_API_IMAGE_NAME, merge-api-images) (push) Blocked by required conditions
Build and Push API & Web / create-manifest (web, DIFY_WEB_IMAGE_NAME, merge-web-images) (push) Blocked by required conditions
This commit is contained in:
parent
6f222b49f2
commit
41bea4cafa
|
@ -109,6 +109,11 @@ const AppDetailLayout: FC<IAppDetailLayoutProps> = (props) => {
|
||||||
setAppDetail()
|
setAppDetail()
|
||||||
fetchAppDetail({ url: '/apps', id: appId }).then((res) => {
|
fetchAppDetail({ url: '/apps', id: appId }).then((res) => {
|
||||||
// redirection
|
// redirection
|
||||||
|
const canIEditApp = isCurrentWorkspaceEditor
|
||||||
|
if (!canIEditApp && (pathname.endsWith('configuration') || pathname.endsWith('workflow') || pathname.endsWith('logs'))) {
|
||||||
|
router.replace(`/app/${appId}/overview`)
|
||||||
|
return
|
||||||
|
}
|
||||||
if ((res.mode === 'workflow' || res.mode === 'advanced-chat') && (pathname).endsWith('configuration')) {
|
if ((res.mode === 'workflow' || res.mode === 'advanced-chat') && (pathname).endsWith('configuration')) {
|
||||||
router.replace(`/app/${appId}/workflow`)
|
router.replace(`/app/${appId}/workflow`)
|
||||||
}
|
}
|
||||||
|
@ -118,7 +123,7 @@ const AppDetailLayout: FC<IAppDetailLayoutProps> = (props) => {
|
||||||
else {
|
else {
|
||||||
setAppDetail({ ...res, enable_sso: false })
|
setAppDetail({ ...res, enable_sso: false })
|
||||||
setNavigation(getNavigations(appId, isCurrentWorkspaceEditor, res.mode))
|
setNavigation(getNavigations(appId, isCurrentWorkspaceEditor, res.mode))
|
||||||
if (systemFeatures.enable_web_sso_switch_component) {
|
if (systemFeatures.enable_web_sso_switch_component && canIEditApp) {
|
||||||
fetchAppSSO({ appId }).then((ssoRes) => {
|
fetchAppSSO({ appId }).then((ssoRes) => {
|
||||||
setAppDetail({ ...res, enable_sso: ssoRes.enabled })
|
setAppDetail({ ...res, enable_sso: ssoRes.enabled })
|
||||||
})
|
})
|
||||||
|
@ -128,7 +133,7 @@ const AppDetailLayout: FC<IAppDetailLayoutProps> = (props) => {
|
||||||
if (e.status === 404)
|
if (e.status === 404)
|
||||||
router.replace('/apps')
|
router.replace('/apps')
|
||||||
})
|
})
|
||||||
}, [appId, isCurrentWorkspaceEditor, systemFeatures])
|
}, [appId, isCurrentWorkspaceEditor, systemFeatures, getNavigations, pathname, router, setAppDetail])
|
||||||
|
|
||||||
useUnmount(() => {
|
useUnmount(() => {
|
||||||
setAppDetail()
|
setAppDetail()
|
||||||
|
|
|
@ -16,7 +16,7 @@ import type { AppIconType, AppSSO, Language } from '@/types/app'
|
||||||
import { useToastContext } from '@/app/components/base/toast'
|
import { useToastContext } from '@/app/components/base/toast'
|
||||||
import { languages } from '@/i18n/language'
|
import { languages } from '@/i18n/language'
|
||||||
import Tooltip from '@/app/components/base/tooltip'
|
import Tooltip from '@/app/components/base/tooltip'
|
||||||
import AppContext from '@/context/app-context'
|
import AppContext, { useAppContext } from '@/context/app-context'
|
||||||
import type { AppIconSelection } from '@/app/components/base/app-icon-picker'
|
import type { AppIconSelection } from '@/app/components/base/app-icon-picker'
|
||||||
import AppIconPicker from '@/app/components/base/app-icon-picker'
|
import AppIconPicker from '@/app/components/base/app-icon-picker'
|
||||||
|
|
||||||
|
@ -57,6 +57,7 @@ const SettingsModal: FC<ISettingsModalProps> = ({
|
||||||
onSave,
|
onSave,
|
||||||
}) => {
|
}) => {
|
||||||
const systemFeatures = useContextSelector(AppContext, state => state.systemFeatures)
|
const systemFeatures = useContextSelector(AppContext, state => state.systemFeatures)
|
||||||
|
const { isCurrentWorkspaceEditor } = useAppContext()
|
||||||
const { notify } = useToastContext()
|
const { notify } = useToastContext()
|
||||||
const [isShowMore, setIsShowMore] = useState(false)
|
const [isShowMore, setIsShowMore] = useState(false)
|
||||||
const {
|
const {
|
||||||
|
@ -265,7 +266,7 @@ const SettingsModal: FC<ISettingsModalProps> = ({
|
||||||
}
|
}
|
||||||
asChild={false}
|
asChild={false}
|
||||||
>
|
>
|
||||||
<Switch disabled={!systemFeatures.sso_enforced_for_web} defaultValue={systemFeatures.sso_enforced_for_web && inputInfo.enable_sso} onChange={v => setInputInfo({ ...inputInfo, enable_sso: v })}></Switch>
|
<Switch disabled={!systemFeatures.sso_enforced_for_web || !isCurrentWorkspaceEditor} defaultValue={systemFeatures.sso_enforced_for_web && inputInfo.enable_sso} onChange={v => setInputInfo({ ...inputInfo, enable_sso: v })}></Switch>
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
</div>
|
</div>
|
||||||
<p className='body-xs-regular text-gray-500'>{t(`${prefixSettings}.sso.description`)}</p>
|
<p className='body-xs-regular text-gray-500'>{t(`${prefixSettings}.sso.description`)}</p>
|
||||||
|
|
Loading…
Reference in New Issue
Block a user