Skip to content

Commit 010b911

Browse files
author
zaharchenko
committed
Add predefined roles #30
1 parent 9ebc50c commit 010b911

3 files changed

Lines changed: 124 additions & 0 deletions

File tree

README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
- [From the Marketplace](#from-the-marketplace)
1111
- [By Coordinates](#by-coordinates)
1212
- [Enabling and Disabling Components](#enabling-and-disabling-components)
13+
- [Predefined roles](#predefined-roles)
1314
- [Add-on Components](#add-on-components)
1415
- [Runtime Diagnose Components](#runtime-diagnose-components)
1516
- [SQL Script Generator](#sql-script-generator)
@@ -105,6 +106,11 @@ admintools.configLoader.enabled = false
105106
admintools.consoleScriptLoader.enabled = false
106107
```
107108

109+
# Predefined roles
110+
111+
- **Admin tools full access** - full access to admin tools add-on features
112+
- **Admin tools diagnose** - ability to upload diagnose info in admin tools diagnose wizard
113+
108114
# Add-on Components
109115

110116
## Runtime Diagnose Components
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
/*
2+
* Copyright (c) 2008-2020 Haulmont.
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
17+
package com.haulmont.addon.admintools.role;
18+
19+
import com.haulmont.addon.admintools.global.ssh.SshCredentials;
20+
import com.haulmont.cuba.core.entity.FileDescriptor;
21+
import com.haulmont.cuba.security.app.role.AnnotatedRoleDefinition;
22+
import com.haulmont.cuba.security.app.role.annotation.EntityAccess;
23+
import com.haulmont.cuba.security.app.role.annotation.EntityAttributeAccess;
24+
import com.haulmont.cuba.security.app.role.annotation.Role;
25+
import com.haulmont.cuba.security.app.role.annotation.ScreenAccess;
26+
import com.haulmont.cuba.security.entity.EntityOp;
27+
import com.haulmont.cuba.security.role.EntityAttributePermissionsContainer;
28+
import com.haulmont.cuba.security.role.EntityPermissionsContainer;
29+
import com.haulmont.cuba.security.role.ScreenPermissionsContainer;
30+
import de.diedavids.cuba.runtimediagnose.entity.DiagnoseExecutionLog;
31+
import de.diedavids.cuba.runtimediagnose.wizard.DiagnoseWizardResult;
32+
33+
@Role(name = "Admin tools full access")
34+
public class AdminToolsAdminRole extends AnnotatedRoleDefinition {
35+
36+
@EntityAccess(entityClass = DiagnoseWizardResult.class, operations = {EntityOp.CREATE, EntityOp.UPDATE, EntityOp.READ, EntityOp.DELETE})
37+
@EntityAccess(entityClass = DiagnoseExecutionLog.class,
38+
operations = {EntityOp.CREATE, EntityOp.READ, EntityOp.UPDATE, EntityOp.DELETE})
39+
@EntityAccess(entityClass = FileDescriptor.class, operations = {EntityOp.CREATE, EntityOp.READ, EntityOp.UPDATE})
40+
@EntityAccess(entityClass = SshCredentials.class,
41+
operations = {EntityOp.CREATE, EntityOp.READ, EntityOp.UPDATE, EntityOp.DELETE})
42+
@Override
43+
public EntityPermissionsContainer entityPermissions() {
44+
return super.entityPermissions();
45+
}
46+
47+
@EntityAttributeAccess(entityClass = DiagnoseWizardResult.class, modify = "*")
48+
@EntityAttributeAccess(entityClass = DiagnoseExecutionLog.class, modify = "*")
49+
@EntityAttributeAccess(entityClass = SshCredentials.class, modify = "*")
50+
@EntityAttributeAccess(entityClass = FileDescriptor.class, modify = "*")
51+
@Override
52+
public EntityAttributePermissionsContainer entityAttributePermissions() {
53+
return super.entityAttributePermissions();
54+
}
55+
56+
@ScreenAccess(screenIds = {"administration", "consoleMenu", "adminTools", "groovyConsole", "sqlConsole", "jpqlConsole", "diagnoseWizard", "ddcrd$DiagnoseExecutionLog.browse", "scriptGenerator", "shellExecutor", "sshTerminal", "configLoader", "consoleScriptLoader", "sqlCopyDialog", "shell-executor", "ssh-terminal", "console-script-loader", "console-frame", "admintools$configLoader", "admintools$scriptGeneratorsDialog", "admintools$scriptGeneratorsResult"})
57+
@Override
58+
public ScreenPermissionsContainer screenPermissions() {
59+
return super.screenPermissions();
60+
}
61+
}
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
/*
2+
* Copyright (c) 2008-2020 Haulmont.
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
17+
package com.haulmont.addon.admintools.role;
18+
19+
import com.haulmont.cuba.core.entity.FileDescriptor;
20+
import com.haulmont.cuba.security.app.role.AnnotatedRoleDefinition;
21+
import com.haulmont.cuba.security.app.role.annotation.EntityAccess;
22+
import com.haulmont.cuba.security.app.role.annotation.EntityAttributeAccess;
23+
import com.haulmont.cuba.security.app.role.annotation.Role;
24+
import com.haulmont.cuba.security.app.role.annotation.ScreenAccess;
25+
import com.haulmont.cuba.security.entity.EntityOp;
26+
import com.haulmont.cuba.security.role.EntityAttributePermissionsContainer;
27+
import com.haulmont.cuba.security.role.EntityPermissionsContainer;
28+
import com.haulmont.cuba.security.role.ScreenPermissionsContainer;
29+
import de.diedavids.cuba.runtimediagnose.entity.DiagnoseExecutionLog;
30+
import de.diedavids.cuba.runtimediagnose.wizard.DiagnoseWizardResult;
31+
32+
@Role(name = "Admin tools diagnose")
33+
public class DiagnoseWizardRole extends AnnotatedRoleDefinition {
34+
35+
@EntityAccess(entityClass = DiagnoseExecutionLog.class, operations = EntityOp.CREATE)
36+
@EntityAccess(entityClass = DiagnoseWizardResult.class, operations = {EntityOp.CREATE, EntityOp.READ, EntityOp.UPDATE})
37+
@EntityAccess(entityClass = FileDescriptor.class, operations = {EntityOp.CREATE, EntityOp.READ, EntityOp.UPDATE})
38+
@Override
39+
public EntityPermissionsContainer entityPermissions() {
40+
return super.entityPermissions();
41+
}
42+
43+
@EntityAttributeAccess(entityClass = DiagnoseWizardResult.class, view = "*")
44+
@EntityAttributeAccess(entityClass = FileDescriptor.class, modify = "*")
45+
@Override
46+
public EntityAttributePermissionsContainer entityAttributePermissions() {
47+
return super.entityAttributePermissions();
48+
}
49+
50+
51+
@ScreenAccess(screenIds = {"administration", "consoleMenu", "diagnoseWizard"})
52+
@Override
53+
public ScreenPermissionsContainer screenPermissions() {
54+
return super.screenPermissions();
55+
}
56+
57+
}

0 commit comments

Comments
 (0)