It's been a busy week for the development of SMACL. The distributed
system seems to be working fine, but still it hasn't been implemented on
the ACL object. This object interacts with an ACL table representation
and is the most complex of all the objects in the SMACL API. That is one
of the reason why the distribution of this object is being delayed. The
other reason is that there was a new feature being implemented that
modified the ACL and ACLCheck, therefore the distributed ACL would need
to be updated after the implementation of this feature. To avoid this we
just delayed the creation of the distributed ACL.
This new feature in the ACL and ACLCheck provides a new method for
checking permissions. This method requires a ACO, an ARO, and an
AXOGroup type, and returns all the AXO where the ACO has been allowed to
the ARO. For example, if you have a forum you may want to check all the
forums the user have access to, with these methos you can obtain this in
one query.
This new check method reduces the efficiency costs as it spends almost
the same time than a normal check. Using the normal check to obtain the
same results, you have to multiply this time by the amount of resources.
Considering that a PHP script is restricted to a very small amount of
time to complete, this is a great improvement in efficiency costs.
Also, the ACL implementation on a generic MySQL implementation had a
problem in one of the SQL queries, which made the ACL check algorithm
run inneficciently. This has been solved by spliting the SQL query with
the problem in two queries, as MySQL did not respond as expected when
using only one query (it was doing a full scan of the acl table when it
shouldn't).
Furthermore, a new mechanism of error triggering and handling is being
implemented. This will provide better means to capture an error
generated inside the library.
That's all for now.
We're very close to an alpha release.
|