未验证 提交 cca27a7b 编写于 作者: S Serge Rider 提交者: GitHub

Merge pull request #10802 from dbeaver/roleDDL#9372

#9372 DDL tab to Role added
......@@ -78,6 +78,7 @@
<objectType name="org.jkiss.dbeaver.ext.postgresql.model.PostgreSchema"/>
<objectType name="org.jkiss.dbeaver.ext.postgresql.model.PostgreDataType"/>
<objectType name="org.jkiss.dbeaver.ext.postgresql.model.PostgreTablespace"/>
<objectType name="org.jkiss.dbeaver.ext.postgresql.model.PostgreRole"/>
</editor>
<editor id="postgresql.source.ddl" class="org.jkiss.dbeaver.ext.postgresql.ui.editors.PostgreSourceViewEditor"
label="%db.editor.ddl.name" description="%db.editor.ddl.description" icon="#sql_text" position="additions_middle"
......
......@@ -85,6 +85,7 @@ meta.org.jkiss.dbeaver.ext.postgresql.model.PostgreRole.superUser.name=Super Use
meta.org.jkiss.dbeaver.ext.postgresql.model.PostgreRole.superUser.description=
meta.org.jkiss.dbeaver.ext.postgresql.model.PostgreRole.validUntil.name=Valid Until
meta.org.jkiss.dbeaver.ext.postgresql.model.PostgreRole.validUntil.description=
meta.org.jkiss.dbeaver.ext.postgresql.model.PostgreRole.objectDefinitionText.name=Source
meta.org.jkiss.dbeaver.ext.postgresql.model.PostgreRoleMember.owner.name=Owner
meta.org.jkiss.dbeaver.ext.postgresql.model.PostgreRoleMember.member.name=Role
meta.org.jkiss.dbeaver.ext.postgresql.model.PostgreRoleMember.grantor.name=Grantor
......
......@@ -263,6 +263,7 @@ meta.org.jkiss.dbeaver.ext.postgresql.model.PostgreRole.password.name = Password
meta.org.jkiss.dbeaver.ext.postgresql.model.PostgreRole.replication.name = Nachbildung
meta.org.jkiss.dbeaver.ext.postgresql.model.PostgreRole.superUser.name = Super User
meta.org.jkiss.dbeaver.ext.postgresql.model.PostgreRole.validUntil.name = G\u00FCltig bis
meta.org.jkiss.dbeaver.ext.postgresql.model.PostgreRole.objectDefinitionText.name = Quelle
meta.org.jkiss.dbeaver.ext.postgresql.model.PostgreRoleMember.adminOption.name = Administrationsoption
meta.org.jkiss.dbeaver.ext.postgresql.model.PostgreRoleMember.grantor.name = Stifter
meta.org.jkiss.dbeaver.ext.postgresql.model.PostgreRoleMember.member.name = Rolle
......
......@@ -351,6 +351,7 @@ meta.org.jkiss.dbeaver.ext.postgresql.model.PostgreRole.superUser.description =
meta.org.jkiss.dbeaver.ext.postgresql.model.PostgreRole.superUser.name = \u0421\u0443\u043F\u0435\u0440\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C
meta.org.jkiss.dbeaver.ext.postgresql.model.PostgreRole.validUntil.description = \u0421\u0440\u043E\u043A \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F \u043F\u0430\u0440\u043E\u043B\u044F (\u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442\u0441\u044F \u0442\u043E\u043B\u044C\u043A\u043E \u043F\u0440\u0438 \u0430\u0443\u0442\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0446\u0438\u0438 \u043F\u043E \u043F\u0430\u0440\u043E\u043B\u044E); NULL, \u0435\u0441\u043B\u0438 \u0441\u0440\u043E\u043A \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F \u043D\u0435 \u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D
meta.org.jkiss.dbeaver.ext.postgresql.model.PostgreRole.validUntil.name = \u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043B\u0435\u043D \u0434\u043E
meta.org.jkiss.dbeaver.ext.postgresql.model.PostgreRole.objectDefinitionText.name = \u041E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438\u0435
meta.org.jkiss.dbeaver.ext.postgresql.model.PostgreRoleMember.adminOption.name = \u0410\u0434\u043C\u0438\u043D\u0438\u0441\u0442\u0440\u0430\u0442\u0438\u0432\u043D\u044B\u0435 \u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E\u0441\u0442\u0438
meta.org.jkiss.dbeaver.ext.postgresql.model.PostgreRoleMember.grantor.name = \u041F\u0440\u0430\u0432\u0430 \u0432\u044B\u0434\u0430\u043B
meta.org.jkiss.dbeaver.ext.postgresql.model.PostgreRoleMember.member.name = \u0420\u043E\u043B\u044C
......
......@@ -17,7 +17,6 @@
package org.jkiss.dbeaver.ext.postgresql.edit;
import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.ext.postgresql.PostgreConstants;
import org.jkiss.dbeaver.ext.postgresql.PostgreUtils;
import org.jkiss.dbeaver.ext.postgresql.model.*;
import org.jkiss.dbeaver.model.DBConstants;
......
......@@ -35,6 +35,7 @@ import org.jkiss.dbeaver.model.meta.IPropertyValueValidator;
import org.jkiss.dbeaver.model.meta.Property;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
import org.jkiss.dbeaver.model.struct.DBSObject;
import org.jkiss.utils.StandardConstants;
import java.sql.ResultSet;
import java.sql.SQLException;
......@@ -43,7 +44,7 @@ import java.util.*;
/**
* PostgreRole
*/
public class PostgreRole implements PostgreObject, PostgrePrivilegeOwner, DBPPersistedObject, DBPSaveableObject, DBPRefreshableObject, DBPNamedObject2, DBARole, DBAUser {
public class PostgreRole implements PostgreObject, PostgrePrivilegeOwner, DBPPersistedObject, DBPSaveableObject, DBPRefreshableObject, DBPNamedObject2, DBARole, DBAUser, PostgreScriptObject {
public static final String CAT_SETTINGS = "Settings";
public static final String CAT_FLAGS = "Flags";
......@@ -67,6 +68,8 @@ public class PostgreRole implements PostgreObject, PostgrePrivilegeOwner, DBPPer
private MembersCache membersCache = new MembersCache(true);
private MembersCache belongsCache = new MembersCache(false);
private final String lineBreak = System.getProperty(StandardConstants.ENV_LINE_SEPARATOR);
static class MembersCache extends JDBCObjectCache<PostgreRole, PostgreRoleMember> {
private final boolean members;
MembersCache(boolean members) {
......@@ -292,6 +295,45 @@ public class PostgreRole implements PostgreObject, PostgrePrivilegeOwner, DBPPer
return this;
}
@Override
public void setObjectDefinitionText(String sourceText) throws DBException {
}
@Override
public String getObjectDefinitionText(DBRProgressMonitor monitor, Map<String, Object> options) throws DBException {
final String lineBreak = System.getProperty(StandardConstants.ENV_LINE_SEPARATOR);
StringBuilder ddl = new StringBuilder();
ddl.append("-- DROP ROLE ").append(getName()).append(";\n\n"); //$NON-NLS-1$ //$NON-NLS-2$
ddl.append("CREATE ROLE ").append(getName()).append(" WITH ");
addOptionToDDL(ddl, isSuperUser(), "SUPERUSER");
addOptionToDDL(ddl, isCreateDatabase(), "CREATEDB");
addOptionToDDL(ddl, isCreateRole(), "CREATEROLE");
addOptionToDDL(ddl, isInherit(), "INHERIT");
addOptionToDDL(ddl, isCanLogin(), "LOGIN");
addOptionToDDL(ddl, isReplication(), "REPLICATION");
addOptionToDDL(ddl, isBypassRls(), "BYPASSRLS");
if (getConnLimit() > 0) {
ddl.append(lineBreak);
ddl.append("\tCONNECTION LIMIT ").append(getClass());
}
if (getValidUntil() != null) {
ddl.append(lineBreak);
ddl.append("\tVALID UNTIL '").append(getValidUntil().toString()).append("'");
}
ddl.append(";");
return ddl.toString();
}
private void addOptionToDDL(StringBuilder ddl, boolean isOptionOn, String option) {
ddl.append(lineBreak).append("\t");
if (isOptionOn) {
ddl.append(option);
} else {
ddl.append("NO").append(option);
}
}
@Override
public List<PostgrePrivilege> getPrivileges(DBRProgressMonitor monitor, boolean includeNestedObjects) {
try (JDBCSession session = DBUtils.openMetaSession(monitor, this, "Read role privileges")) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册