diff --git a/README.md b/README.md index 60209161e6..570a37259d 100755 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Free, open source Project Management software [![License](http://img.shields.io/badge/License-AGPLv3-orange.svg)](https://www.gnu.org/licenses/agpl-3.0.en.html) [![Project Stats](https://www.openhub.net/p/mycollab/widgets/project_thin_badge.gif)](https://www.openhub.net/p/mycollab) [![Build](https://travis-ci.org/MyCollab/mycollab.svg)](https://travis-ci.org/MyCollab/mycollab) -[![Version](https://img.shields.io/badge/Version-7.0.1-brightgreen.svg)](https://docs.mycollab.com/) +[![Version](https://img.shields.io/badge/Version-7.0.2-brightgreen.svg)](https://docs.mycollab.com/) [![Github](https://img.shields.io/github/downloads/MyCollab/mycollab/total.svg)](https://github.com/MyCollab/mycollab/releases) diff --git a/mycollab-app-community/pom.xml b/mycollab-app-community/pom.xml index ca4c54b097..cd56fdc63b 100644 --- a/mycollab-app-community/pom.xml +++ b/mycollab-app-community/pom.xml @@ -300,6 +300,7 @@ + diff --git a/mycollab-migration/src/main/resources/db/migration/mysql/V20190325_1__Custom_Fields.sql b/mycollab-migration/src/main/resources/db/migration/mysql/V20190325_1__Custom_Fields.sql index 1aa4187169..61fee7be28 100644 --- a/mycollab-migration/src/main/resources/db/migration/mysql/V20190325_1__Custom_Fields.sql +++ b/mycollab-migration/src/main/resources/db/migration/mysql/V20190325_1__Custom_Fields.sql @@ -186,10 +186,10 @@ ADD COLUMN `rel` VARCHAR(45) NULL AFTER `typeId`, ADD COLUMN `comment` TEXT NULL AFTER `rel`, CHANGE COLUMN `ticketType` `ticketType` VARCHAR(45) NOT NULL AFTER `ticketId`; -UPDATE m_prj_ticket_relation SET rel=type WHERE id > 0 +UPDATE m_prj_ticket_relation SET rel=type WHERE id > 0; -UPDATE m_prj_ticket_relation SET type='Project-Version' WHERE rel IN ('AffVersion', 'FixVersion') AND id > 0 -UPDATE m_prj_ticket_relation SET type='Project-Component' WHERE rel IN ('Component') AND id > 0 +UPDATE m_prj_ticket_relation SET type='Project-Version' WHERE rel IN ('AffVersion', 'FixVersion') AND id > 0; +UPDATE m_prj_ticket_relation SET type='Project-Component' WHERE rel IN ('Component') AND id > 0; ALTER TABLE `m_prj_ticket_relation` CHANGE COLUMN `rel` `rel` VARCHAR(45) NOT NULL ; diff --git a/mycollab-services/src/main/java/com/mycollab/module/project/dao/TicketKeyMapperExt.kt b/mycollab-services/src/main/java/com/mycollab/module/project/dao/TicketKeyMapperExt.kt index 919fe18c12..75d27f815d 100644 --- a/mycollab-services/src/main/java/com/mycollab/module/project/dao/TicketKeyMapperExt.kt +++ b/mycollab-services/src/main/java/com/mycollab/module/project/dao/TicketKeyMapperExt.kt @@ -13,5 +13,5 @@ interface TicketKeyMapperExt { fun getPreviousKey(projectId: Int, currentKey: Int): Int? - fun getTicketKeyByPrjShortNameAndKey(prjShortName:String, ticketKey:Int): TicketKey + fun getTicketKeyByPrjShortNameAndKey(sAccountId: Int, prjShortName:String, ticketKey:Int): TicketKey } \ No newline at end of file diff --git a/mycollab-services/src/main/java/com/mycollab/module/project/service/TicketKeyService.kt b/mycollab-services/src/main/java/com/mycollab/module/project/service/TicketKeyService.kt index 2f20633c95..911f822d61 100644 --- a/mycollab-services/src/main/java/com/mycollab/module/project/service/TicketKeyService.kt +++ b/mycollab-services/src/main/java/com/mycollab/module/project/service/TicketKeyService.kt @@ -8,7 +8,7 @@ import com.mycollab.module.project.domain.TicketKey */ interface TicketKeyService { - fun getTicketKeyByPrjShortNameAndKey(prjShortName:String, key:Int): TicketKey? + fun getTicketKeyByPrjShortNameAndKey(sAccountId: Int, prjShortName:String, key:Int): TicketKey? fun getMaxKey(projectId: Int): Int? diff --git a/mycollab-services/src/main/java/com/mycollab/module/project/service/impl/TicketKeyServiceImpl.kt b/mycollab-services/src/main/java/com/mycollab/module/project/service/impl/TicketKeyServiceImpl.kt index b437c229f5..6ba8b81c3b 100644 --- a/mycollab-services/src/main/java/com/mycollab/module/project/service/impl/TicketKeyServiceImpl.kt +++ b/mycollab-services/src/main/java/com/mycollab/module/project/service/impl/TicketKeyServiceImpl.kt @@ -12,7 +12,7 @@ import org.springframework.stereotype.Service */ @Service class TicketKeyServiceImpl(private val ticketKeyMapper: TicketKeyMapper, - private val ticketKeyMapperExt: TicketKeyMapperExt): TicketKeyService { + private val ticketKeyMapperExt: TicketKeyMapperExt) : TicketKeyService { override fun getMaxKey(projectId: Int): Int? = ticketKeyMapperExt.getMaxKey(projectId) override fun saveKey(projectId: Int, ticketId: Int, ticketType: String, ticketKey: Int) { @@ -28,5 +28,6 @@ class TicketKeyServiceImpl(private val ticketKeyMapper: TicketKeyMapper, override fun getPreviousKey(projectId: Int, currentKey: Int): Int? = ticketKeyMapperExt.getPreviousKey(projectId, currentKey) - override fun getTicketKeyByPrjShortNameAndKey(prjShortName: String, ticketKey: Int): TicketKey = ticketKeyMapperExt.getTicketKeyByPrjShortNameAndKey(prjShortName, ticketKey) + override fun getTicketKeyByPrjShortNameAndKey(sAccountId: Int, prjShortName: String, ticketKey: Int): TicketKey = + ticketKeyMapperExt.getTicketKeyByPrjShortNameAndKey(sAccountId, prjShortName, ticketKey) } \ No newline at end of file diff --git a/mycollab-services/src/main/resources/sqlMap/project/TicketKeyMapperExt.xml b/mycollab-services/src/main/resources/sqlMap/project/TicketKeyMapperExt.xml index d0f40b45b4..93881e061c 100644 --- a/mycollab-services/src/main/resources/sqlMap/project/TicketKeyMapperExt.xml +++ b/mycollab-services/src/main/resources/sqlMap/project/TicketKeyMapperExt.xml @@ -33,7 +33,8 @@ SELECT m_prj_ticket_key.id, m_prj_ticket_key.projectId, m_prj_ticket_key.ticketId, m_prj_ticket_key.ticketType, m_prj_ticket_key.ticketKey FROM m_prj_ticket_key, m_prj_project - WHERE m_prj_project.shortName = @{prjShortName, jdbcType=VARCHAR} + WHERE m_prj_project.sAccountId = @{sAccountId, jdbcType=NUMERIC} + AND m_prj_project.shortName = @{prjShortName, jdbcType=VARCHAR} AND m_prj_ticket_key.projectId = m_prj_project.id AND m_prj_ticket_key.ticketKey = @{ticketKey, jdbcType=NUMERIC} ]]> diff --git a/mycollab-web/src/main/java/com/mycollab/module/project/view/ticket/TicketUrlResolver.kt b/mycollab-web/src/main/java/com/mycollab/module/project/view/ticket/TicketUrlResolver.kt index a097f0b483..6f49346bcd 100644 --- a/mycollab-web/src/main/java/com/mycollab/module/project/view/ticket/TicketUrlResolver.kt +++ b/mycollab-web/src/main/java/com/mycollab/module/project/view/ticket/TicketUrlResolver.kt @@ -73,7 +73,7 @@ class TicketUrlResolver : ProjectUrlResolver() { val prjShortName = ProjectLinkParams.getProjectShortName(params[0]) val itemKey = ProjectLinkParams.getItemKey(params[0]) val ticketKeyService = AppContextUtil.getSpringBean(TicketKeyService::class.java) - val ticketKey = ticketKeyService.getTicketKeyByPrjShortNameAndKey(prjShortName, itemKey) + val ticketKey = ticketKeyService.getTicketKeyByPrjShortNameAndKey(AppUI.accountId, prjShortName, itemKey) if (ticketKey != null) { when(ticketKey.tickettype) { ProjectTypeConstants.TASK -> { @@ -125,13 +125,12 @@ class TicketUrlResolver : ProjectUrlResolver() { val prjShortName = ProjectLinkParams.getProjectShortName(params[0]) val itemKey = ProjectLinkParams.getItemKey(params[0]) val ticketKeyService = AppContextUtil.getSpringBean(TicketKeyService::class.java) - val ticketKey = ticketKeyService.getTicketKeyByPrjShortNameAndKey(prjShortName, itemKey) + val ticketKey = ticketKeyService.getTicketKeyByPrjShortNameAndKey(AppUI.accountId, prjShortName, itemKey) if (ticketKey != null) { when(ticketKey.tickettype) { ProjectTypeConstants.TASK -> { val taskService = AppContextUtil.getSpringBean(TaskService::class.java) - val task = taskService.findById(ticketKey.ticketid, AppUI.accountId) ?: throw ResourceNotFoundException("Can not find task with path ${Arrays.toString(params)}") - when (task) { + when (val task = taskService.findById(ticketKey.ticketid, AppUI.accountId) ?: throw ResourceNotFoundException("Can not find task with path ${Arrays.toString(params)}")) { null -> throw ResourceNotFoundException("Can not edit task with path ${Arrays.toString(params)}") else -> { val chain = PageActionChain(ProjectScreenData.Goto(task.projectid), TaskScreenData.Edit(task))