@@ -125,6 +125,7 @@
|
|||||||
},
|
},
|
||||||
"drive": {
|
"drive": {
|
||||||
"rootAdmins": "DRIVE_ROOT_ADMINS",
|
"rootAdmins": "DRIVE_ROOT_ADMINS",
|
||||||
"defaultLanguage": "DRIVE_DEFAULT_LANGUAGE"
|
"defaultLanguage": "DRIVE_DEFAULT_LANGUAGE",
|
||||||
|
"featureSearchUsers": "ENABLE_FEATURE_SEARCH_USERS"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,270 +1,261 @@
|
|||||||
{
|
{
|
||||||
"general":{
|
"general": {
|
||||||
"help_url":false,
|
"help_url": false,
|
||||||
"pricing_plan_url":"",
|
"pricing_plan_url": "",
|
||||||
"app_download_url":"https://twake.app/download",
|
"app_download_url": "https://twake.app/download",
|
||||||
"mobile":{
|
"mobile": {
|
||||||
"mobile_redirect":"mobile.twake.app",
|
"mobile_redirect": "mobile.twake.app",
|
||||||
"mobile_appstore":"https://apps.apple.com/fr/app/tdrive/id1588764852?l=en",
|
"mobile_appstore": "https://apps.apple.com/fr/app/tdrive/id1588764852?l=en",
|
||||||
"mobile_googleplay":"https://play.google.com/store/apps/details?id=com.tdrive.tdrive&gl=FR"
|
"mobile_googleplay": "https://play.google.com/store/apps/details?id=com.tdrive.tdrive&gl=FR"
|
||||||
},
|
},
|
||||||
"accounts":{
|
"accounts": {
|
||||||
"_type":"remote",
|
"_type": "remote",
|
||||||
"type":"internal",
|
"type": "internal",
|
||||||
"internal":{
|
"internal": {
|
||||||
"disable_account_creation":false
|
"disable_account_creation": false
|
||||||
|
},
|
||||||
|
"remote": {
|
||||||
|
"authority": "http://auth.example.com/",
|
||||||
|
"client_id": "tdriveweb",
|
||||||
|
"client_secret": "",
|
||||||
|
"issuer": "",
|
||||||
|
"audience": "",
|
||||||
|
"redirect_uris": [""],
|
||||||
|
"account_management_url": "http://web.tdrive-console.local/profile?company-code={company_id}",
|
||||||
|
"collaborators_management_url": "http://web.tdrive-console.local/compaies/{company_id}/users?company-code={company_id}",
|
||||||
|
"company_management_url": "http://web.tdrive-console.local/companies?company-code={company_id}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"console": {
|
||||||
|
"type": "internal"
|
||||||
|
},
|
||||||
|
"sentry": {
|
||||||
|
"dsn": ""
|
||||||
|
},
|
||||||
|
"logger": {
|
||||||
|
"level": "debug"
|
||||||
|
},
|
||||||
|
"tracker": {
|
||||||
|
"type": "segment",
|
||||||
|
"segment": {
|
||||||
|
"key": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"webserver": {
|
||||||
|
"port": 4000,
|
||||||
|
"logger": {
|
||||||
|
"level": "info"
|
||||||
|
},
|
||||||
|
"cors": {
|
||||||
|
"origin": "*"
|
||||||
|
},
|
||||||
|
"static": {
|
||||||
|
"root": "./public"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"websocket": {
|
||||||
|
"path": "/socket/",
|
||||||
|
"adapters": {
|
||||||
|
"types": [],
|
||||||
|
"redis": {
|
||||||
|
"host": "redis",
|
||||||
|
"port": 6379
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"auth": {
|
||||||
|
"jwt": {
|
||||||
|
"secret": "supersecret"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"auth": {
|
||||||
|
"jwt": {
|
||||||
|
"secret": "supersecret",
|
||||||
|
"expiration": 3600,
|
||||||
|
"refresh_expiration": 2592000
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"database": {
|
||||||
|
"secret": "",
|
||||||
|
"type": "cassandra",
|
||||||
|
"mongodb": {
|
||||||
|
"uri": "mongodb://mongo:27017",
|
||||||
|
"database": "tdrive"
|
||||||
|
},
|
||||||
|
"cassandra": {
|
||||||
|
"contactPoints": ["scylladb:9042"],
|
||||||
|
"localDataCenter": "datacenter1",
|
||||||
|
"keyspace": "tdrive",
|
||||||
|
"wait": false,
|
||||||
|
"retries": 10,
|
||||||
|
"delay": 200
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"message-queue": {
|
||||||
|
"// possible 'type' values are": "'amqp' or 'local'",
|
||||||
|
"type": "amqp",
|
||||||
|
"amqp": {
|
||||||
|
"urls": ["amqp://guest:guest@rabbitmq:5672"]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"search": {
|
||||||
|
"type": "elasticsearch",
|
||||||
|
"elasticsearch": {
|
||||||
|
"endpoint": "http://elasticsearch:9200"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"push": {
|
||||||
|
"type": false,
|
||||||
|
"fcm": {
|
||||||
|
"endpoint": "https://fcm.googleapis.com/fcm/send",
|
||||||
|
"key": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"storage": {
|
||||||
|
"secret": "0ea28a329df23220fa814e005bfb671c",
|
||||||
|
"iv": "1234abcd00000000",
|
||||||
|
"type": "local",
|
||||||
|
"S3": {
|
||||||
|
"endPoint": "play.min.io",
|
||||||
|
"port": 9000,
|
||||||
|
"useSSL": false,
|
||||||
|
"accessKey": "ABCD",
|
||||||
|
"secretKey": "x1yz"
|
||||||
|
},
|
||||||
|
"local": {
|
||||||
|
"path": "/tdrive"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"email-pusher": {
|
||||||
|
"endpoint": "https://api.smtp2go.com/v3/email/send",
|
||||||
|
"api_key": "secret",
|
||||||
|
"sender": "noreply@twake.app",
|
||||||
|
"debug": true
|
||||||
|
},
|
||||||
|
"drive": {
|
||||||
|
"featureSearchUsers": true
|
||||||
|
},
|
||||||
|
"applications": {
|
||||||
|
"grid": [
|
||||||
|
{
|
||||||
|
"name": "Chat",
|
||||||
|
"logo": "/public/img/grid/twake.svg",
|
||||||
|
"url": "https://web.twake.app/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Mail",
|
||||||
|
"logo": "/public/img/grid/mail.svg",
|
||||||
|
"url": "https://tmail.linagora.com/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Drive",
|
||||||
|
"logo": "/public/img/grid/drive.svg",
|
||||||
|
"url": "https://tdrive.qa.lin-saas.com/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Calendar",
|
||||||
|
"logo": "/public/img/grid/calendar.svg",
|
||||||
|
"url": "https://openpaas.linagora.com/calendar/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Contacts",
|
||||||
|
"logo": "/public/img/grid/contacts.svg",
|
||||||
|
"url": "https://openpaas.linagora.com/contacts"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Visio",
|
||||||
|
"logo": "/public/img/grid/visio.svg",
|
||||||
|
"url": "https://jitsi.linagora.com/"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"plugins": [
|
||||||
|
{
|
||||||
|
"api": {
|
||||||
|
"private_key": "c1cc66db78e1d3bb4713c55d5ab2"
|
||||||
},
|
},
|
||||||
"remote":{
|
"display": {
|
||||||
"authority":"http://auth.example.com/",
|
"tdrive": {
|
||||||
"client_id":"tdriveweb",
|
"files": {
|
||||||
"client_secret":"",
|
"editor": {
|
||||||
"issuer":"",
|
"edition_url": "http://localhost:5000/plugins/onlyoffice/",
|
||||||
"audience":"",
|
"empty_files": [
|
||||||
"redirect_uris":[
|
{
|
||||||
""
|
"filename": "Untitled.docx",
|
||||||
],
|
"name": "ONLYOFFICE Word Document",
|
||||||
"account_management_url":"http://web.tdrive-console.local/profile?company-code={company_id}",
|
"url": "/plugins/onlyoffice/assets/empty.docx"
|
||||||
"collaborators_management_url":"http://web.tdrive-console.local/compaies/{company_id}/users?company-code={company_id}",
|
},
|
||||||
"company_management_url":"http://web.tdrive-console.local/companies?company-code={company_id}"
|
{
|
||||||
}
|
"filename": "Untitled.xlsx",
|
||||||
}
|
"name": "ONLYOFFICE Excel Document",
|
||||||
},
|
"url": "/plugins/onlyoffice/assets/empty.xlsx"
|
||||||
"console":{
|
},
|
||||||
"type":"internal"
|
{
|
||||||
},
|
"filename": "Untitled.pptx",
|
||||||
"sentry":{
|
"name": "ONLYOFFICE PowerPoint Document",
|
||||||
"dsn":""
|
"url": "/plugins/onlyoffice/assets/empty.pptx"
|
||||||
},
|
}
|
||||||
"logger":{
|
],
|
||||||
"level":"debug"
|
"extensions": [
|
||||||
},
|
"xlsx",
|
||||||
"tracker":{
|
"pptx",
|
||||||
"type":"segment",
|
"docx",
|
||||||
"segment":{
|
"xls",
|
||||||
"key":""
|
"ppt",
|
||||||
}
|
"doc",
|
||||||
},
|
"odt",
|
||||||
"webserver":{
|
"ods",
|
||||||
"port":4000,
|
"odp",
|
||||||
"logger":{
|
"txt",
|
||||||
"level":"info"
|
"html",
|
||||||
},
|
"csv"
|
||||||
"cors":{
|
],
|
||||||
"origin":"*"
|
"preview_url": "http://localhost:5000/plugins/onlyoffice/?preview=1"
|
||||||
},
|
|
||||||
"static":{
|
|
||||||
"root":"./public"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"websocket":{
|
|
||||||
"path":"/socket/",
|
|
||||||
"adapters":{
|
|
||||||
"types":[
|
|
||||||
|
|
||||||
],
|
|
||||||
"redis":{
|
|
||||||
"host":"redis",
|
|
||||||
"port":6379
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"auth":{
|
|
||||||
"jwt":{
|
|
||||||
"secret":"supersecret"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"auth":{
|
|
||||||
"jwt":{
|
|
||||||
"secret":"supersecret",
|
|
||||||
"expiration":3600,
|
|
||||||
"refresh_expiration":2592000
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"database":{
|
|
||||||
"secret":"",
|
|
||||||
"type":"cassandra",
|
|
||||||
"mongodb":{
|
|
||||||
"uri":"mongodb://mongo:27017",
|
|
||||||
"database":"tdrive"
|
|
||||||
},
|
|
||||||
"cassandra":{
|
|
||||||
"contactPoints":[
|
|
||||||
"scylladb:9042"
|
|
||||||
],
|
|
||||||
"localDataCenter":"datacenter1",
|
|
||||||
"keyspace":"tdrive",
|
|
||||||
"wait":false,
|
|
||||||
"retries":10,
|
|
||||||
"delay":200
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"message-queue":{
|
|
||||||
"// possible 'type' values are":"'amqp' or 'local'",
|
|
||||||
"type":"amqp",
|
|
||||||
"amqp":{
|
|
||||||
"urls":[
|
|
||||||
"amqp://guest:guest@rabbitmq:5672"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"search":{
|
|
||||||
"type":"elasticsearch",
|
|
||||||
"elasticsearch":{
|
|
||||||
"endpoint":"http://elasticsearch:9200"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"push":{
|
|
||||||
"type":false,
|
|
||||||
"fcm":{
|
|
||||||
"endpoint":"https://fcm.googleapis.com/fcm/send",
|
|
||||||
"key":""
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"storage":{
|
|
||||||
"secret":"0ea28a329df23220fa814e005bfb671c",
|
|
||||||
"iv":"1234abcd00000000",
|
|
||||||
"type":"local",
|
|
||||||
"S3":{
|
|
||||||
"endPoint":"play.min.io",
|
|
||||||
"port":9000,
|
|
||||||
"useSSL":false,
|
|
||||||
"accessKey":"ABCD",
|
|
||||||
"secretKey":"x1yz"
|
|
||||||
},
|
|
||||||
"local":{
|
|
||||||
"path":"/tdrive"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"email-pusher":{
|
|
||||||
"endpoint":"https://api.smtp2go.com/v3/email/send",
|
|
||||||
"api_key":"secret",
|
|
||||||
"sender":"noreply@twake.app",
|
|
||||||
"debug": true
|
|
||||||
},
|
|
||||||
"applications":{
|
|
||||||
"grid":[
|
|
||||||
{
|
|
||||||
"name":"Chat",
|
|
||||||
"logo":"/public/img/grid/twake.svg",
|
|
||||||
"url":"https://web.twake.app/"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Mail",
|
|
||||||
"logo":"/public/img/grid/mail.svg",
|
|
||||||
"url":"https://tmail.linagora.com/"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Drive",
|
|
||||||
"logo":"/public/img/grid/drive.svg",
|
|
||||||
"url":"https://tdrive.qa.lin-saas.com/"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Calendar",
|
|
||||||
"logo":"/public/img/grid/calendar.svg",
|
|
||||||
"url":"https://openpaas.linagora.com/calendar/"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Contacts",
|
|
||||||
"logo":"/public/img/grid/contacts.svg",
|
|
||||||
"url":"https://openpaas.linagora.com/contacts"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name":"Visio",
|
|
||||||
"logo":"/public/img/grid/visio.svg",
|
|
||||||
"url":"https://jitsi.linagora.com/"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"plugins":[
|
|
||||||
{
|
|
||||||
"api":{
|
|
||||||
"private_key":"c1cc66db78e1d3bb4713c55d5ab2"
|
|
||||||
},
|
|
||||||
"display":{
|
|
||||||
"tdrive":{
|
|
||||||
"files":{
|
|
||||||
"editor":{
|
|
||||||
"edition_url":"http://localhost:5000/plugins/onlyoffice/",
|
|
||||||
"empty_files":[
|
|
||||||
{
|
|
||||||
"filename":"Untitled.docx",
|
|
||||||
"name":"ONLYOFFICE Word Document",
|
|
||||||
"url":"/plugins/onlyoffice/assets/empty.docx"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename":"Untitled.xlsx",
|
|
||||||
"name":"ONLYOFFICE Excel Document",
|
|
||||||
"url":"/plugins/onlyoffice/assets/empty.xlsx"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename":"Untitled.pptx",
|
|
||||||
"name":"ONLYOFFICE PowerPoint Document",
|
|
||||||
"url":"/plugins/onlyoffice/assets/empty.pptx"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"extensions":[
|
|
||||||
"xlsx",
|
|
||||||
"pptx",
|
|
||||||
"docx",
|
|
||||||
"xls",
|
|
||||||
"ppt",
|
|
||||||
"doc",
|
|
||||||
"odt",
|
|
||||||
"ods",
|
|
||||||
"odp",
|
|
||||||
"txt",
|
|
||||||
"html",
|
|
||||||
"csv"
|
|
||||||
],
|
|
||||||
"preview_url":"http://localhost:5000/plugins/onlyoffice/?preview=1"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"version":1
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"external_prefix":"/plugins/onlyoffice/",
|
"version": 1
|
||||||
"id":"tdrive_onlyoffice",
|
}
|
||||||
"identity":{
|
},
|
||||||
"categories":[
|
"external_prefix": "/plugins/onlyoffice/",
|
||||||
|
"id": "tdrive_onlyoffice",
|
||||||
],
|
"identity": {
|
||||||
"code":"only_office",
|
"categories": [],
|
||||||
"compatibility":[
|
"code": "only_office",
|
||||||
"tdrive"
|
"compatibility": ["tdrive"],
|
||||||
],
|
"description": null,
|
||||||
"description":null,
|
"icon": "/plugins/onlyoffice/assets/logo.png",
|
||||||
"icon":"/plugins/onlyoffice/assets/logo.png",
|
"name": "Only Office",
|
||||||
"name":"Only Office",
|
"website": "http://twake.app/"
|
||||||
"website":"http://twake.app/"
|
},
|
||||||
},
|
"internal_domain": "http://localhost:5000/"
|
||||||
"internal_domain":"http://localhost:5000/"
|
}
|
||||||
}
|
]
|
||||||
]
|
|
||||||
},
|
},
|
||||||
"services":[
|
"services": [
|
||||||
"auth",
|
"auth",
|
||||||
"push",
|
"push",
|
||||||
"storage",
|
"storage",
|
||||||
"webserver",
|
"webserver",
|
||||||
"websocket",
|
"websocket",
|
||||||
"database",
|
"database",
|
||||||
"cron",
|
"cron",
|
||||||
"search",
|
"search",
|
||||||
"message-queue",
|
"message-queue",
|
||||||
"realtime",
|
"realtime",
|
||||||
"tracker",
|
"tracker",
|
||||||
"general",
|
"general",
|
||||||
"user",
|
"user",
|
||||||
"files",
|
"files",
|
||||||
"workspaces",
|
"workspaces",
|
||||||
"console",
|
"console",
|
||||||
"counter",
|
"counter",
|
||||||
"statistics",
|
"statistics",
|
||||||
"cron",
|
"cron",
|
||||||
"online",
|
"online",
|
||||||
"email-pusher",
|
"email-pusher",
|
||||||
"documents",
|
"documents",
|
||||||
"applications",
|
"applications",
|
||||||
"applications-api",
|
"applications-api",
|
||||||
"tags"
|
"tags"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
import Company from "./entities/company";
|
import Company from "./entities/company";
|
||||||
|
import config from "../../core/config";
|
||||||
import {
|
import {
|
||||||
CompanyFeaturesEnum,
|
CompanyFeaturesEnum,
|
||||||
CompanyLimitsEnum,
|
CompanyLimitsEnum,
|
||||||
@@ -53,6 +54,9 @@ export function formatCompany(
|
|||||||
[CompanyFeaturesEnum.CHAT_EDIT_FILES]: true,
|
[CompanyFeaturesEnum.CHAT_EDIT_FILES]: true,
|
||||||
[CompanyFeaturesEnum.CHAT_UNLIMITED_STORAGE]: true,
|
[CompanyFeaturesEnum.CHAT_UNLIMITED_STORAGE]: true,
|
||||||
[CompanyFeaturesEnum.COMPANY_INVITE_MEMBER]: true,
|
[CompanyFeaturesEnum.COMPANY_INVITE_MEMBER]: true,
|
||||||
|
// use the config value for this one
|
||||||
|
[CompanyFeaturesEnum.COMPANY_SEARCH_USERS]:
|
||||||
|
(config.get("drive.featureSearchUsers") as boolean) || true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
...(res.plan?.features || {}),
|
...(res.plan?.features || {}),
|
||||||
@@ -62,6 +66,8 @@ export function formatCompany(
|
|||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
|
console.log("🚀🚀 res.plan.features: ", res.plan.features);
|
||||||
|
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -92,6 +92,7 @@ export const companyObjectSchema = {
|
|||||||
[CompanyFeaturesEnum.CHAT_MULTIPLE_WORKSPACES]: { type: "boolean" },
|
[CompanyFeaturesEnum.CHAT_MULTIPLE_WORKSPACES]: { type: "boolean" },
|
||||||
[CompanyFeaturesEnum.CHAT_UNLIMITED_STORAGE]: { type: "boolean" },
|
[CompanyFeaturesEnum.CHAT_UNLIMITED_STORAGE]: { type: "boolean" },
|
||||||
[CompanyFeaturesEnum.COMPANY_INVITE_MEMBER]: { type: "boolean" },
|
[CompanyFeaturesEnum.COMPANY_INVITE_MEMBER]: { type: "boolean" },
|
||||||
|
[CompanyFeaturesEnum.COMPANY_SEARCH_USERS]: { type: "boolean" },
|
||||||
guests: { type: "number" }, // to rename or delete
|
guests: { type: "number" }, // to rename or delete
|
||||||
members: { type: "number" }, // to rename or delete
|
members: { type: "number" }, // to rename or delete
|
||||||
storage: { type: "number" }, // to rename or delete
|
storage: { type: "number" }, // to rename or delete
|
||||||
|
|||||||
@@ -83,6 +83,7 @@ export enum CompanyFeaturesEnum {
|
|||||||
CHAT_EDIT_FILES = "chat:edit_files",
|
CHAT_EDIT_FILES = "chat:edit_files",
|
||||||
CHAT_UNLIMITED_STORAGE = "chat:unlimited_storage",
|
CHAT_UNLIMITED_STORAGE = "chat:unlimited_storage",
|
||||||
COMPANY_INVITE_MEMBER = "company:invite_member",
|
COMPANY_INVITE_MEMBER = "company:invite_member",
|
||||||
|
COMPANY_SEARCH_USERS = "company:search_users",
|
||||||
}
|
}
|
||||||
|
|
||||||
export type CompanyFeaturesObject = {
|
export type CompanyFeaturesObject = {
|
||||||
@@ -92,6 +93,7 @@ export type CompanyFeaturesObject = {
|
|||||||
[CompanyFeaturesEnum.CHAT_EDIT_FILES]?: boolean;
|
[CompanyFeaturesEnum.CHAT_EDIT_FILES]?: boolean;
|
||||||
[CompanyFeaturesEnum.CHAT_UNLIMITED_STORAGE]?: boolean;
|
[CompanyFeaturesEnum.CHAT_UNLIMITED_STORAGE]?: boolean;
|
||||||
[CompanyFeaturesEnum.COMPANY_INVITE_MEMBER]?: boolean;
|
[CompanyFeaturesEnum.COMPANY_INVITE_MEMBER]?: boolean;
|
||||||
|
[CompanyFeaturesEnum.COMPANY_SEARCH_USERS]?: boolean;
|
||||||
};
|
};
|
||||||
|
|
||||||
export type CompanyLimitsObject = {
|
export type CompanyLimitsObject = {
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ export enum FeatureNames {
|
|||||||
EDIT_FILES = 'chat:edit_files',
|
EDIT_FILES = 'chat:edit_files',
|
||||||
UNLIMITED_STORAGE = 'chat:unlimited_storage', //Currently inactive
|
UNLIMITED_STORAGE = 'chat:unlimited_storage', //Currently inactive
|
||||||
COMPANY_INVITE_MEMBER = 'company:invite_member',
|
COMPANY_INVITE_MEMBER = 'company:invite_member',
|
||||||
|
COMPANY_SEARCH_USERS = 'company:search_users',
|
||||||
}
|
}
|
||||||
|
|
||||||
export type FeatureValueType = boolean | number;
|
export type FeatureValueType = boolean | number;
|
||||||
@@ -22,6 +23,7 @@ availableFeaturesWithDefaults.set(FeatureNames.MULTIPLE_WORKSPACES, true);
|
|||||||
availableFeaturesWithDefaults.set(FeatureNames.EDIT_FILES, true);
|
availableFeaturesWithDefaults.set(FeatureNames.EDIT_FILES, true);
|
||||||
availableFeaturesWithDefaults.set(FeatureNames.UNLIMITED_STORAGE, true);
|
availableFeaturesWithDefaults.set(FeatureNames.UNLIMITED_STORAGE, true);
|
||||||
availableFeaturesWithDefaults.set(FeatureNames.COMPANY_INVITE_MEMBER, true);
|
availableFeaturesWithDefaults.set(FeatureNames.COMPANY_INVITE_MEMBER, true);
|
||||||
|
availableFeaturesWithDefaults.set(FeatureNames.COMPANY_SEARCH_USERS, true);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ChannelServiceImpl that allow you to manage feature flipping in Tdrive using react feature toggles
|
* ChannelServiceImpl that allow you to manage feature flipping in Tdrive using react feature toggles
|
||||||
|
|||||||
@@ -4,8 +4,11 @@ import { useEffect } from 'react';
|
|||||||
import { atom, useRecoilState } from 'recoil';
|
import { atom, useRecoilState } from 'recoil';
|
||||||
import { InternalAccessManager } from './internal-access';
|
import { InternalAccessManager } from './internal-access';
|
||||||
import { PublicLinkManager } from './public-link-access';
|
import { PublicLinkManager } from './public-link-access';
|
||||||
|
import { useCurrentCompany } from '@features/companies/hooks/use-companies';
|
||||||
import Languages from 'features/global/services/languages-service';
|
import Languages from 'features/global/services/languages-service';
|
||||||
|
import FeatureTogglesService, {
|
||||||
|
FeatureNames,
|
||||||
|
} from '@features/global/services/feature-toggles-service';
|
||||||
|
|
||||||
export type AccessModalType = {
|
export type AccessModalType = {
|
||||||
open: boolean;
|
open: boolean;
|
||||||
@@ -32,17 +35,19 @@ export const AccessModal = () => {
|
|||||||
|
|
||||||
const AccessModalContent = ({ id }: { id: string }) => {
|
const AccessModalContent = ({ id }: { id: string }) => {
|
||||||
const { item, access, refresh } = useDriveItem(id);
|
const { item, access, refresh } = useDriveItem(id);
|
||||||
|
const { company, refresh: refreshCompany } = useCurrentCompany();
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
refresh(id);
|
refresh(id);
|
||||||
|
refreshCompany();
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
console.log(item?.access_info?.public?.level, 'item');
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<ModalContent title={Languages.t('components.item_context_menu.manage_access_to') + " " + item?.name}>
|
<ModalContent
|
||||||
|
title={Languages.t('components.item_context_menu.manage_access_to') + ' ' + item?.name}
|
||||||
|
>
|
||||||
<PublicLinkManager id={id} disabled={access !== 'manage'} />
|
<PublicLinkManager id={id} disabled={access !== 'manage'} />
|
||||||
<InternalAccessManager id={id} disabled={access !== 'manage'} />
|
{FeatureTogglesService.isActiveFeatureName(FeatureNames.COMPANY_SEARCH_USERS) && (
|
||||||
|
<InternalAccessManager id={id} disabled={access !== 'manage'} />
|
||||||
|
)}
|
||||||
</ModalContent>
|
</ModalContent>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user