You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
+[4.6.1 GET Components Service](#461-get-components-service)
64
75
+[4.6.2 PUT Components Service](#462-put-components-service)
@@ -153,7 +164,65 @@ DateTime values in this API are supposed to be in ISO 8601 compliant `YYYY-MM-DD
153
164
154
165
For example, `2016-04-28-16:31.27+2:00` would represent _Thursday, April 28th, 2016, 16:31 (270ms) with a time zone offset of +2 hours relative to UTC._
155
166
156
-
## 1.8 Additional Response Object Properties
167
+
## 1.8 Authorization
168
+
169
+
API implementors can optionally choose to restrict the actions a user is allowed to perform on the BCF entities
170
+
via the API. The global default authorizations for all entities are expressed in the project extensions schema and can
171
+
be locally overridden in the entities themselves.
172
+
173
+
### 1.8.1 Per-Entity Authorization
174
+
175
+
Whenever a user requests an update-able entity with the request parameter `includeAuthorization` equal to `true` the
176
+
server should include an `authorization` field in the entity containing any local variations from the global
177
+
authorization defaults for that entity. Using this information clients can decide whether to, for example, include an
178
+
"Edit" button in the UI displaying the entity depending on the actions permitted for the user.
179
+
180
+
### 1.8.2 Determining Authorized Entity Actions
181
+
182
+
The client can calculate the available set of actions for a particular entity by taking the project-wide defaults from
183
+
the project extensions, then replacing any keys defined in the entity's `authorization` map with the values specified
184
+
locally. The meaning of each of the authorization keys is outlined in outlined in
185
+
[4.1.5 Expressing User Authorization through Project Extensions](#415-expressing-user-authorization-through-project-extensions).
186
+
187
+
**Example Scenario (Topic)**
188
+
189
+
_In the Project Extensions_
190
+
191
+
{
192
+
"topic_actions": [],
193
+
"topic_status": [
194
+
"open",
195
+
"closed",
196
+
"confirmed"
197
+
]
198
+
}
199
+
200
+
Indicating that by default:
201
+
202
+
* no modifications can be made to Topics
203
+
* Topics can be placed in `open`, `closed` or `confirmed` status
204
+
205
+
_In the Topic_
206
+
207
+
{
208
+
"authorization": {
209
+
"topic_actions": [
210
+
"update",
211
+
"createComment",
212
+
"createViewpoint"
213
+
],
214
+
"topic_status": [
215
+
"closed"
216
+
]
217
+
}
218
+
}
219
+
220
+
Indicating that for this topic, the current user can:
221
+
222
+
* update the Topic, or add comments or viewpoints
223
+
* place the Topic into `closed` status
224
+
225
+
## 1.9 Additional Response Object Properties
157
226
158
227
All API response Json objects may contain additional properties that are not covered by this specification.
159
228
This is to allow server implementations freedom to add additional functionality. Clients shall ignore those properties.
@@ -421,10 +490,19 @@ Retrieve a **collection** of projects where the currently logged on user has acc
@@ -524,9 +614,78 @@ Project extensions are used to define possible values that can be used in topics
524
614
"Architect@example.com",
525
615
"BIM-Manager@example.com",
526
616
"bob_heater@example.com"
617
+
],
618
+
"project_actions": [
619
+
"update",
620
+
"createTopic",
621
+
"createDocument",
622
+
"updateProjectExtensions"
623
+
],
624
+
"topic_actions": [
625
+
"update",
626
+
"updateBimSnippet",
627
+
"updateRelatedTopics",
628
+
"updateDocumentServices",
629
+
"updateFiles",
630
+
"createComment",
631
+
"createViewpoint"
632
+
],
633
+
"comment_actions": [
634
+
"update"
635
+
],
636
+
"viewpoint_actions": [
637
+
"update",
638
+
"updateBitmap",
639
+
"updateSnapshot",
640
+
"updateComponent"
527
641
]
528
642
}
529
643
644
+
### 4.1.5 Expressing User Authorization Through Project Extensions
645
+
646
+
Global default authorizations for the requesting user can be expressed in the project schema. The actions authorized
647
+
here will apply to any entities that do not override them locally. The complete set of options for the BCF entities are
648
+
listed below.
649
+
650
+
#### 4.1.5.1 Project
651
+
652
+
The 'project_actions' entry in the project extensions defines what actions are allowed to be performed
653
+
at the project level. The available actions include:
654
+
655
+
**update* - The ability to update the project details (see [4.1.3 PUT Project Service](#413-put-project-service))
656
+
**createTopic* - The ability to create a new topic (see [4.2.2 POST Topic Service](#422-post-topic-service))
657
+
**createDocument* - The ability to create a new document (see [4.9.2 POST Document Service](#492-post-document-service))
658
+
659
+
#### 4.1.5.2 Topic
660
+
661
+
The 'topic_actions' entry in the project extensions defines what actions are allowed to be performed at the topic
662
+
level by default (i.e. unless overridden by specific topics) The available actions include:
663
+
664
+
**update* - The ability to update the topic (see [4.2.4 PUT Topic Service](#424-put-topic-service))
665
+
**updateBimSnippet* - The ability to update the BIM snippet for topics (see [4.2.7 PUT Topic BIM Snippet Service](#427-put-topic-bim-snippet-service))
666
+
**updateRelatedTopics* - The ability to update the collection of related topics (see [4.7.2 PUT Related Topics Service](#472-put-related-topics-service))
667
+
**updateDocumentReferences* - The ability to update the collection of document references (see [4.8.3 PUT Document Reference Service](#483-put-document-reference-service))
668
+
**updateFiles* - The ability to update the file header (see [4.3.2 PUT Files (Header) Service](#432-put-files-header-service))
669
+
**createComment* - The ability to create a comment (see [4.4.2 POST Comment Service](#442-post-comment-service))
670
+
**createViewpoint* - The ability to create a new viewpoint (see [4.5.2 POST Viewpoint Service](#452-post-viewpoint-service))
671
+
672
+
#### 4.1.5.3 Comment
673
+
674
+
The 'comment_actions' entry in the project extensions defines what actions are allowed to be performed at the comment level by
675
+
default (i.e unless overridden by specific comments). The available actions include:
676
+
677
+
**update* - The ability to update the comment (see [4.4.4 PUT Comment Service](#444-put-comment-service))
678
+
679
+
#### 4.1.5.4 Viewpoint
680
+
681
+
The 'viewpoint_actions' entry in the project extensions defines what actions are allowed to be performed at the viewpoint level by
682
+
default (i.e. unless overridden by specific viewpoints). The available actions include:
683
+
684
+
**update* - The ability to update the viewpoint (see [4.5.4 PUT Viewpoint Service](#454-put-viewpoint-service))
685
+
**updateBitmap* - The ability to update the bitmap for the viewpoint (see [4.5.8 PUT Viewpoint Bitmap Service](#458-put-viewpoint-bitmap-service))
686
+
**updateSnapshot* - The ability to update the snapshot for the viewpoint (see [4.5.6 PUT Viewpoint Snapshot Service](#456-put-viewpoint-snapshot-service))
687
+
**updateComponent* - The ability to update the component for the viewpoint (see [4.6.2 PUT Components Service](#462-put-components-service))
@@ -797,6 +962,12 @@ Retrieves a topics BIM-Snippet as binary file.
797
962
798
963
Puts a new BIM Snippet binary file to a topic. If this is used, the parent topics BIM Snippet property `is_external` must be set to `false` and the `reference` must be the file name with extension.
799
964
965
+
### 4.2.8 Determining Allowed Topic Modifications
966
+
967
+
The global default Topic authorizations are expressed in the project schema and when Topic(s) are requested with the
968
+
parameter "includeAuthorization" equal to "true" Topics will include an "authorization" field containing any local
969
+
overrides for each Topic.
970
+
800
971
## 4.3 File Services
801
972
802
973
### 4.3.1 GET Files (Header) Service
@@ -910,7 +1081,12 @@ Get comments that are closed and created after December 5 2015. Sort the result
0 commit comments