-
-
Save markasoftware/f5b2e55a2c2e3abb1f9eefcdf0bfff45 to your computer and use it in GitHub Desktop.
############ 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 |
Try to go into the container and
head /app/app/models/enterprise_token.rb
and see whether############ 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. ################
is there
What I've just done @jiriks74 is:
- cd'd into
/app/app/models/enterprise_token.rb
to see the file wasn't amended - removed the existing file
- wget the
enterprise_token.rb
file from here - ran your command again
- checked Portainer
- and every time I run the command it decides to create a different Docker container(is that normal??)
- double checked the
enterprise_token.rb
file again and it was set back to default prior to replacing it with this file
Is this my server just being weird??
Try to use the name of the container not the hash.
As you can see I'm using openproject-web-1
as it's the name for the container that hosts the web app files.
Here's the info about it:
As you can see the long string of numbers and letters is a id/hash. it is not preserved when you docker compose down && docker compose up
the stack.
I don't recognize the setup. The names are modified and I have no idea what container .z2...
is. Are you using the official docker One container per process
setup? Because that's the one the command is for.
Try to use the name of the container not the hash.
This still didn't work - just created another container again.
I don't recognize the setup. The names are modified and I have no idea what container
.z2...
is. Are you using the official dockerOne container per process
setup? Because that's the one the command is for.
I'm using the Easypanel image for OpenProject. But I'll try that doc you've just linked to.
Try to use the name of the container not the hash.
This still didn't work - just created another container again.
I don't recognize the setup. The names are modified and I have no idea what container
.z2...
is. Are you using the official dockerOne container per process
setup? Because that's the one the command is for.I'm using the Easypanel image for OpenProject. But I'll try that doc you've just linked to.
Don't port your whole setup just because of this command. Modify it or do it manually after every update.
Hello,
another approach to have this modification persistent is adding a volume to the container web
:
volumes:
- <path>/enterprise_token.rb:/app/app/models/enterprise_token.rb:ro
Then you can do a cron
job (crontab -e
):
@daily curl "https://gist.githubusercontent.com/markasoftware/f5b2e55a2c2e3abb1f9eefcdf0bfff45/raw/148c5067e30eae04f96e3233144b4404f70ade47/enterprise_token.rb" -o <path>/enterprise_token.rb
Important
Don't forget to change <path>
to your folder where you want the file be. Do so for the volume and cron job.
This is for the official One container per process setup. If you use something else make sure that the file is under /app/app/models/enterprise_token.rb
. If it isn't modify the volume path.
Thanks, For this and all the comments.
Anyone running OpenProject Container on Synology NAS devices can follow this
- Download the file "enterprise_token.rb" and place it in your NAS.
- Stop your container and go to settings.
- Scroll Down to Volume Settings "Add File" and select the file you download "enterprise_token.rb".
- In the Text Box paste this "/app/app/models/enterprise_token.rb" and select "Read Only"
- Start the container again.
- That's All.
it is work on OpenProject 13.4.1?
installed on Ubuntu.
it is work on OpenProject 13.4.1? installed on Ubuntu.
No. Not on my installation.
it is work on OpenProject 13.4.1? installed on Ubuntu.
No. Not on my installation.
for me too...
@zuevav @RFX19 It's working on 13.4.1 Did you follow the setup steps properly? Are you using docker? Are you using single/multi image setup? Did you restart OpenProject after setting up the new file?
I dont think that the setup is so hard. Just switch the files and restart. What I did. In the previous version it was working like charm but with the update it stopped working.
I'm using the single image setup.
Check your running container for the file header. Maybe the container got recreated during restart.
Check your running container for the file header. Maybe the container got recreated during restart.
Excuse me, but may I ask for your support? How can I carry out your proposal?
docker exec -it <container-name> head <path-to-file>
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....
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.
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.
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'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
I tested this and as @siddhu2310 it works for me too
https://gist.github.com/CC1119/da05e02ba5b885b40db66beb191dd456
Ok great to hear! The reports of my demise have been greatly exaggerated 😆
nice... it works
Even with 14.1 ?
Even with 14.1 ?
correct, i even put it in persistent volume in my dockerfile
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?
@fortiblox https://gist.github.com/markasoftware/f5b2e55a2c2e3abb1f9eefcdf0bfff45?permalink_comment_id=5016400#gistcomment-5016400
Awesome thanks, worked with 14.1.1
For me it only works up to 14.0.2 on Docker. With 14.1 I have some problems that compose-web always crashes
Try to go into the container and
head /app/app/models/enterprise_token.rb
and see whetheris there