The other day a user needed to be given a permission in SpAdmin on a Classic 15 system. It didn't go so well. The permission showed as being applied but the user was still unable to do the task. Print Checks was the permission needed rights granted.
This was a contract customer, someone who pays me just for being around, so a solution needed to be found sooner than later. A dive into the PermissionsByUser table in the SoftPro Database found the problem. The Allow flag was set to False on the UserID for Program zero. I'm guessing Program zero is ProForm, one is ProTrust, two and three exist, but I don't know enough to hazard a guess at this point.
The displayed error mentioned Permission ID 50, changing the first one lead us down a trial of 4 PermissionID's that need flipped to turn on whatever they protected. Fixing this requires a tad of SQL knowledge, but can be done with virtually none.
SSMS (SQL Server Management Studio) is needed to start, fire that up and point to your SoftPro Instance.
Open the Databases tab, the SoftPro Tab and finally the Tables Tab.
Right click on the PermissionsByUser table, usually prefaced with dbo. but it could be anything.
Select Edit Table, or Edit Top (##) rows.
From here if your list is short you can scroll to find the UserID, then PermissionID. I prefer to narrow it down.
Right click on the Labels for the columns and select Pane then SQL.
Side Note: this is a common task, a great place to learn a bit about SQL statements.
That will show the SQL command that filled out the table.
Add to that
WHERE (UserID LIKE 'FirstFewLettersOfUserID%') AND (PermissionID = 50)
Set the FirstFewLettersOfUserID to the first few letters of the user ID in question, since my login might be dan.vanfleet if we were interested in PermissionID 40 the where clause would look like this.
WHERE (UserID LIKE 'dan.va%') AND (PermissionID = 40)
Now execute the script to see the filtered list.
That will show a short list for the user and include a bit more information. Change Allow to True for any rows that seem appropriate. I only found Program 0 missing this value.
Keep in mind you are treading on a very special table, be careful, walk softly, only change values to items you understand. This table needs respected. Back it up if you're uncertain.