`

【转】Controlling Application - a_controlling_app

阅读更多

This might not be dirty little secrets, but I was recently stumped for a while trying to debug a problem in a custom application built by someone else. Let me describe the symptoms first:

  1. ACL assigned to object gave me (group) DELETE permissions on the object
  2. The attributes for the object were displayed as read-only
  3. When viewing the permissions on the object, Webtop said that I only had READ permissions
  4. When the extended privilege was set to superuser, I was able to edit the attributes – therefore, the data dictionary was set to read-only

After some investigation, I noticed that the a_controlling_app attribute was set to some custom value. I have seen this value being set before for Webpublisher and DCM application. I remember that this attribute allowed you to map control of an object with a specific application. In other words, you cant modify an object instance unless you are using the application that is specified in the a_controlling_app attribute. That makes sense, but where is the mapping defined?

Well, I had to go back to Content Server Fundamentals to find the answer:

“To identify to the system which objects it can modify, an application sets the application_code attribute in either the apiconfig or sessionconfig object when the application is started. (Setting the attribute in the apiconfig, rather than the session config, provides performance benefits.) The application_code attribute is a repeating attribute. On start-up, an application can set application_code to multiple application codes if users are allowed to modify objects controlled by multiple applications through that particular application.”

The issue here was that the client was using Records Management Administrator (RMA) to try to update the content (not the application defined by the a_controlling_app attribute). But why the READ permissions?

Again going back to Fundamentals, the content server will perform the following checks to grant the user his/her proper privilege:

  1. The content server checks the a_controlling_app attribute of the SysObject.
  2. If the attribute is blank, the user will be granted access based on the ACL; given that Docbase security is turned on.
  3. If the attribute contains a value, it will be compared with the values in the application_code attribute of apiconfig or sessionconfig objects.
  4. If there is a match, the ACL on the object will control the access.
  5. If no matching code is found, the user will be granted access as defined in the default_app_permit attribute of the docbase_config. The default value of this attribute is READ. So, if the user uses a different application to access the SysObject, he will get READ access. Please, note that the user will get the most restrictive access to the object whichever is more: default_app_permit or ACL

Ah hah, now the secret is known. To solve this problem, I can either

1) set the a_controlling_app attribute to null (or dmc_rm) or

2) set default_app_permit to something higher – DELETE.

I recommend Option 1.  Option 2 sort of defeats the idea of having a controlling application.

 

[转自http://johnnygee.wordpress.com/2007/11/19/controlling-application-dirty-little-secrets/]

分享到:
评论

相关推荐

    EurekaLog_7.5.0.0_Enterprise

    18)..Fixed: Possible "Unit XYZ was compiled with a different version of ABC" when using packages 19)..Fixed: FastMM shared MM compatibility 20)..Fixed: Minor bugs in stack tracing (which usually ...

    Professional Android 4 Application Development 源代码

    Controlling Device Vibration Working with Animations Enhancing Your Views Advanced Drawable Resources Copy, Paste, and the Clipboard Chapter 12: Hardware Sensors Using Sensors and the Sensor Manager ...

    Hands-On Internet of Things with Blynk [True PDF]

    Blynk, known as the most user-friendly IoT platform, provides a way to build mobile applications in minutes. With the Blynk drag-n-drop mobile app builder, anyone can ...Controlling a Robot with Blynk

    iPhone Cool Projects

    Next up, Canis Lupus (aka Matthew Rosenfeld) describes the development of the Keynote-controlling application Stage Hand, how the user interface has evolved, and the lessons he has learned from that ...

    电脑鼠仿真软件

    for controlling a simulated mouse running in a simulated maze. You can type your mouse driver code directly in a textbox on the web page. There are a large number of mazes to test your mouse ...

    iPhone Cool Projects pdf

    Next up, Canis Lupus (aka Matthew Rosenfeld) describes the development of the Keynote-controlling application Stage Hand, how the user interface has evolved, and the lessons he has learned from that ...

    C# 7.1 and .NET Core 2.0 – Modern Cross-Platform Development – Third Edition

    4: CONTROLLING THE FLOW AND CONVERTING TYPES 5: WRITING, DEBUGGING, AND TESTING FUNCTIONS 6: BUILDING YOUR OWN TYPES WITH OBJECT-ORIENTED PROGRAMMING 7: IMPLEMENTING INTERFACES AND INHERITING CLASSES ...

    Beginning Python (2005).pdf

    Try It Out: Writing a Multithreaded pyGTK App 219 Widget Packing 222 Glade: a GUI Builder for pyGTK 223 GUI Builders for Other GUI Frameworks 224 Using libGlade with Python 225 A Glade Walk...

    Android代码-Sensors2OSC

    Typical use case is controlling a music application from your phone or tablet. Download To build the app yourself, install the Android SDK and Gradle. After installation run gradle.bat on Windows ...

    VclZip pro v3.10.1

    - Properties for controlling which files are zipped... - IncludeHiddenFiles - default False; - IncludeSysFiles: - default False; - IncludeReadOnlyFiles: - default True; - IncludeArchiveFiles: - ...

    Visual C++ 编程资源大全(英文源码 其它)

    An app to use with your AutoRun enabled CD's(413KB)<END><br>53,ezview.zip A shareware image viewer application(36KB)<END><br>54,LogTrace.zip A Class for Creating a Trace Log(153KB)<END><br>55,...

    VCLZip Pro v3.03

    You can also call it from your own OnGetNextDisk event if you wish to add some processing to the default behavior.- Properties for controlling which files are zipped... - IncludeHiddenFiles - default...

    C# 7 and .NET Core: Modern Cross-Platform Development - Second Edition

    interface for a graphical app for the Universal Windows Platform (UWP). This app can then run on Windows 10, Windows 10 Mobile, Xbox One, and even HoloLens. Chapter 14, Building Web Applications Using...

    React and React Native [Kindle Edition]

    React and React Native by Adam Boduch English | 8 Mar. 2017 | ASIN: B01MQ1GHCS | 604 Pages | AZW3 | 7.22 MB Key Features Build React and React Native applications using ...Building a Relay React App

    polycom宝利通视频会议软件3.9 2018

    “GUEST” means a third party conference call participant invited to a conference call by a USER and who does not fit the definition of USER. GUESTS may not create or manage meetings on behalf of your...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

     删除HKEY_LOCAL_MACHINE/SYSETM/CurrentControlSet/Services/Eventlog/application中所有以oracle开头的键。  删除HKEY_CLASSES_ROOT目录下所有以Ora、Oracle、Orcl或EnumOra为前缀的键。  删除HKEY_CURRENT_...

    Microsoft Visual C# 2013 Step by Step,最新资料

    CHAPTER 27 Accessing a remote database from a Windows Store app 721 Index 763 Contents at a glance Contents ,ⅩX PART INTRODUCING MICROSOFT VISUAL C# AND MICROSOFT VISUAL STUDIO 2013 Chapter 1 ...

Global site tag (gtag.js) - Google Analytics