Skip to content
Snippets Groups Projects
Select Git revision
  • 0cac9c0375b6088e3856e0939b0953e557176861
  • master default protected
  • feature/PRXS-3383-CollectionsRankSort
  • feature/3149-LocaleCodeAsID
  • refactor/PRXS-3053-RefactorFiles
  • feature/3146-UpdateItemStorageInterface
  • feature/3180-RemoveOldHugo
  • feature/3264-FixExtracTranslationsArrays
  • feature/3274-ObjectIndexesFixes
  • feature/2931-AllowPartialDecode
  • feature/3055-ItemsRestAPI
  • feature/3082-gitlab-triage
  • feature/3055-LogsRestAPI
  • feature/2985-add-preset-settings
  • feature/2929-MultiInvitationFix
  • feature/2929-MultiInvitation
  • docs/2889-HugoModules
  • docs/2954-CheckResource
  • docs/3012-SplitBuild
  • docs/3024-PerxisWebStatic
  • feature/2911-GetArchive
  • v0.27.0
  • v0.21.0
  • v0.19.0
  • v0.20.0
25 results

members.proto

Blame
  • members.proto 2.32 KiB
    syntax = "proto3";
    
    import "google/protobuf/empty.proto";
    import "common/common.proto";
    
    option go_package = "git.perx.ru/perxis/perxis-go/proto/members;members";
    
    package account.members;
    
    // Роль пользователя в организации
    enum Role {
      NOT_MEMBER = 0; // Не является членом команды - значение по умолчанию
      MEMBER = 1; // Входит в организацию и команды, может получать доступ к Space в соответствии с политикой доступа
      OWNER = 2; // admin + может приглашать пользователей на роль owner
      ADMIN = 3; // Входит в организацию, видит все Space, может задавать политики доступа, может приглашать пользователей на роли member, admin
    }
    
    message Member {
      string org_id = 1;
      string user_id = 2;
      Role role = 3;
    }
    
    message SetRequest {
      string org_id = 1;
      string user_id = 2;
      Role role = 3;
    }
    
    message GetRequest {
      string org_id = 1;
      string user_id = 2;
    }
    
    message GetResponse {
      Role role = 3;
    }
    
    message RemoveRequest {
      string org_id = 1;
      string user_id = 2;
    }
    
    message ListMembersRequest {
      string org_id = 1;
    }
    
    message ListMembersResponse {
      repeated Member members = 1;
    }
    
    message ListOrganizationsRequest {
      string user_id = 1;
    }
    
    message ListOrganizationsResponse {
      repeated Member organizations = 1;
    }
    
    service Members {
      rpc Set(SetRequest) returns(google.protobuf.Empty) {}
      rpc Get(GetRequest) returns(GetResponse) {}
      rpc Remove(RemoveRequest) returns(google.protobuf.Empty) {}
      rpc ListMembers(ListMembersRequest) returns(ListMembersResponse) {}
      rpc ListOrganizations(ListOrganizationsRequest) returns(ListOrganizationsResponse) {}
    }
    
    // Внутренний сервис (часть имплементации паттерна Observer). Используется для установки
    // членства в организации при принятии приглашения в пространство
    message OnCollaboratorSetRequest {
      common.Collaborator collaborator = 1;
    }
    
    message OnCollaboratorSetResponse {
      string delayed_task_id = 1;
    }
    
    service Observer {
      rpc OnCollaboratorSet(OnCollaboratorSetRequest) returns(OnCollaboratorSetResponse) {}
    }