Since SalesLogix 7.5.3, SalesLogix has exposed user Roles and actions within the roles. See this post for an overview. SalesLogix has a IRoleSecurirtyService that can be utilized to to determine if the current user has access to a particular secured action and then take some action on it. This is a server based service so to access it you would do something simple like:
Sage.Platform.Security.IRoleSecurityService roleSecurityService = Sage.Platform.Application.ApplicationContext.Current.Services.Get<Sage.Platform.Security.IRoleSecurityService>(true);
//Do something because they have access
//Do something because they don’t have access
Simple and pretty powerful.