@@ -6,14 +6,65 @@ import com.intellij.ide.impl.TrustedPathsSettings
6
6
import com.intellij.ide.impl.TrustedProjectsStatistics
7
7
import com.intellij.ide.lightEdit.LightEdit
8
8
import com.intellij.ide.trustedProjects.TrustedProjectsLocator.LocatedProject
9
- import com.intellij.openapi.application.ApplicationManager
9
+ import com.intellij.openapi.project.Project
10
10
import com.intellij.util.ThreeState
11
+ import com.intellij.util.application
11
12
import org.jetbrains.annotations.ApiStatus
13
+ import java.nio.file.Path
12
14
13
- @ApiStatus.Internal
14
15
object TrustedProjects {
15
- fun isProjectTrusted (locatedProject : LocatedProject ): Boolean = getProjectTrustedState(locatedProject) == ThreeState .YES
16
16
17
+ @JvmStatic
18
+ fun isProjectTrusted (project : Project ): Boolean {
19
+ return isProjectTrusted(TrustedProjectsLocator .locateProject(project))
20
+ }
21
+
22
+ @JvmStatic
23
+ fun setProjectTrusted (project : Project , isTrusted : Boolean ) {
24
+ setProjectTrusted(TrustedProjectsLocator .locateProject(project), isTrusted)
25
+ }
26
+
27
+ @ApiStatus.Internal
28
+ fun getProjectTrustedState (project : Project ): ThreeState {
29
+ return getProjectTrustedState(TrustedProjectsLocator .locateProject(project))
30
+ }
31
+
32
+ @JvmStatic
33
+ fun isProjectTrusted (path : Path ): Boolean {
34
+ return isProjectTrusted(path, project = null )
35
+ }
36
+
37
+ @JvmStatic
38
+ fun setProjectTrusted (path : Path , isTrusted : Boolean ) {
39
+ setProjectTrusted(path, project = null , isTrusted)
40
+ }
41
+
42
+ @ApiStatus.Internal
43
+ fun getProjectTrustedState (path : Path ): ThreeState {
44
+ return getProjectTrustedState(path, project = null )
45
+ }
46
+
47
+ @JvmStatic
48
+ fun isProjectTrusted (path : Path , project : Project ? ): Boolean {
49
+ return isProjectTrusted(TrustedProjectsLocator .locateProject(path, project))
50
+ }
51
+
52
+ @JvmStatic
53
+ fun setProjectTrusted (path : Path , project : Project ? , isTrusted : Boolean ) {
54
+ setProjectTrusted(TrustedProjectsLocator .locateProject(path, project), isTrusted)
55
+ }
56
+
57
+ @ApiStatus.Internal
58
+ fun getProjectTrustedState (path : Path , project : Project ? ): ThreeState {
59
+ return getProjectTrustedState(TrustedProjectsLocator .locateProject(path, project))
60
+ }
61
+
62
+ @ApiStatus.Internal
63
+ fun isProjectTrusted (locatedProject : LocatedProject ): Boolean {
64
+ return getProjectTrustedState(locatedProject) == ThreeState .YES
65
+ }
66
+
67
+ @ApiStatus.Internal
17
68
fun getProjectTrustedState (locatedProject : LocatedProject ): ThreeState {
18
69
val explicitTrustedState = TrustedPaths .getInstance().getProjectTrustedState(locatedProject)
19
70
return when {
@@ -28,13 +79,14 @@ object TrustedProjects {
28
79
}
29
80
}
30
81
82
+ @ApiStatus.Internal
31
83
fun setProjectTrusted (locatedProject : LocatedProject , isTrusted : Boolean ) {
32
84
val trustedPaths = TrustedPaths .getInstance()
33
85
val oldState = trustedPaths.getProjectTrustedState(locatedProject)
34
86
trustedPaths.setProjectTrustedState(locatedProject, isTrusted)
35
87
val newState = trustedPaths.getProjectTrustedState(locatedProject)
36
88
if (oldState != newState) {
37
- val syncPublisher = ApplicationManager .getApplication() .messageBus.syncPublisher(TrustedProjectsListener .TOPIC )
89
+ val syncPublisher = application .messageBus.syncPublisher(TrustedProjectsListener .TOPIC )
38
90
when (isTrusted) {
39
91
true -> syncPublisher.onProjectTrusted(locatedProject)
40
92
else -> syncPublisher.onProjectUntrusted(locatedProject)
@@ -43,12 +95,18 @@ object TrustedProjects {
43
95
}
44
96
45
97
/* *
46
- * Checks that IDEA is loaded with safe environment. In this mode, trusted checks aren't needed at all.
98
+ * Checks that IDEA is loaded with a safe environment.
99
+ * In this mode, all projects are trusted automatically.
47
100
*/
101
+ @ApiStatus.Internal
48
102
fun isTrustedCheckDisabled (): Boolean {
49
- val app = ApplicationManager .getApplication()
50
- return app.isUnitTestMode || app.isHeadlessEnvironment || java.lang.Boolean .getBoolean(" idea.trust.all.projects" )
103
+ return java.lang.Boolean .getBoolean(" idea.trust.all.projects" ) ||
104
+ application.isUnitTestMode ||
105
+ application.isHeadlessEnvironment
51
106
}
52
107
53
- private fun isTrustedCheckDisabledForProduct (): Boolean = isTrustedCheckDisabled() || java.lang.Boolean .getBoolean(" idea.trust.disabled" )
108
+ private fun isTrustedCheckDisabledForProduct (): Boolean {
109
+ return java.lang.Boolean .getBoolean(" idea.trust.disabled" ) ||
110
+ isTrustedCheckDisabled()
111
+ }
54
112
}
0 commit comments