licensed_feature_availability.md 1,4 КБ
Newer Older
Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
1
# Licensed feature availability **(STARTER)**
Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
2

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
3
4
As of GitLab 9.4, we've been supporting a simplified version of licensed
feature availability checks via `ee/app/models/license.rb`, both for
Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
5
6
7
8
9
on-premise or GitLab.com plans and features.

## Restricting features scoped by namespaces or projects

GitLab.com plans are persisted on user groups and namespaces, therefore, if you're adding a
Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
10
11
feature such as [Related issues](../user/project/issues/related_issues.md) or
[Service desk](../user/project/service_desk.md),
Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
12
13
it should be restricted on namespace scope.

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
14
15
1. Add the feature symbol on `EES_FEATURES`, `EEP_FEATURES` or `EEU_FEATURES` constants in
  `ee/app/models/license.rb`. Note on `ee/app/models/ee/namespace.rb` that _Bronze_ GitLab.com
Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
16
  features maps to on-premise _EES_, _Silver_ to _EEP_ and _Gold_ to _EEU_.
Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
17
1. Check using:
Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
18
19
20
21
22
23
24

```ruby
project.feature_available?(:feature_symbol)
```

## Restricting global features (instance)

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
25
26
27
However, for features such as [Geo](../administration/geo/replication/index.md) and
[Load balancing](../administration/database_load_balancing.md), which cannot be restricted
to only a subset of projects or namespaces, the check will be made directly in
Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
28
29
the instance license.

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
30
1. Add the feature symbol on `EES_FEATURES`, `EEP_FEATURES` or `EEU_FEATURES` constants in
Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
31
  `ee/app/models/license.rb`.
Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
32
33
1. Add the same feature symbol to `GLOBAL_FEATURES`
1. Check using:
Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
34
35
36
37

```ruby
License.feature_available?(:feature_symbol)
```