Skip to content

Commit af0b749

Browse files
author
epriestley
committed
Fix many lies in the "User Roles" document
Summary: Fixes T3047. Update this document and remove some lies ("menu bar is read in admin interfaces"!!!!). Test Plan: - Read text. - Searched for "System Agent" in the UI and replaced it with "bot" or "bot/script" or similar. Reviewers: chad, btrahan Reviewed By: btrahan Subscribers: epriestley Maniphest Tasks: T3047 Differential Revision: https://secure.phabricator.com/D8675
1 parent 3294649 commit af0b749

File tree

6 files changed

+54
-45
lines changed

6 files changed

+54
-45
lines changed

scripts/user/account_admin.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@
123123

124124
$is_system_agent = $user->getIsSystemAgent();
125125
$set_system_agent = phutil_console_confirm(
126-
'Should this user be a system agent?',
126+
'Is this user a bot/script?',
127127
$default_no = !$is_system_agent);
128128

129129
$verify_email = null;
@@ -163,7 +163,7 @@
163163

164164
printf(
165165
$tpl,
166-
'System Agent',
166+
'Bot/Script',
167167
$original->getIsSystemAgent() ? 'Y' : 'N',
168168
$set_system_agent ? 'Y' : 'N');
169169

src/applications/people/controller/PhabricatorPeopleListController.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ public function renderResultsList(
8181
}
8282

8383
if ($user->getIsSystemAgent()) {
84-
$item->addIcon('computer', pht('System Agent'));
84+
$item->addIcon('computer', pht('Bot/Script'));
8585
}
8686

