示例#1
0
void KACLListView::setACL( const KACL &acl )
{
    if ( !acl.isValid() ) return;
    // Remove any entries left over from displaying a previous ACL
    m_ACL = acl;
    fillItemsFromACL( m_ACL );

    m_mask = acl.maskPermissions( m_hasMask );
    calculateEffectiveRights();
}
示例#2
0
void KACLListView::setDefaultACL( const KACL &acl )
{
    if ( !acl.isValid() ) return;
    m_defaultACL = acl;
    fillItemsFromACL( m_defaultACL, true );
    calculateEffectiveRights();
}
示例#3
0
void KACLListView::fillItemsFromACL(const KACL &pACL, bool defaults)
{
    // clear out old entries of that ilk
    QListViewItemIterator it(this);
    while(KACLListViewItem *item = static_cast< KACLListViewItem * >(it.current()))
    {
        ++it;
        if(item->isDefault == defaults)
            delete item;
    }
    KACLListViewItem *item = new KACLListViewItem(this, User, pACL.ownerPermissions(), defaults);

    item = new KACLListViewItem(this, Group, pACL.owningGroupPermissions(), defaults);

    item = new KACLListViewItem(this, Others, pACL.othersPermissions(), defaults);

    bool hasMask = false;
    unsigned short mask = pACL.maskPermissions(hasMask);
    if(hasMask)
    {
        item = new KACLListViewItem(this, Mask, mask, defaults);
    }

    // read all named user entries
    const ACLUserPermissionsList &userList = pACL.allUserPermissions();
    ACLUserPermissionsConstIterator itu = userList.begin();
    while(itu != userList.end())
    {
        new KACLListViewItem(this, NamedUser, (*itu).second, defaults, (*itu).first);
        ++itu;
    }

    // and now all named groups
    const ACLUserPermissionsList &groupList = pACL.allGroupPermissions();
    ACLUserPermissionsConstIterator itg = groupList.begin();
    while(itg != groupList.end())
    {
        new KACLListViewItem(this, NamedGroup, (*itg).second, defaults, (*itg).first);
        ++itg;
    }
}