Skip to content

Instantly share code, notes, and snippets.

@markasoftware
Last active June 26, 2024 08:01
Show Gist options
  • Save markasoftware/f5b2e55a2c2e3abb1f9eefcdf0bfff45 to your computer and use it in GitHub Desktop.
Save markasoftware/f5b2e55a2c2e3abb1f9eefcdf0bfff45 to your computer and use it in GitHub Desktop.
OpenProject Enterprise mode for free
############ REPLACE app/models/enterprise_token.rb in the source code with this file! ################
############ also be sure to RESTART OpenProject after replacing the file. ################
############ it doesn't show that enterprise mode is enabled in the settings, but all ################
############ enterprise mode features, such as KanBan boards, are enabled. ################
#-- copyright
# OpenProject is an open source project management software.
# Copyright (C) 2012-2023 the OpenProject GmbH
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License version 3.
#
# OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows:
# Copyright (C) 2006-2013 Jean-Philippe Lang
# Copyright (C) 2010-2013 the ChiliProject Team
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# See COPYRIGHT and LICENSE files for more details.
#++
class EnterpriseToken < ApplicationRecord
class << self
def current
RequestStore.fetch(:current_ee_token) do
set_current_token
end
end
def table_exists?
connection.data_source_exists? table_name
end
def allows_to?(action)
true
end
def active?
true
end
def show_banners?
false
end
def set_current_token
token = EnterpriseToken.order(Arel.sql('created_at DESC')).first
if token&.token_object
token
end
end
end
validates :encoded_token, presence: true
validate :valid_token_object
validate :valid_domain
before_save :unset_current_token
before_destroy :unset_current_token
delegate :will_expire?,
:subscriber,
:mail,
:company,
:domain,
:issued_at,
:starts_at,
:expires_at,
:reprieve_days,
:reprieve_days_left,
:restrictions,
to: :token_object
def token_object
load_token! unless defined?(@token_object)
@token_object
end
def allows_to?(action)
true
end
def unset_current_token
# Clear current cache
RequestStore.delete :current_ee_token
end
def expired?(reprieve: true)
false
end
##
# The domain is only validated for tokens from version 2.0 onwards.
def invalid_domain?
false
end
private
def load_token!
@token_object = OpenProject::Token.import(encoded_token)
rescue OpenProject::Token::ImportError => e
Rails.logger.error "Failed to load EE token: #{e}"
nil
end
def valid_token_object
errors.add(:encoded_token, :unreadable) unless load_token!
end
def valid_domain
errors.add :domain, :invalid if invalid_domain?
end
end
@zuevav
Copy link

zuevav commented Apr 18, 2024

The problem is that we don't use docker, we have a clean Ubuntu installation, according to the instructions - Install Open Project with DEB/RPM packages. Next is the Configuration of the Open Project. Stop it, change the file and start it, and nothing....

@RFX19
Copy link

RFX19 commented Apr 19, 2024

The problem is that we don't use docker, we have a clean Ubuntu installation, according to the instructions - Install Open Project with DEB/RPM packages. Next is the Configuration of the Open Project. Stop it, change the file and start it, and nothing....

Same here. But instead of Ubuntu we are using Debian.

@lockdlock
Copy link

The problem is that we don't use docker, we have a clean Ubuntu installation, according to the instructions - Install Open Project with DEB/RPM packages. Next is the Configuration of the Open Project. Stop it, change the file and start it, and nothing....

Same here. But instead of Ubuntu we are using Debian.

On my ubuntu 22.04 server, 13.4.1 is working fine. Of course I am not using docker.
However, this is not a clean install of 13.4.1, but an update from 13.4.0.
However, I have not tried 14.0.0.

@markasoftware
Copy link
Author

I've heard reports that the enterprise_token.rb file no longer exists in 14.0.0 so a slightly different override may be needed. Openproject is not something I use anymore so I'll leave this up to other people to solve, I'm happy to merge a fork that works on 14.0.0!

@siddhu2310
Copy link

I've heard reports that the enterprise_token.rb file no longer exists in 14.0.0 so a slightly different override may be needed. Openproject is not something I use anymore so I'll leave this up to other people to solve, I'm happy to merge a fork that works on 14.0.0!

I have chekced with 14.0.0 it is Working

@CC1119
Copy link

CC1119 commented Apr 30, 2024

@markasoftware
Copy link
Author

Ok great to hear! The reports of my demise have been greatly exaggerated 😆

@yud1z
Copy link

yud1z commented May 28, 2024

nice... it works

@mischu81
Copy link

Even with 14.1 ?

@yud1z
Copy link

yud1z commented May 28, 2024

Even with 14.1 ?

correct, i even put it in persistent volume in my dockerfile

@CC1119
Copy link

CC1119 commented May 28, 2024

@mischu81 and @yud1z it works on 14.1 w/ docker and DEB/RPM packages

@fortiblox
Copy link

Even with 14.1 ?

correct, i even put it in persistent volume in my dockerfile

you have a tldr on how to do it with docker or portainer?

@mischu81
Copy link

mischu81 commented Jun 8, 2024

For me it only works up to 14.0.2 on Docker. With 14.1 I have some problems that compose-web always crashes

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment