diff options
Diffstat (limited to 'app/services/service_desk/custom_emails/base_service.rb')
-rw-r--r-- | app/services/service_desk/custom_emails/base_service.rb | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/app/services/service_desk/custom_emails/base_service.rb b/app/services/service_desk/custom_emails/base_service.rb new file mode 100644 index 00000000000..62152f31012 --- /dev/null +++ b/app/services/service_desk/custom_emails/base_service.rb @@ -0,0 +1,41 @@ +# frozen_string_literal: true + +module ServiceDesk + module CustomEmails + class BaseService < ::BaseProjectService + private + + def legitimate_user? + can?(current_user, :admin_project, project) + end + + def setting? + project.service_desk_setting.present? + end + + def credential? + project.service_desk_custom_email_verification.present? + end + + def verification? + project.service_desk_custom_email_credential.present? + end + + def feature_flag_enabled? + Feature.enabled?(:service_desk_custom_email, project) + end + + def error_user_not_authorized + error_response(s_('ServiceDesk|User cannot manage project.')) + end + + def error_feature_flag_disabled + error_response('Feature flag service_desk_custom_email is not enabled') + end + + def error_response(message) + ServiceResponse.error(message: message) + end + end + end +end |