8787
if ($viewer->getIsAdmin()) {

src/applications/people/query/PhabricatorPeopleSearchEngine.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ public function buildSearchForm(
108108
->addCheckbox(
109109
'isAdmin',
110110
1,
111-
pht('Show only Administrators.'),
111+
pht('Show only administrators.'),
112112
$is_admin)
113113
->addCheckbox(
114114
'isDisabled',
@@ -118,7 +118,7 @@ public function buildSearchForm(
118118
->addCheckbox(
119119
'isSystemAgent',
120120
1,
121-
pht('Show only System Agents.'),
121+
pht('Show only bots.'),
122122
$is_system_agent)
123123
->addCheckbox(
124124
'needsApproval',

src/applications/typeahead/controller/PhabricatorTypeaheadCommonDatasourceController.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,7 @@ public function processRequest() {
185185
if ($user->getIsDisabled()) {
186186
$closed = pht('Disabled');
187187
} else if ($user->getIsSystemAgent()) {
188-
$closed = pht('System Agent');
188+
$closed = pht('Bot/Script');
189189
}
190190

191191
$result = id(new PhabricatorTypeaheadResult())

src/docs/tech/chatbot.diviner

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ servers and in different languages.
6363
To allow the bot to access Conduit, you need to create a user that it can login
6464
with. To do this, login to Phabricator as an administrator and go to
6565
##People -> Create New Account##. Create a new account and flag them as a
66-
"System Agent". Then in your configuration file, set these parameters:
66+
"Bot/Script". Then in your configuration file, set these parameters:
6767

6868
- ##conduit.uri## The URI for your Phabricator install, like
6969
##http://phabricator.example.com/##

src/docs/user/userguide/users.diviner

Lines changed: 47 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,50 +1,59 @@
11
@title User Guide: Account Roles
22
@group userguide
33

4-
Describes account roles like "Administrator", "Disabled" and "System Agent".
4+
Describes account roles like "Administrator", "Disabled" and "Bot".
55

66
= Overview =
77

88
When you create a user account, you can set roles like "Administrator",
9-
"Disabled" or "System Agent". This document explains what these roles mean.
9+
"Disabled" or "Bot". This document explains what these roles mean.
1010

1111
= Administrators =
1212

13-
**Administrators** are normal users with extra capabilities. They have access
14-
to some tools and workflows that normal users don't, which they can use to
15-
debug and configure Phabricator. For example, they have access to:
13+
**Administrators** are normal users with a few extra capabilities. Their primary
14+
role is to keep things running smoothly, and they are not all-powerful. In
15+
Phabricator, administrators are more like //janitors//.
1616

17-
- **Account Management**: The primary function of administrators is adding,
18-
disabling, and managing user accounts. Administrators can create and edit
19-
accounts and view access logs.
20-
- **Repositories**: Administrators can configure repositories. This isn't
21-
normally available because it is specialized and complicated to configure.
22-
23-
Administrators have a few other minor capabilities in other tools. When you are
24-
in an administrative interface, the menu bar is red.
17+
Administrators can create, delete, enable, disable, and approve user accounts.
18+
Various applications have a few other capabilities which are reserved for
19+
administrators by default, but these can be changed to provide access to more
20+
or fewer users.
2521

2622
Administrators are **not** in complete control of the system. Administrators
27-
**can not** login as other users or act on behalf of other users. Administrators
28-
**can not** bypass object privacy policies.
23+
**can not** login as other users or act on behalf of other users. They can not
24+
destroy data or make changes without leaving an audit trail. Administrators also
25+
can not bypass object privacy policies.
26+
27+
Limiting the power of administrators means that administrators can't abuse
28+
their power (they have very little power to abuse), a malicious administrator
29+
can't do much damage, and an attacker who compromises an administrator account
30+
is limited in what they can accomplish.
2931

3032
NOTE: Administrators currently //can// act on behalf of other users via Conduit.
3133
This will be locked down at some point.
3234

33-
= System Agents =
35+
= Bot/Script Accounts =
36+
37+
**Bot/Script** accounts are accounts for bots and scripts which need to
38+
interface with the system, but are not regular users. Generally, when you write
39+
scripts that use Conduit (like the IRC bot), you should create a Bot/Script
40+
account for them.
41+
42+
These accounts were previously called "System Agents", but were renamed to make
43+
things more clear.
3444

35-
**System Agents** are accounts for bots and scripts which need to interface
36-
with the system but are not regular users. Generally, when you write scripts
37-
that use Conduit (like the IRC bot), you should create a System Agent account
38-
for them. System agents:
45+
The **Bot/Script** role for an account can not be changed after the account is
46+
created. This prevents administrators form changing a normal user into a bot,
47+
retrieving their Conduit certificate, and then changing them back (which
48+
would allow administrators to gain other users' credentials).
3949

40-
- **can not login** (they //can// access API methods via Conduit);
41-
- **can not review diffs or own tasks**;
42-
- **do not appear in CC tokenzers**.
50+
**Bot/Script** accounts differ from normal accounts in that:
4351

44-
Currently, the **System Agent** role for an account can not be changed after the
45-
account is created. This prevents administrators form changing a normal user
46-
into a system agent, retrieving their Conduit certificate, and then changing
47-
them back (which would allow administrators to gain other users' credentials).
52+
- administrators can access them, edit settings, and retrieve credentials;
53+
- they do not receive email;
54+
- they appear with lower precedence in the UI when selecting users, with
55+
a "Bot" note (because i t usually does not make sense to, for example,
56+
assign a task to a bot).
4857

4958
= Disabled Users =
5059

@@ -53,14 +62,14 @@ someone leaves a project (e.g., leaves your company, or their internship or
5362
contract ends) you should disable their account to terminate their access to the
5463
system. Disabled users:
5564

56-
- **can not login**;
57-
- **can not access Conduit**;
58-
- **do not receive email**;
59-
- **do not appear in owner/reviewer/CC tokenizers**.
60-
61-
Users can only be disabled (not deleted) because there are a number of workflows
62-
that don't make sense if their account is completely deleted, like: finding old
63-
revisions or tasks that they were responsible for (so you can get someone else
64-
to take care of them); identifying them as the author of their changes; and
65-
restoring all their data if they rejoin the project (e.g., they are later
66-
re-hired, maybe as a full time employee after an internship).
65+
- can not login;
66+
- can not access Conduit;
67+
- do not receive email; and
68+
- appear with lower precedence in the UI when selecting users, with a
69+
"Disabled" note (because it usually does not make sense to, for example,
70+
assign a task to a disabled user).
71+
72+
While users can also be deleted, it is strongly recommended that you disable
73+
them instead if they interacted with any objects in the system. If you delete a
74+
user entirely, you won't be able to find things they used to own or restore
75+
their data later if they rejoin the project.

0 commit comments

Comments
 (0)