Add 'stop impersonating' link to user avatar dropdown when impersonating

이 아이디어 정말 좋습니다 @John_Lehmann

가끔 누군가를 impersonate(대리 접속)할 때(그다지 자주 하는 일은 아니지만) 깜빡하고 관리자 권한으로 할 수 있는 일들을 계속 시도하다가, 결국 다른 사람의 계정에 로그인되어 있다는 사실을 깨닫곤 합니다.

현재 방식의 또 다른 단점은 사용자 아바타를 클릭해야 한다는 점입니다. 5개의 새로운 알림이 있는 사용자를 impersonate하고 있었는데, 그의 계정을 로그아웃하기 위해 프로필을 클릭하니 그 알림들이 읽음 처리가 되어 더 이상 새 알림이 있다는 (5) 배지가 표시되지 않았습니다. 그가 돌아왔을 때 얼마나 속상할지 모르겠네요! 그래도 이메일 알림을 받아 다시 돌아올 수 있기를 바랍니다!

제가 구축하고 현재 관리 중인 다른 커뮤니티는 Higher Logic 플랫폼을 사용합니다. Higher Logic보다 Discourse를 사용하는 것이 얼마나 더 좋은지 말로 다 표현할 수 없습니다. 하지만 이 이야기를 꺼낸 이상, 그들의 사용자 impersonate 방식은 꽤 마음에 듭니다…

화면 상단에 막대가 있어 impersonate하고 있다는 것을 시각적으로 계속 상기시켜 주며, STOP 버튼을 제공하고 화면 하단에도 STOP을 허용하는 작은 고아 버튼(orphan button)이 있습니다.

두 개의 버튼이 모두 필요하다고 생각하지는 않습니다. 화면 상단의 버튼만으로도 충분합니다.

@John_Lehmann 님이 제안한, 사용자가 게시글을 쓰거나 다른 작업을 하기 전에 사용자 계정을 빠져나와야 한다는 점을 잊지 않도록 눈에 잘 띄는 더 대담하고 도드라진 막대 아이디어를 좋아합니다.

image

아무래도 긴급한 문제는 아닙니다.

이 기능이 있는 플러그인이 있는지, 혹은 비슷한 것이 있는지 확인하려고 meta에 방문했습니다.

12개의 좋아요

오늘 이 기능이 꼭 필요하게 되었습니다. 저는 @system 계정으로 카테고리 가이드라인이나 다른 고정된 주제나 그 안의 답변을 게시할 때 impersonate 기능을 사용합니다. 현재는 제 계정으로 게시한 뒤 소유권을 @system으로 변경하는 방식으로 처리하고 있지만, 누군가 해당 주제를 감시(watching) 상태로 설정해 두었다면 그것이 저였다는 것을 알게 될 것입니다. 이러한 게시물을 올릴 때 반드시 익명성을 유지하려는 것은 아니지만, 적어도 제 이름으로 표시되지는 않기를 바랍니다. 이런 용도로만 사용할 대체 계정을 만들 수도 있지만, 그럴 때마다 프라이빗 창에서 로그인해야 하므로 사용자 경험(UX) 측면에서 좋지 않습니다.

2개의 좋아요

또한 임페르소네이션을 마친 후에는 내 사용자 계정으로 되돌아갈 수 있기를 바랍니다. WordPress에서 이 기능을 구현할 때 사용했던 모든 방법에서는 이를 지원하고 있습니다.

3개의 좋아요

동의합니다. 필수 사항은 아니지만 큰 변화이고, 상단에 로그아웃 버튼이 있는 배너를 추가하는 것이 그렇게 복잡하다고 생각하지 않습니다. 플러그인을 만들 수도 있겠지만, 코어에 간단한 수정을 하는 것이 더 나을 것 같습니다.

@John_Lehmann의 아이디어에 +1.

4개의 좋아요

이 기능이 전반적으로 재검토가 필요한 건 아닌지 궁금합니다.

Impersonate(대리 로그인)는 원래 매우 강력하지만 일종의 해킹 방식으로 구현된 도구였습니다.

해킹 방식이 아닌 구현 방식을 채택하면 훨씬 덜 불쾌감을 줄 수 있고, Discourse의 기본 기능으로 정당화하기도 훨씬 쉬울 것입니다.

  • 사용자가 다른 사용자로 임페르소네이트(대리 로그인)할 경우, 특별한 숨겨진 사이트 설정이 활성화되지 않는 한 "읽기 전용"视图만 제공됩니다.
  • @John_Lehmann님이 제안한 것처럼 상단에 배너를 표시합니다.
  • 임페르소네이트 시 더 많은 의식(예: 큰 힘에는 큰 책임이 따른다)을 요구합니다.

