How to make a field editable for some users and only viewable for some other users
If we want only some users to edit a field and some other users only to view that field, then we need to define a fieldX__permissions() method for that field which gives desired permissions for specific users.
One solution is as below.
permissions.ini
[Field Viewer]
view=1
edit=0
new=0
[Field Editor extends Field Viewer]
new=1
edit=1
TableX.php (Delegate class of TableX)
function fieldX__permissions(&$record) {
$user=&Dataface_AuthenticationTool::getInstance()->getLoggedInUser();
if($user) {
if($user->val('usernameField')=="UserX")
$role='Field Viewer';
else if($user->val('usernameField')=="UserY")
$role='Field Editor';
return Dataface_PermissionsTool::getRolePermissions($role);
}
return Dataface_PermissionsTool::NO_ACCESS();
}
var disqus_identifier = ‘xataface.com/wiki/viewable_editable_fields’; (function() { var dsq = document.createElement(‘script’); dsq.type = ‘text/javascript’; dsq.async = true; dsq.src = ‘http://xataface.disqus.com/embed.js’; (document.getElementsByTagName(‘head’)[0] || document.getElementsByTagName(‘body’)[0]).appendChild(dsq); })(); blog comments powered by Disqus
//<![CDATA[ (function() { var links = document.getElementsByTagName(‘a’); var query = ‘?’; for(var i = 0; i < links.length; i++) { if(links[i].href.indexOf(‘#disqus_thread’) >= 0) { query += ‘url’ + i + ‘=’ + encodeURIComponent(links[i].href) + ‘&’; } } document.write(‘