index 45f6a1324ad44fa32f80de5c5e0f26ace5dec402..9ce014935a932ba0eaad49a9ef035ed63deab054 100644 (file)
return ($acl);
}
-
+
+ /*! \brief Check if the given object (dn) is copyable
+ @param String The object dn
+ @param String The acl category (e.g. users)
+ @param String The acl class (e.g. user)
+ @return Boolean TRUE if the given object is copyable else FALSE
+ */
function is_copyable($dn, $object, $class)
{
return(preg_match("/r/",$this->has_complete_category_acls($dn, $object)));
}
+
+ /*! \brief Check if the given object (dn) is cutable
+ @param String The object dn
+ @param String The acl category (e.g. users)
+ @param String The acl class (e.g. user)
+ @return Boolean TRUE if the given object is cutable else FALSE
+ */
function is_cutable($dn, $object, $class)
{
$remove = preg_match("/d/",$this->get_permissions($dn,$object."/".$class));
return($remove && $read);
}
- function is_pasteable($dn, $object, $class)
+
+ /*! \brief Checks if we are allowed to paste an object to the given destination ($dn)
+ @param String The destination dn
+ @param String The acl category (e.g. users)
+ @param String The acl class (e.g. user)
+ @return Boolean TRUE if we are allowed to paste an object.
+ */
+ function is_pasteable($dn, $object)
{
return(preg_match("/w/",$this->has_complete_category_acls($dn, $object)));
}
+
+ /*! \brief Checks if we are allowed to restore a snapshot for the given dn.
+ @param String The destination dn
+ @param String The acl category (e.g. users)
+ @return Boolean TRUE if we are allowed to restore a snapshot.
+ */
+ function allow_snapshot_restore($dn, $object)
+ {
+ if(!is_array($object)){
+ $object = array($object);
+ }
+ $r = $w = $c = TRUE;
+ foreach($object as $category){
+ $w &= preg_match("/w/",$this->has_complete_category_acls($dn, $category));
+ $c &= preg_match("/c/",$this->has_complete_category_acls($dn, $category));
+ $r &= preg_match("/r/",$this->has_complete_category_acls($dn, $category));
+# print_a(array($category => array($r.$w.$c)));
+ }
+ return($r && $w );
+ }
+
+
+ /*! \brief Checks if we are allowed to create a snapshot of the given dn.
+ @param String The source dn
+ @param String The acl category (e.g. users)
+ @return Boolean TRUE if we are allowed to restore a snapshot.
+ */
+ function allow_snapshot_create($dn, $object)
+ {
+ if(!is_array($object)){
+ $object = array($object);
+ }
+ $r = $w = $c = TRUE;
+ foreach($object as $category){
+ $w &= preg_match("/w/",$this->has_complete_category_acls($dn, $category));
+ $c &= preg_match("/c/",$this->has_complete_category_acls($dn, $category));
+ $r &= preg_match("/r/",$this->has_complete_category_acls($dn, $category));
+# print_a(array($category => array($r.$w.$c)));
+ }
+ return($r) ;
+ }
+
+
function get_permissions($dn, $object, $attribute= "", $skip_write= FALSE)
{
/* If we are forced to skip ACLs checks for the current user