전체적으로 이 기능은 디버깅에 매우 유용하지만, 다른 사람을 대신하여 행동하는 것은 매우 위험합니다.

처음으로 @codinghorror님, 현재 “impersonate” 기능을 Discourse 사이트에서 비활성화되어 있으며, 활성화하려면 숨겨진 사이트 설정을 변경해야 하는 기능으로 만드는 것이 합리적인지 궁금합니다. 확신은 없습니다.

12개의 좋아요

@sam 동의합니다. 태그를 붙인 것은 죄송합니다. 하지만 저는 수년 동안 이 문제를 아무 때나 언급해 왔고, 일부 사용자에게는 매우 중요한 사안입니다. ‘인용(Impersonate)’ 기능은 특히 Discourse를 내부(업무) 소통 및 협업 플랫폼으로 사용할 때 사용자 프라이버시를 심각한 우려로 만드는 유일한 기능입니다.

과거에 이 기능을 사용했고, 현재는 우리 노동조합을 위해 Discourse 인스턴스를 다시 구축하고 있습니다. 단, 조합원 전체를 위한 것이 아니라 선출된 임원진 전용입니다. 이전 인스턴스를 관리하던 시절 저는 대부분의 일반 조합원처럼 평범한 대표였습니다. 지금은 단체의 리더십/관리 직위에 있으므로, 제 조직 내 역할이 모든 카테고리의 모든 자료를 볼 수 있는 Discourse 관리자의 권한과 충돌하지는 않습니다. 하지만 당시에는 상황이 달랐습니다…

우리 집행부는 관리자가 (집행부) 권한이 있는 카테고리 내에서의 토론을 볼 수 있는 능력을 가지고 있는 것에 대해 심각한 우려를 표했습니다. 저는 CSS를 사용하여(관리자에게도 숨김) 비집행부 구성원에게 해당 카테고리를 숨기는 해킹적인 방식으로 해결했고, 특정 테마 구성 요소인 "user privacy"를 제가 비활성화했는지 확인할 수 있도록 로그를 확인하는 방법을 안내했습니다.

또 다른 주요 우려 사항은, 계약된 IT 담당자가 아닌 Discourse 관리자(다시 강조합니다)인 활동적인 대표가 다른 사용자를 사칭하여 개인 메시지를 읽고, 누군가의 개인 설정과 자재(messy text: goods)를 만질 수 있다는 점이었습니다.

제가 할 수 있는 말은, 관리자가 전역적인 보기 권한을 갖지 않고, 대신 사이트 관리 권한에 초점을 맞추며 기본적으로 자신이 할당된 콘텐츠만 볼 수 있도록 하는 방식이 있다면 좋겠다는 것입니다. 또한, 관리 스태프가 이러한 작업을 수행할 때 모든 사용자에게 명확하게 알리는 알림 시스템이 있다면 좋겠습니다.

이를 'Discourse Teams’와 유사한 이름으로, 예를 들어 'Discourse Professional’이라 부를 수 있습니다. 인터넷 포럼보다는 비즈니스 지식, 협업 및 소통 플랫폼에 더 초점을 맞춘 것입니다. 관리자가 모든 것을 볼 수 있는 능력이 제한되거나 축소 또는 제거된다면, Discourse는 이 역할에서 빛을 발할 것입니다. (가장 중심적인 문제는 프로필/메시지 탭을 통한 사칭과 메시지 읽기입니다.)

6개의 좋아요

개인적으로 특정 사용자를 사칭하고 싶은 욕구는 크지 않은 것 같습니다. 오히려 역할/그룹 멤버/신뢰 등급을 사칭하고 싶은 마음이 더 큽니다.

어느 날 이 기능을 발견했는데, 관리자로서는 수많은 비공개 카테고리가 보이지만, T0, T1 등의 등급을 가진 사용자에게 토픽 목록이 어떻게 보이는지 확인하고 싶었기 때문입니다.

아마도 이 기능이 이미 존재하고 사칭 기능과 별개일 수도 있겠지만, 이 외에도 사람들이 사칭 기능을 어떤 목적으로 사용하는지 잘 모르겠습니다.

이 기능이 대부분의 경우에 충분할까요?

7개의 좋아요

