Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
539 changes: 516 additions & 23 deletions checkstyle.xml

Large diffs are not rendered by default.

Binary file added lib/build/db-1.0.9.jar
Binary file not shown.
Binary file not shown.
Binary file added lib/tests/h2-2.3.232.jar
Binary file not shown.
79 changes: 51 additions & 28 deletions pom.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.github.rajkowski</groupId>
<artifactId>cms-platform</artifactId>
Expand Down Expand Up @@ -123,6 +124,11 @@
<artifactId>commons-validator</artifactId>
<version>1.10.1</version>
</dependency>
<dependency>
<groupId>com.github.rajkowski</groupId>
<artifactId>db</artifactId>
<version>1.0.9</version>
</dependency>
<dependency>
<groupId>com.github.rajkowski</groupId>
<artifactId>easy-flows-playbooks</artifactId>
Expand Down Expand Up @@ -362,6 +368,12 @@
<version>9.0.120</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>2.3.232</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
Expand Down Expand Up @@ -394,32 +406,43 @@
</dependency>
</dependencies>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>3.6.0</version>
<configuration>
<configLocation>checkstyle.xml</configLocation>
<encoding>UTF-8</encoding>
<consoleOutput>true</consoleOutput>
<failsOnError>true</failsOnError>
<linkXRef>false</linkXRef>
</configuration>
<executions>
<execution>
<id>validate</id>
<phase>validate</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<!--
<plugin>
<groupId>com.spotify.fmt</groupId>
<artifactId>fmt-maven-plugin</artifactId>
<version>2.29</version>
<executions>
<execution>
<goals>
<goal>format</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>com.google.googlejavaformat</groupId>
<artifactId>google-java-format</artifactId>
<version>1.36.1</version>
</dependency>
</dependencies>
</plugin>
-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>3.6.0</version>
<configuration>
<configLocation>checkstyle.xml</configLocation>
</configuration>
<dependencies>
<dependency>
<groupId>com.puppycrawl.tools</groupId>
<artifactId>checkstyle</artifactId>
<version>14.1.0</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
Expand Down Expand Up @@ -476,7 +499,7 @@
<configuration>
<target>
<ant antfile="${basedir}/build.xml">
<target name="mvn-dependencies"/>
<target name="mvn-dependencies" />
</ant>
</target>
</configuration>
Expand All @@ -490,7 +513,7 @@
<configuration>
<target>
<ant antfile="${basedir}/build.xml">
<target name="package"/>
<target name="package" />
</ant>
</target>
</configuration>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
/*
* Copyright 2026 Matt Rajkowski (https://github.com/rajkowski)
* Copyright 2022 SimIS Inc. (https://www.simiscms.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
Expand All @@ -16,7 +17,7 @@

package com.simisinc.platform.application.cms;

import com.simisinc.platform.infrastructure.database.DB;
import com.github.rajkowski.database.DB;

/**
* Determines user access to folders
Expand All @@ -27,34 +28,38 @@
public class CheckFolderPermissionCommand {

public static boolean userHasAddPermission(long folderId, long userId) {
// SELECT COUNT(*) FROM user_groups WHERE user_id = 2 AND group_id IN (SELECT group_id FROM folder_groups WHERE folder_id = 9 AND add_permission = true);
long count = DB.selectCountFrom("user_groups",
DB.WHERE("user_id = ?", userId)
.AND("group_id IN (SELECT group_id FROM folder_groups WHERE folder_id = ? AND add_permission = true)", folderId));
return (count > 0);
long count = DB.SELECT("COUNT(*)")
.FROM("user_groups")
.WHERE("user_id = ?", userId)
.AND("group_id IN (SELECT group_id FROM folder_groups WHERE folder_id = ? AND add_permission = ?)", folderId, true)
.returnCount();
return count > 0;
}

public static boolean userHasViewPermission(long folderId, long userId) {
// SELECT COUNT(*) FROM user_groups WHERE user_id = 2 AND group_id IN (SELECT group_id FROM folder_groups WHERE folder_id = 9 AND view_permission = true);
long count = DB.selectCountFrom("user_groups",
DB.WHERE("user_id = ?", userId)
.AND("group_id IN (SELECT group_id FROM folder_groups WHERE folder_id = ? AND view_permission = true)", folderId));
return (count > 0);
long count = DB.SELECT("COUNT(*)")
.FROM("user_groups")
.WHERE("user_id = ?", userId)
.AND("group_id IN (SELECT group_id FROM folder_groups WHERE folder_id = ? AND view_permission = ?)", folderId, true)
.returnCount();
return count > 0;
}

public static boolean userHasEditPermission(long folderId, long userId) {
// SELECT COUNT(*) FROM user_groups WHERE user_id = 2 AND group_id IN (SELECT group_id FROM folder_groups WHERE folder_id = 9 AND edit_permission = true);
long count = DB.selectCountFrom("user_groups",
DB.WHERE("user_id = ?", userId)
.AND("group_id IN (SELECT group_id FROM folder_groups WHERE folder_id = ? AND edit_permission = true)", folderId));
return (count > 0);
long count = DB.SELECT("COUNT(*)")
.FROM("user_groups")
.WHERE("user_id = ?", userId)
.AND("group_id IN (SELECT group_id FROM folder_groups WHERE folder_id = ? AND edit_permission = ?)", folderId, true)
.returnCount();
return count > 0;
}

public static boolean userHasDeletePermission(long folderId, long userId) {
// SELECT COUNT(*) FROM user_groups WHERE user_id = 2 AND group_id IN (SELECT group_id FROM folder_groups WHERE folder_id = 9 AND delete_permission = true);
long count = DB.selectCountFrom("user_groups",
DB.WHERE("user_id = ?", userId)
.AND("group_id IN (SELECT group_id FROM folder_groups WHERE folder_id = ? AND delete_permission = true)", folderId));
return (count > 0);
long count = DB.SELECT("COUNT(*)")
.FROM("user_groups")
.WHERE("user_id = ?", userId)
.AND("group_id IN (SELECT group_id FROM folder_groups WHERE folder_id = ? AND delete_permission = ?)", folderId, true)
.returnCount();
return count > 0;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
package com.simisinc.platform.application.cms;

import com.simisinc.platform.domain.model.cms.Content;
import com.simisinc.platform.infrastructure.database.DataConstraints;
import com.github.rajkowski.database.DataConstraints;
import com.simisinc.platform.infrastructure.persistence.cms.ContentRepository;
import com.simisinc.platform.infrastructure.persistence.cms.ContentSpecification;
import org.apache.commons.lang3.StringUtils;
Expand Down Expand Up @@ -85,13 +85,11 @@ public static List<Content> loadContentList(String searchTerm, int offset, int l

// Query repository
List<Content> contentList = ContentRepository.findAll(specification, constraints);

if (contentList == null) {
if (contentList == null || contentList.isEmpty()) {
LOG.debug("No content found for search term: " + searchTerm);
} else {
LOG.debug("Found " + contentList.size() + " content blocks");
}

return contentList;
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
/*
* Copyright 2026 Matt Rajkowski (https://github.com/rajkowski)
* Copyright 2022 SimIS Inc. (https://www.simiscms.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
Expand All @@ -18,7 +19,7 @@

import com.simisinc.platform.domain.model.datasets.Dataset;
import com.simisinc.platform.domain.model.items.Item;
import com.simisinc.platform.infrastructure.database.DataConstraints;
import com.github.rajkowski.database.DataConstraints;
import com.simisinc.platform.infrastructure.persistence.items.ItemRepository;
import com.simisinc.platform.infrastructure.persistence.items.ItemSpecification;
import org.apache.commons.logging.Log;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
/*
* Copyright 2026 Matt Rajkowski (https://github.com/rajkowski)
* Copyright 2022 SimIS Inc. (https://www.simiscms.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
Expand All @@ -17,7 +18,7 @@
package com.simisinc.platform.application.ecommerce;

import com.simisinc.platform.domain.model.ecommerce.Product;
import com.simisinc.platform.infrastructure.database.DataConstraints;
import com.github.rajkowski.database.DataConstraints;
import com.simisinc.platform.infrastructure.persistence.ecommerce.ProductRepository;
import com.simisinc.platform.infrastructure.persistence.ecommerce.ProductSpecification;
import org.apache.commons.logging.Log;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
/*
* Copyright 2026 Matt Rajkowski (https://github.com/rajkowski)
* Copyright 2022 SimIS Inc. (https://www.simiscms.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
Expand Down Expand Up @@ -30,6 +31,7 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import com.github.rajkowski.database.DB;
import com.sanctionco.jmail.JMail;
import com.simisinc.platform.application.DataException;
import com.simisinc.platform.application.admin.LoadSitePropertyCommand;
Expand All @@ -41,7 +43,6 @@
import com.simisinc.platform.domain.model.ecommerce.PricingRule;
import com.simisinc.platform.domain.model.ecommerce.ProductSku;
import com.simisinc.platform.domain.model.ecommerce.ShippingRate;
import com.simisinc.platform.infrastructure.database.DB;
import com.simisinc.platform.infrastructure.persistence.SitePropertyRepository;
import com.simisinc.platform.infrastructure.persistence.ecommerce.CartItemRepository;
import com.simisinc.platform.infrastructure.persistence.ecommerce.CartRepository;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
/*
* Copyright 2026 Matt Rajkowski (https://github.com/rajkowski)
* Copyright 2022 SimIS Inc. (https://www.simiscms.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
Expand All @@ -20,9 +21,9 @@

import org.apache.commons.lang3.StringUtils;

import com.github.rajkowski.database.DB;
import com.simisinc.platform.domain.model.ecommerce.Order;
import com.simisinc.platform.domain.model.ecommerce.OrderItem;
import com.simisinc.platform.infrastructure.database.DB;
import com.simisinc.platform.infrastructure.persistence.ecommerce.OrderItemRepository;

/**
Expand Down Expand Up @@ -50,25 +51,34 @@ public static int retrieveStatusId(String code) {
if (StringUtils.isBlank(code)) {
return -1;
}
return (int) DB.selectFunction("status_id", "lookup_order_status",
DB.WHERE("LOWER(code) = ?", code.toLowerCase()));
return DB.SELECT("status_id")
.FROM("lookup_order_status")
.WHERE("LOWER(code) = ?", code.toLowerCase())
.returnValue(Long.class).intValue();
}

public static String status(int statusId) {
if (statusId == -1) {
return null;
}
return DB.selectStringValue("title", "lookup_order_status", DB.WHERE("status_id = ?", statusId));
return DB.SELECT("title")
.FROM("lookup_order_status")
.WHERE("status_id = ?", statusId)
.returnValue(String.class);
}

public static String currentStatus(int statusId) {
if (statusId == -1) {
return null;
}
String code = DB.selectStringValue(
"code",
"lookup_order_status",
DB.WHERE("status_id = ?", statusId)).toUpperCase();
String code = DB.SELECT("code")
.FROM("lookup_order_status")
.WHERE("status_id = ?", statusId)
.returnValue(String.class);
if (code == null) {
return null;
}
code = code.toUpperCase();
if (CREATED.equals(code)) {
return "New order";
} else if (PAID.equals(code)) {
Expand Down
Loading
Loading