📄 cmsuserdriver.java
字号:
/**
* @see org.opencms.db.I_CmsUserDriver#publishAccessControlEntries(org.opencms.db.CmsDbContext, org.opencms.file.CmsProject, org.opencms.file.CmsProject, org.opencms.util.CmsUUID, org.opencms.util.CmsUUID)
*/
public void publishAccessControlEntries(
CmsDbContext dbc,
CmsProject offlineProject,
CmsProject onlineProject,
CmsUUID offlineId,
CmsUUID onlineId) throws CmsDataAccessException {
PreparedStatement stmt = null;
Connection conn = null;
ResultSet res = null;
// at first, we remove all access contries of this resource in the online project
removeAccessControlEntries(dbc, onlineProject, onlineId);
// then, we copy the access control entries from the offline project into the online project
try {
conn = m_sqlManager.getConnection(dbc);
stmt = m_sqlManager.getPreparedStatement(conn, offlineProject, "C_ACCESS_READ_ENTRIES");
stmt.setString(1, offlineId.toString());
res = stmt.executeQuery();
while (res.next()) {
CmsAccessControlEntry ace = internalCreateAce(res, onlineId);
if ((ace.getFlags() & CmsAccessControlEntry.ACCESS_FLAGS_DELETED) == 0) {
writeAccessControlEntry(dbc, onlineProject, ace);
}
}
} catch (SQLException e) {
throw new CmsDbSqlException(Messages.get().container(
Messages.ERR_GENERIC_SQL_1,
CmsDbSqlException.getErrorQuery(stmt)), e);
} finally {
m_sqlManager.closeAll(dbc, conn, stmt, res);
}
}
/**
* @see org.opencms.db.I_CmsUserDriver#readAccessControlEntries(org.opencms.db.CmsDbContext, org.opencms.file.CmsProject, org.opencms.util.CmsUUID, boolean)
*/
public List readAccessControlEntries(CmsDbContext dbc, CmsProject project, CmsUUID resource, boolean inheritedOnly)
throws CmsDataAccessException {
List aceList = new ArrayList();
PreparedStatement stmt = null;
Connection conn = null;
ResultSet res = null;
try {
conn = m_sqlManager.getConnection(dbc);
stmt = m_sqlManager.getPreparedStatement(conn, project, "C_ACCESS_READ_ENTRIES");
String resId = resource.toString();
stmt.setString(1, resId);
res = stmt.executeQuery();
// create new CmsAccessControlEntry and add to list
while (res.next()) {
CmsAccessControlEntry ace = internalCreateAce(res);
if ((ace.getFlags() & CmsAccessControlEntry.ACCESS_FLAGS_DELETED) > 0) {
continue;
}
if (inheritedOnly && ((ace.getFlags() & CmsAccessControlEntry.ACCESS_FLAGS_INHERIT) == 0)) {
continue;
}
if (inheritedOnly && ((ace.getFlags() & CmsAccessControlEntry.ACCESS_FLAGS_INHERIT) > 0)) {
ace.setFlags(CmsAccessControlEntry.ACCESS_FLAGS_INHERITED);
}
aceList.add(ace);
}
return aceList;
} catch (SQLException e) {
throw new CmsDbSqlException(Messages.get().container(
Messages.ERR_GENERIC_SQL_1,
CmsDbSqlException.getErrorQuery(stmt)), e);
} finally {
m_sqlManager.closeAll(dbc, conn, stmt, res);
}
}
/**
* @see org.opencms.db.I_CmsUserDriver#readAccessControlEntry(org.opencms.db.CmsDbContext, org.opencms.file.CmsProject, org.opencms.util.CmsUUID, org.opencms.util.CmsUUID)
*/
public CmsAccessControlEntry readAccessControlEntry(
CmsDbContext dbc,
CmsProject project,
CmsUUID resource,
CmsUUID principal) throws CmsDataAccessException {
CmsAccessControlEntry ace = null;
PreparedStatement stmt = null;
Connection conn = null;
ResultSet res = null;
try {
conn = m_sqlManager.getConnection(dbc);
stmt = m_sqlManager.getPreparedStatement(conn, project, "C_ACCESS_READ_ENTRY");
stmt.setString(1, resource.toString());
stmt.setString(2, principal.toString());
res = stmt.executeQuery();
// create new CmsAccessControlEntry
if (res.next()) {
ace = internalCreateAce(res);
} else {
res.close();
res = null;
throw new CmsDbEntryNotFoundException(Messages.get().container(
Messages.ERR_NO_ACE_FOUND_2,
resource,
principal));
}
return ace;
} catch (SQLException e) {
throw new CmsDbSqlException(Messages.get().container(
Messages.ERR_GENERIC_SQL_1,
CmsDbSqlException.getErrorQuery(stmt)), e);
} finally {
m_sqlManager.closeAll(dbc, conn, stmt, res);
}
}
/**
* @see org.opencms.db.I_CmsUserDriver#readChildGroups(org.opencms.db.CmsDbContext, java.lang.String)
*/
public List readChildGroups(CmsDbContext dbc, String groupname) throws CmsDataAccessException {
List childs = new ArrayList();
CmsGroup group;
CmsGroup parent;
ResultSet res = null;
PreparedStatement stmt = null;
Connection conn = null;
try {
// get parent group
parent = readGroup(dbc, groupname);
// parent group exists, so get all childs
if (parent != null) {
// create statement
conn = m_sqlManager.getConnection(dbc);
stmt = m_sqlManager.getPreparedStatement(conn, "C_GROUPS_GETCHILD");
stmt.setString(1, parent.getId().toString());
res = stmt.executeQuery();
// create new Cms group objects
while (res.next()) {
group = new CmsGroup(
new CmsUUID(res.getString(m_sqlManager.readQuery("C_GROUPS_GROUP_ID"))),
new CmsUUID(res.getString(m_sqlManager.readQuery("C_GROUPS_PARENT_GROUP_ID"))),
res.getString(m_sqlManager.readQuery("C_GROUPS_GROUP_NAME")),
res.getString(m_sqlManager.readQuery("C_GROUPS_GROUP_DESCRIPTION")),
res.getInt(m_sqlManager.readQuery("C_GROUPS_GROUP_FLAGS")));
childs.add(group);
}
}
} catch (SQLException e) {
throw new CmsDbSqlException(Messages.get().container(
Messages.ERR_GENERIC_SQL_1,
CmsDbSqlException.getErrorQuery(stmt)), e);
} finally {
// close all db-resources
m_sqlManager.closeAll(dbc, conn, stmt, res);
}
return childs;
}
/**
* @see org.opencms.db.I_CmsUserDriver#readGroup(org.opencms.db.CmsDbContext, org.opencms.util.CmsUUID)
*/
public CmsGroup readGroup(CmsDbContext dbc, CmsUUID groupId) throws CmsDataAccessException {
CmsGroup group = null;
ResultSet res = null;
PreparedStatement stmt = null;
Connection conn = null;
try {
conn = m_sqlManager.getConnection(dbc);
stmt = m_sqlManager.getPreparedStatement(conn, "C_GROUPS_READGROUP2");
// read the group from the database
stmt.setString(1, groupId.toString());
res = stmt.executeQuery();
// create new Cms group object
if (res.next()) {
group = internalCreateGroup(res);
} else {
CmsMessageContainer message = Messages.get().container(Messages.ERR_NO_GROUP_WITH_ID_1, groupId);
if (LOG.isDebugEnabled()) {
LOG.debug(message.key());
}
throw new CmsDbEntryNotFoundException(message);
}
} catch (SQLException e) {
throw new CmsDbSqlException(Messages.get().container(
Messages.ERR_GENERIC_SQL_1,
CmsDbSqlException.getErrorQuery(stmt)), e);
} finally {
m_sqlManager.closeAll(dbc, conn, stmt, res);
}
return group;
}
/**
* @see org.opencms.db.I_CmsUserDriver#readGroup(org.opencms.db.CmsDbContext, java.lang.String)
*/
public CmsGroup readGroup(CmsDbContext dbc, String groupName) throws CmsDataAccessException {
CmsGroup group = null;
ResultSet res = null;
PreparedStatement stmt = null;
Connection conn = null;
try {
conn = m_sqlManager.getConnection(dbc);
stmt = m_sqlManager.getPreparedStatement(conn, "C_GROUPS_READGROUP");
// read the group from the database
stmt.setString(1, groupName);
res = stmt.executeQuery();
// create new Cms group object
if (res.next()) {
group = internalCreateGroup(res);
} else {
CmsMessageContainer message = org.opencms.db.Messages.get().container(
org.opencms.db.Messages.ERR_UNKNOWN_GROUP_1,
groupName);
if (LOG.isWarnEnabled()) {
LOG.warn(message.key());
}
throw new CmsDbEntryNotFoundException(message);
}
} catch (SQLException e) {
throw new CmsDbSqlException(Messages.get().container(
Messages.ERR_GENERIC_SQL_1,
CmsDbSqlException.getErrorQuery(stmt)), e);
} finally {
m_sqlManager.closeAll(dbc, conn, stmt, res);
}
return group;
}
/**
* @see org.opencms.db.I_CmsUserDriver#readGroups(org.opencms.db.CmsDbContext)
*/
public List readGroups(CmsDbContext dbc) throws CmsDataAccessException {
List groups = new ArrayList();
//CmsGroup group = null;
ResultSet res = null;
PreparedStatement stmt = null;
Connection conn = null;
try {
// create statement
conn = m_sqlManager.getConnection(dbc);
stmt = m_sqlManager.getPreparedStatement(conn, "C_GROUPS_GETGROUPS");
res = stmt.executeQuery();
// create new Cms group objects
while (res.next()) {
groups.add(internalCreateGroup(res));
}
} catch (SQLException e) {
throw new CmsDbSqlException(Messages.get().container(
Messages.ERR_GENERIC_SQL_1,
CmsDbSqlException.getErrorQuery(stmt)), e);
} finally {
m_sqlManager.closeAll(dbc, conn, stmt, res);
}
return groups;
}
/**
* @see org.opencms.db.I_CmsUserDriver#readGroupsOfUser(org.opencms.db.CmsDbContext, org.opencms.util.CmsUUID, java.lang.String)
*/
public List readGroupsOfUser(CmsDbContext dbc, CmsUUID userId, String paramStr) throws CmsDataAccessException {
//CmsGroup group;
List groups = new ArrayList();
PreparedStatement stmt = null;
ResultSet res = null;
Connection conn = null;
try {
conn = m_sqlManager.getConnection(dbc);
stmt = m_sqlManager.getPreparedStatement(conn, "C_GROUPS_GETGROUPSOFUSER");
// get all all groups of the user
stmt.setString(1, userId.toString());
res = stmt.executeQuery();
while (res.next()) {
groups.add(internalCreateGroup(res));
}
} catch (SQLException e) {
throw new CmsDbSqlException(Messages.get().container(
Messages.ERR_GENERIC_SQL_1,
CmsDbSqlException.getErrorQuery(stmt)), e);
} finally {
m_sqlManager.closeAll(dbc, conn, stmt, res);
}
return groups;
}
/**
* @see org.opencms.db.I_CmsUserDriver#readUser(org.opencms.db.CmsDbContext, org.opencms.util.CmsUUID)
*/
public CmsUser readUser(CmsDbContext dbc, CmsUUID id) throws CmsDataAccessException {
PreparedStatement stmt = null;
ResultSet res = null;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -