The present invention relates to computer software, and more particularly, to limiting access to the content and controls available in a computer user interface.
In order to enable humans to interact with computing devices, such as computers, personal digital assistants (PDAs), cellular telephones, etc., computer system designers often provide a graphical user interface (GUI) consisting of at least one electronic display and one or more input devices. More specifically, a typical configuration is comprised of, but not limited to, one or more electronic displays and a keyboard and mouse, or other electronic pointing device for interacting with the display(s).
Computer-generated information is represented on the display(s) as text, graphics, animation, video, or other visual imagery. This information representation is also referred to as “content.” Computer controls are represented on the display(s) as images of buttons, dropdown menus, and the like, well known to those skilled in the art. The user interacts with the computer by viewing the content and using the information represented by the content to make a decision to invoke one or more computer controls by using an input device to select and activate a selected control.
Software modules that may use a graphical user interface (GUI) include, but are not limited to, applications, system tools, networked applications, and Web browsers, running on desktop and laptop computers. In addition to computers, PDAs, and cellular telephones mentioned above, other computing devices that may include a graphical user interface include, but are not limited to, electronic information kiosks, in-vehicle navigation devices, printers, copiers, photographic and video cameras, and other electronic imaging or image capture devices.
Often not all users of computing devices are permitted to view, modify, or otherwise access all available GUI content and/or controls. User limits are put in place for a variety of reasons. A typical reason is to ensure the security of the computing device and the information the device contains.
One of the measures used to limit access to, e.g., enforce the security of, a computing device is to require that users identify themselves before gaining access to the device. This is often done by presenting a set of text fields to the user in which the user enters a name, a password, and perhaps other identifying information. When this information is submitted, the computing device searches a list of users to first ensure that a user with the submitted name exists. The computing device then compares the rest of submitted information with the information the computing device has stored for that user. If the user name matches a valid user name in the list and the submitted information correlates with the information associated with that name, the user is allowed access to the computing device. All interaction the user has with the computing device is enabled by the identity assigned to the user. It is this identity that is used to control the access level of the user.
Some GUI implementations allow a user to perform one or more preliminary actions that set up an opportunity for the user to attempt to invoke an unpermitted action. Since the user is restricted from performing the action, the preliminary time and effort expended by the user creating the opportunity is wasted. For example, Web browsers having multiple levels of user access, i.e., low, medium, and high, are often employed in client computing devices included in client-server computing environments. In this environment a user may be presented with a Web browser page containing five buttons. Two of the buttons require a “high” access level, one of the buttons requires a “medium” access level, and the two remaining buttons require a “low” access level.
While a user with a medium level of access is allowed to view all five buttons, because of the access levels associated with the buttons, such a user is only permitted to interact with three of the buttons: the one “medium” level button and two “low” level buttons. A medium level of access user is prohibited from interacting with the two “high” level access buttons. If a medium level of access user attempts to interact with one of the two prohibited buttons, the Web browser responds by displaying a warning message or does nothing at all. Besides confusing and frustrating the user, such browser behavior reduces the efficiency of the user's action.
The Web pages which may be displayed by a Web browser are created when a Web browser reads a page's description, interprets the description to produce a page image, and renders the page image into the window of the browser. Such page descriptions are usually sent to the Web browser from a Web page server. Web page descriptions are often generated on a Web page server by a page composition software component embedded in the Web server or supporting computing devices.
One solution to the foregoing problem proposed by the prior art is to modify the page composition software to allow it to read the information concerning the user's level of access and generate a page description which contains descriptions of only those controls allowed by the user's access level. In this example, a page rendered using such a page description would only display the controls accessible by the user. By eliminating unaccessible controls, which may lead unauthorized users into performing “dead end” preliminary actions, the time, effort, and patience of the user is spared. In the foregoing example, the two “high” level buttons would contain high level access instructions. Since the user in this example has only a “medium” access level, the modified page composition component would prevent the “high” level buttons from being made visible, i.e., not displayed, to the user. Alternatively, the unaccessible level buttons could be displayed in a form that indicates the unaccessibility of the “high” level buttons. The two “high” level buttons could be shown in phantom, for example.
While the foregoing solution provides the desired effect, i.e., the solution prevents users from performing dead end actions, the solution has a number of disadvantages. Included in the disadvantages is a requirement that each control that may appear in a page description must have computer instructions embedded in the page composition component that can read and apply access level information to the generation of control descriptions. Such computer instructions are often manually written for every possible access situation that may arise. Designing and writing such instructions consumes programmers' time and allows inadvertent errors to be inserted when the instructions are written. A second disadvantage is the likely need to change the instructions if certain aspects of the control or the access model change. As with the first noted disadvantage, computer instruction changes consume programmers' time and allow inadvertent errors to be inserted into the changed custom computer instructions. A third disadvantage is a requirement that the computer instructions be written in the same way for all similar controls. If this requirement is not met, the controls are likely to behave in different, often unpredictable, ways.
What is needed is a method and apparatus that will prevent a user of a graphical user interface from accessing controls that, because of security or other restrictions, the user is prohibited from interacting with, without requiring that page composition components be modified to provide access restriction for each and every control. The present invention is directed to providing such a method and apparatus of access control trimming.
In accordance with the present invention, a method and apparatus, including computer-readable medium, that limits, i.e., trims, a computer user's access to specific page controls is provided. Generic access recognition instructions are provided in a page composition component. In contrast with the prior art, the generic access recognition instructions read access information for the controls from a data structure instead of embedding the access information in the instructions themselves. After reading the access information, the page composition component determines if the related control should be made accessible to the user. If the control is determined to be accessible, it is made available to the user. If the control is determined not to be accessible, it is not made available to the user. Preferably, the generic access recognition code is expressed as XML in the metadata of the related control.
As will be appreciated from the foregoing description, the access information is external to the page composition component. As a result, the access information is available to third-party developers. Access determination external to the page composition component allows all controls to employ a common access model and common computer instructions. Not only does this allow third-party developers to set control access, it keeps the access model and instructions consistent from control to control and reduces the number of instructions needed to implement access determination. Controls whose access is determined in such a way are herein referred to as “trimmable controls”.
A control may be included in a graphical user interface (GUI) that, if made available, i.e., accessible, to a user, is actuable by a suitable input device, such as a mouse, for example. Alternatively, a control may be part of a set of controls and/or part of content presentable to a user.
If a trimmable control is determined not to be accessible, the control is not presented, e.g., displayed, for user interaction. Alternatively, if the control is determined not to be accessible, the control is presented, but not enabled for user interaction. Preferably presented but not accessible controls are displayed in a different manner than presented accessible controls.
As will be readily appreciated from the foregoing summary, the present invention is directed to enhance a user's experience by increasing the convenience of a user interface. The present invention is not intended to enforce computer device access, rather the invention is intended to help users avoid the inconvenience of some aspects of access.
The foregoing aspects and many of the attendant advantages of this invention will become more readily appreciated as the same become better understood by reference to the following detailed description, when taken in conjunction with the accompanying drawings, wherein:
While the implementation of the computing system will be described in the general context of an electronic computer, those skilled in the art will appreciate that the invention may be practiced with many other computer system implementations including but not limited to, optical, photonic, pneumatic, and fluidic computers.
While aspects of the invention may be described in terms of application programs that run on an operating system in conjunction with a personal computer, those skilled in the art will recognize that those aspects also may be implemented in combination with other program modules. Generally, program modules include routines, programs, components, data structures, etc., and perform particular tasks or implement particular abstract data types.
While aspects of the invention may be described in terms of graphical user interfaces that are supported by, or integrated with, program modules, those skilled in the art will recognize that those aspects may also be implemented in audible or other types of user interfaces and as user interaction modes.
With reference to
Computing device 110 typically includes at least some form of computer-readable medium, computer-readable media can be any available media that can be accessed by computing device 110. By way of example, and not limitation, computer-readable media may comprise computer storage media and communication media. As noted above, computer storage media includes volatile and non-volatile, removable and non-removable computer-readable instructions, data structures, program modules, or other data. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD), or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage, or other magnetic storage devices, or any other medium which can be used to store desired information accessible by computing device 110. Communication media typically embodies computer-readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to include information in the signal. By way of example, and not limitation, communication media includes wired media, such as a wired network or direct wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. Combinations of any of the above should also be included in the scope of computer-readable media.
Secure access to the computing device shown in
While the data structures illustrated in
The data structures illustrated in
At block 208, the page composer uses the access level to retrieve the access mask shown in
As part of the building of the new page description for rendering, each page element in the “Team” page template is sequentially processed by the page composer. At block 216, a test is made to determine if all trimmable elements have been processed. If all trimmable elements have not been processed, the process proceeds to block 220. At block 220, the page composer reads the rights information about the “next” trimmable element in the sequence and compares those rights to the retrieved “Level C” access mask (block 208). As noted above, with respect to
Using the information shown in
During the aforementioned process or after all of the trimmable elements in the “Team” page template have been processed, the page composer may insert additional specific data and other data stores into various elements within the page description. After all of the trimmable elements have been processed, at block 228, the page composer passes the new page description to the server. At block 232, the server sends the page description back to the requestor for rendering.
Unlike controls generated using the prior art, controls developed in accordance with the invention do not contain instructions on how to determine the accessibility of the control. Rather, the page template data structure includes generic access recognition instructions in the form of trimmable elements that are used in combination with an access mask whose level is determined by the identity of the logged-on user to develop the controls to be included in a page when the page is rendered.
As those skilled in the art and others will readily appreciate from the foregoing description, the invention provides a method and apparatus, including a computer-readable medium, suitable for limiting a computer user's access to specific controls in a graphical user interface by inserting a description of a control into a page description when the rights afforded to a user's access level are in accordance with the access rights of the control's description in a page template. While the foregoing description has applied the described process to single controls one at a time, the process is equally applicable to sets of controls. Further, a window containing a set of controls, such as a list of links, may be entirely trimmed if all of the controls, i.e. all of the links are trimmed, i.e., removed from user access. Although the foregoing description only identifies certain types of user controls, those skilled in the art and others will readily appreciate that the present invention is equally applicable to any user-accessible page element (generically a control) that may require access restrictions. Further, which the exemplary process (
While the presently preferred embodiment of the invention has been illustrated and described, it will be appreciated that various changes can be made therein without departing from the spirit and scope of the invention. For example, in addition to the variations described above, rather than not displaying inaccessible controls, inaccessible controls may be rendered in a form indicating they are not accessible. The inaccessible controls may be shown in phantom, i.e., grayed out, or, in some other way, distinguished from accessible controls, for example. Also it is to be understood that it is possible to differentiate accessible and inaccessible controls in ways other than those specifically described herein.