yönettiği "Fragman" diyelim, yeni bir devlet oluşturma (bu isteğe bağlıdır, özelleştirmek olabilir> Zope Yönetimi Arayüzü- gitmek
- bunun yerine mevcut bir durum ... belki de özel durum, belirli kullanıcılar/gruplar için kısıtlamalar ile başa çıkmak için iyi bir seçenek olabilir)
- Tüm izinleri kaldırın, ancak bu özel durumdaki Anonim kullanıcıdan "Içerik bilgilerine erişin"
"Güncelleme güvenliği s "Düğmeler" düğmesi
Bitti! Artık "Trailer" durumundaki tüm içerikler aranabilir, ancak anonim kullanıcılar tarafından görüntülenemez.
Not: Yeni bir durum oluşturmayı seçerseniz, önereceğimiz gibi, gerekli tüm geçişleri de eklediğinizden emin olun.
Düzenleme:
Ne yazık ki son plone en sürümlerinde, bu eskiden olduğu gibi çalışmaya yukarıdaki işlemi engelleyen portal_catalog (allowedRolesAndUsers) yeni bir indeks var olduğunu farkında değildi. Yukarıdaki işlem doğrudur, ancak varsayılan dizinleyiciyi geçersiz kılmanız gerekir. "Plone" şablonunu kullanarak İlk create a new package with paster. from zope.interface import Interface
from plone.indexer.decorator import indexer
from AccessControl.PermissionRole import rolesForPermissionOn
from Products.CMFCore.utils import getToolByName
from Products.CMFCore.CatalogTool import _mergedLocalRoles
@indexer(Interface)
def allowedRolesAndUsers(obj):
"""Return a list of roles and users with View permission.
Used by PortalCatalog to filter out items you're not allowed to see.
"""
allowed = {}
for r in rolesForPermissionOn('Access contents information', obj):
allowed[r] = 1
# shortcut roles and only index the most basic system role if the object
# is viewable by either of those
if 'Anonymous' in allowed:
return ['Anonymous']
elif 'Authenticated' in allowed:
return ['Authenticated']
localroles = {}
try:
acl_users = getToolByName(obj, 'acl_users', None)
if acl_users is not None:
localroles = acl_users._getAllLocalRoles(obj)
except AttributeError:
localroles = _mergedLocalRoles(obj)
for user, roles in localroles.items():
for role in roles:
if role in allowed:
allowed['user:' + user] = 1
if 'Owner' in allowed:
del allowed['Owner']
return list(allowed.keys())
ve daha sonra aynı seviyede bu içeren bir dosyayı overrides.zcml
ekleyin::
<configure xmlns="http://namespaces.zope.org/zope">
<adapter factory=".indexers.allowedRolesAndUsers" name="allowedRolesAndUsers" />
</configure>
Sonra (örn my.package/benim/paket) bir dosya ile bu indexers.py
denilen paketin ana düzeyde eklemek sonunda ürününüzün ağaç gibi görünmelidir:
my.package/
├── my
│ ├── __init__.py
│ └── package
│ ├── configure.zcml
│ ├── overrides.zcml
│ ├── indexers.py
│ ├── __init__.py
│ ├── profiles
│ │ └── default
│ │ └── metadata.xml
│ └── tests.py
├── README.txt
├── setup.cfg
└── setup.py
son şey, kendi buildout.cfg yeni oluşturulan yumurta dahil etmek gerekir:
eggs =
my.package
develop =
src/my.package
Bu işlemi durdurun. Bu kadar.
'Özel' içerik menülere ve aramalara bağlı mı? Öyleyse, anonim kullanıcılar bu bağlantıları ziyaret ettiğinde ne olur? –
'özel' içerik yalnızca yöneticilere veya atanan kullanıcılara veya gruplara gösterilir. Anonim bir kullanıcı bir bağlantıyı ziyaret ederse, beklendiği gibi giriş sayfasına yönlendirir.Amacım, menüde ve aramada görünen içeriğe sahip olmanın bir yolunu bulmaktır, ancak sayfa veya klasör ziyaret edildiğinde giriş yapmak için yeniden yönlendirir. –