source: products/RPCAuth/current/utils.py

Last change on this file was 22, checked in by myroslav, 14 years ago

Tagging release

  • Property svn:eol-style set to native
File size: 4.9 KB
Line 
1##############################################################################
2#
3# Zope Public License (ZPL) Version 1.0
4# -------------------------------------
5#
6# Copyright (c) Digital Creations.  All rights reserved.
7#
8# This license has been certified as Open Source(tm).
9#
10# Redistribution and use in source and binary forms, with or without
11# modification, are permitted provided that the following conditions are
12# met:
13#
14# 1. Redistributions in source code must retain the above copyright
15#    notice, this list of conditions, and the following disclaimer.
16#
17# 2. Redistributions in binary form must reproduce the above copyright
18#    notice, this list of conditions, and the following disclaimer in
19#    the documentation and/or other materials provided with the
20#    distribution.
21#
22# 3. Digital Creations requests that attribution be given to Zope
23#    in any manner possible. Zope includes a "Powered by Zope"
24#    button that is installed by default. While it is not a license
25#    violation to remove this button, it is requested that the
26#    attribution remain. A significant investment has been put
27#    into Zope, and this effort will continue if the Zope community
28#    continues to grow. This is one way to assure that growth.
29#
30# 4. All advertising materials and documentation mentioning
31#    features derived from or use of this software must display
32#    the following acknowledgement:
33#
34#      "This product includes software developed by Digital Creations
35#      for use in the Z Object Publishing Environment
36#      (http://www.zope.org/)."
37#
38#    In the event that the product being advertised includes an
39#    intact Zope distribution (with copyright and license included)
40#    then this clause is waived.
41#
42# 5. Names associated with Zope or Digital Creations must not be used to
43#    endorse or promote products derived from this software without
44#    prior written permission from Digital Creations.
45#
46# 6. Modified redistributions of any form whatsoever must retain
47#    the following acknowledgment:
48#
49#      "This product includes software developed by Digital Creations
50#      for use in the Z Object Publishing Environment
51#      (http://www.zope.org/)."
52#
53#    Intact (re-)distributions of any official Zope release do not
54#    require an external acknowledgement.
55#
56# 7. Modifications are encouraged but must be packaged separately as
57#    patches to official Zope releases.  Distributions that do not
58#    clearly separate the patches from the original work must be clearly
59#    labeled as unofficial distributions.  Modifications which do not
60#    carry the name Zope may be packaged in any form, as long as they
61#    conform to all of the clauses above.
62#
63#
64# Disclaimer
65#
66#   THIS SOFTWARE IS PROVIDED BY DIGITAL CREATIONS ``AS IS'' AND ANY
67#   EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
68#   IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
69#   PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL DIGITAL CREATIONS OR ITS
70#   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
71#   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
72#   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
73#   USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
74#   ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
75#   OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
76#   OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
77#   SUCH DAMAGE.
78#
79#
80# This software consists of contributions made by Digital Creations and
81# many individuals on behalf of Digital Creations.  Specific
82# attributions are listed in the accompanying credits file.
83#
84##############################################################################
85'''$Id: $
86'''
87
88import Globals
89from AccessControl import ClassSecurityInfo
90from OFS.PropertyManager import PropertyManager
91from OFS.SimpleItem import SimpleItem
92
93
94class SimpleItemWithProperties (PropertyManager, SimpleItem):
95    '''
96    A common base class for objects with configurable
97    properties in a fixed schema.
98    '''
99    manage_options = (
100        PropertyManager.manage_options
101        + SimpleItem.manage_options)
102
103    security = ClassSecurityInfo()
104    security.declarePrivate(
105        'manage_addProperty',
106        'manage_delProperties',
107        'manage_changePropertyTypes',
108        )
109
110    def manage_propertiesForm(self, REQUEST, *args, **kw):
111        'An override that makes the schema fixed.'
112        my_kw = kw.copy()
113        my_kw['property_extensible_schema__'] = 0
114        return apply(PropertyManager.manage_propertiesForm,
115                     (self, self, REQUEST,) + args, my_kw)
116
117    security.declarePublic('propertyLabel')
118    def propertyLabel(self, id):
119        """Return a label for the given property id
120        """
121        for p in self._properties:
122            if p['id'] == id:
123                return p.get('label', id)
124        return id
125
126Globals.InitializeClass(SimpleItemWithProperties)
127
Note: See TracBrowser for help on using the repository browser.