The Impersonated user should be notified that they are being Impersonated 에서 이 주제에 대해 많은 논의가 이루어지고 있습니다. 저는 그곳에서 도출된 결론에 여전히 동의합니다. 요약하자면, 이는 끝없는 늪(rabbit hole)이며, 관리자는 모든 것을 할 수 있으므로 관리자를 신뢰하지 않는다면 애초에 관리자를 두지 않는 것이 좋습니다.

대신, 임의 사용자(impersonation)에 일부 마찰(friction)을 추가하는 다른 접근 방식이 있을 수 있습니다.

  • “정말 확인” 팝업을 추가하여, 이 동작이 기록된다는 점을 상기시키고, 단순히 무언가를 테스트하려는 경우 테스트용 사용자를 생성한 후 완료 시 삭제하는 것이 더 적합할 수 있음을 안내합니다. 일종의 적시에 교육(just in time education)이라 할 수 있습니다.
  • 백업 다운로드와 유사하게, 임의 사용자 링크를 이메일로 전송합니다(이 경우 별도의 창에서 로그인할 수 있는 추가적인 이점이 있을 수 있음)

임의 사용자 기능을 비활성화할 수 있는 관리자 설정도 좋은 아이디어라고 생각합니다. 기본값은 비활성화 상태로 두면 됩니다. 숨겨진 설정일 필요는 없지만, 백업 복원과 마찬가지로 이러한 설정이 존재하면 누군가가 다른 사용자를 임의로 사용하는 습관이 들거나 실수로 그렇게 하는 위험을 줄일 수 있습니다.

3개의 좋아요

시스템을 통제하고 있다면 데이터에 접근할 수 있습니다. 신뢰할 수 있는 관리자가 필요하며, 사용자에게 프라이버시를 기대할 수 없다는 점을 교육해야 합니다. 이는 암호화를 전체적으로 적용하더라도 커뮤니케이션 및 협업에 사용되는 모든 소프트웨어에 해당되는 사실입니다.

카테고리 및 개인 메시지(PM)에 대한 접근을 실제로 감사(audit)할 수도 없습니다. 루트(root) 접근 권한을 가진 악의적인 관리자는 파일시스템에서 백업을 가져와 데이터베이스에서 직접 읽을 수 있기 때문입니다.

3개의 좋아요

좋은 지적입니다. 사칭이 유용할 수 있는 몇 가지 경우가 여전히 있을 수 있지만, 이 기능이 도입되면 사용자를 사칭해야 하는 필요성이 거의 완전히 사라질 것입니다.

10개의 좋아요

사용자가 기이한 문제를 겪는데, 관리자나 해당 사용자의 가상 계정이 이를 찾지 못하거나, 다른 사용자 중 극소수만 보고하는 경우입니다.

프라이버시는 상대적인 문제입니다. 대부분의 포럼에서는 사용자의 개인 정보가 전혀 존재하지 않는 상황이라고 주장합니다. 따라서 역할 대체는 최소한 하나의 옵션으로 제공되어야 합니다. 해당 상황이 발생했을 때 자동으로 알림을 보내는 것은 나쁜 아이디어가 아니며, 실제로는 꽤 자주 불필요할 수 있지만, 더 개방적인 해결책입니다.

3개의 좋아요

기록을 위해 말씀드리자면, 신뢰 수준 사칭은 여기에서 제안되었습니다:

5개의 좋아요

저는 괜찮다고 생각합니다. 저는 이 기능을 항상 개발자 디버깅용 기능으로 여겼지, 진정한 의미의 “기능”이라고 생각하지 않았습니다.

6개의 좋아요

다른 사용자를 흉내 내고 있는 상태에서 작업이 끝나면, 로그아웃을 한 뒤 다시 로그인하고, 2단계 인증을 설정해 두었다면 이를 완료해야 합니다.

대신, 사용자 메뉴에 "흉내 내기 중단"이라는 버튼을 두면, 이 버튼을 클릭했을 때 바로 본인의 계정으로 로그인된 상태로 전환됩니다.

개인적으로 이 기능이 흉내 내기 작업 시 매우 유용할 것이라고 생각합니다.

2개의 좋아요

방금 로그아웃하지 않고도 사용자를 사칭할 수 있는 실험적 기능을 병합했습니다.

사용하려면 숨겨진 사이트 설정인 experimental_impersonation을 활성화하고, 문제가 발생하면 여기에 보고해 주세요. :folded_hands:

24개의 좋아요

고대인들이 원했던 것을 밝혀내줘서 고마워! :hugs: :grinning_face_with_smiling_eyes:

