Not something I've done even in my many years with Drupal so I'm not sure what the best approach might be.  Looking at things, D7 may have offered some modules (like the message + message notification module) that may have helped, but they don't seem to be ported to Backdrop so I'm trying to figure out another way.

Basically, I'd like to (as the admin) be able to put notes of some sort on a specific users account that they (and only they) will see when they log in.  I need them to acknowledge these notes somehow (link/checkbox/whatever) and force some actions and/or prohibit activities until they have.  

For example, I might put a note saying on user 32's account that "There was a problem with your account, please call the office."  That would show on their user page until it's been acknowledged, and ideally I could hide a menu if any notes have not been acknowledged (if the latter part is too much to ask for it should at least be a constant nag at the top of every page.)

If anyone has any suggestions it's much appreciated!

Comments

This is an interesting use case and I don't have a direct answer for you. You can probably accomplish most of the things you want to do with permissions, blocks, and modules like rules. However, it wouldn't be very elegant or efficient if you need to do this frequently. 
 

You can create a custom block that only shows up for a specific user and/or on a specific page. This could contain your special message or nag. However, creating a custom block each time seems like a lot of overhead. 

You could also use rules module to display a message for a specific user given specific conditions. Again, this seems like quite a bit of work each time. 

If the special message is always the same, you could create a role with a block that only shows up for that role. Then when someone needs to see that message, you give that the necessary role and remove it when they don't need it anymore. This would be fairly easy, if you don't need a custom message each time.

Again, none of this is very elegant, but maybe it will trigger a better idea.
 

Thanks stpaul, while it's still a WIP over here, some of the redundancy can be removed by using nodeaccess_userreference at least for the per-user notes and displaying a block view where needed - if it's not for them it won't display in the view and the block will be empty (and not display) for users with no notes assuming the blocks set up as such.

Rules and plenty more modules definitely playing a role here as far as I am in, I'm basically assigning each note to a user with the 'references' modules when I make a note, using rules to change that to their authorship on node creation, using editablefields and field permissions to allow the user (now author after rules) to change just one boolean value that they've acknowledged the note - and setting the view up to only display those notes (for nagging purposes) that haven't had that boolean value set to true yet.

After that, I'm using jquery in the related layout templates to refresh the page on any checkbox change for the particular 'notes' block view showing (needed a slight delay to allow the DB to update first) which in turn will remove said note.  (I've no experience with it, but I suppose if the view could be updated with AJAX or something that'd be better, but this is good enough for my purposes.)

And while I'm not there just yet, I'll probably just use jquery again to see if the view is displayed based on the html ID (in which case there's unacknowledged notes) and display:none or replace the user menu with "Read the notes and check them off first" or something.

None of the JS stuff will prohibit people from visiting pages if they know the URL of course, but for my purposes I've done a 'good enough' job of telling them they needed to read something when they login with this setup.

Just posting this in case it helps someone else out with some module references and to say thanks for the input.