9개의 좋아요

완벽해요! 앞으로 이걸 꾸준히 사용할 거예요.

3개의 좋아요

오, 이걸 알려주셔서 감사합니다!

이 기능이 안정화되면 impersonation_enabled_groups를 활용하여 반대로도 적용할 수 있습니다. 즉, 일반 멤버로 참여하다가 필요할 때만 관리자 권한으로 전환하는 방식이죠… 흔히 말하는 sudo 모드 같은 겁니다. 이렇게 하면 필요에 따라 페르소나를 바꿀 수 있는 방법도 생길 수 있습니다. 예를 들어, Discourse Staff Alias 에서는 가짜 위장(impersonation)을 단일 팀 별칭으로 제한하고 있지만, 위장 기능을 확장하면 다양한 기준에 따라 페르소나를 변경할 수 있게 될 것입니다…

예를 들어, @well-being.team 멤버는 개인적인 불만을 피하기 위해 그룹 별칭으로 게시물을 작성할 수 있고, 저자는 인터랙티브 스토리를 쓰기 위해 @narrator나 @characterN으로 글을 쓸 수 있으며, 선생님은 학생의 관점을 이해하기 위해 학생으로 위장할 수 있습니다… 모두 사용자 정의 가능한 그룹에 따라 적용됩니다. :blush:

제가 생각하기에 중요한 기능 중 하나는 위장 세션이 적절히 기록되고, 위장된 사용자가 그 사실을 알 수 있어야 한다는 점입니다.

5개의 좋아요

이 experimental_impersonation 기능을 직접 테스트해 봤는데 꽤 마음에 듭니다! 설명된 대로 작동하며, 로그아웃을 한 뒤 다시 제 계정으로 로그인하는 번거로움을 겪지 않아도 되는 점이 좋습니다.

@moin 님은 🇩🇪 Fehler in der Deutschen Übersetzung? Hier melden! - #108 by Moin 에서 “impersonate”(대리 실행)와 “stop impersonating”(대리 실행 중지)가 독일어로 잘 번역되지 않는다고 지적했습니다. 사용자가 수행하는 작업의 전체적인 의미를 포착할 수 있는 적절한 단어를 찾기 어렵습니다. 다른 언어에서도 같은 문제가 있을 수 있지만, 아직 확인해 보지는 않았습니다.

사용자 관리 페이지에서 @user_to_impersonate로 전환처럼, 그리고 대리 실행을 중지하는 버튼에는 @user_who_impersonated로 전환처럼 더 직관적인 용어로 변경하는 것이 어떨까 합니다 (여기서 '전환’이라는 표현은 의도된 비유입니다). 이렇게 하면 번역이 훨씬 쉬워질 뿐만 아니라, 영어를 모국어로 하지 않는 사용자들에게도 이해하기가 더 쉬워질 것입니다.

오늘 테스트 중 다른 문제점들도 몇 가지 발견했습니다:

  • 삭제나 병합 기능과 유사하게, 대리 실행을 시작할 때 확인 모달(Modal)이 표시되어야 한다고 생각합니다. 이는 버튼을 실수로 누를 경우 되돌아갈 수 있게 해 줄 뿐만 아니라, 관리자로서 사용자가 곧 수행할 작업이 무엇인지, 해당 작업이 기록될 것인지를 알 수 있으며, 다시 로그인하지 않고도 원래 계정으로 전환할 수 있다는 점을 교육하는 데 도움이 됩니다.
  • 대리 실행 상태와 원래 계정으로의 전환은 스태프 액션 로그에 기록되지만, 대리 실행 중에 수행된 실제 작업들은 기록되지 않습니다. 이 기능이 오용될 가능성이 높다는 점을 고려하면(실수든 의도적이든), 이 부분도 기록하는 것이 합리적이라고 생각합니다.
  • 오래된 문제이지만, 사용자가 대리 실행되면 사용자 목록과 사용자 관리 화면에서 해당 사용자의 '마지막 접속일’이 갱신되는 문제가 여전히 남아 있습니다. (설치되어 있다면) “현재 접속 중” 플러그인에서도 마찬가지일 것입니다.
8개의 좋아요

switch라는 아이디어가 마음에 드는 이유는, 핀란드어에서 적절한 번역어를 찾기가 매우 어렵기 때문입니다. 관련 단어가 하나둘 있긴 하지만, 어떤 단어를 써도 어색합니다. 그냥 switch를 그대로 쓰는 게 훨씬 자연스럽습니다.

1개의 좋아요