-
Notifications
You must be signed in to change notification settings - Fork 156
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Start foundation for editor, validator statuses #899
Conversation
This could also be expanded to add another value that blocks a user from editing/validation if they become a major issue. |
I have been thinking about this and I think it is headed toward a: mapper_level_0, name=Can Not Map via the Tasking Manager validator_level_0, name=Can Not Validate via the Tasking Manager need. your thoughts are most welcome, i am not sold on it yet. |
Alright, I was originally went with a binary switch but we can definitely do tiered levels. That will only require a small change, but once I make that, really any number of levels could be used (within reason, e.g. <500 😉) and thus don't require being finalized at this point. |
Wow, super cool Ethan. Thank you very much. I have some thoughts on how people might get marked validator there has to be a way to directly manager global validators, which I would lean toward, any project manager can set the global validator flag on anyone. But maybe a cool idea: So global validators, any project, any time. But each project manager optionally has a list of their own validators who can validate any project created by that project manager. 3 project managers add you to their personal validator list, you automatically get global validator status. That might encourage more interactions between validators and project managers as well. |
If you're looking to have this granular to the point of project permissions, too, then I think this can be wrapped in with the private project permissions. Essentially, we can have three levels of user permission: view project (In the following, 'no one' or 'everyone' excludes project managers and admins.) Public projects would by default give everyone permission to view only. The 'difficulty' of the project would determine whether anyone has edit and validate permissions or if global permissions are required: easy projects we can let new people edit, while hard projects require global permission. Private projects would by default give no one permission for anything. Then, permissions would be added to view and edit, just like they are now. Again, difficulty setting would determine who can validate. In each of these cases, project managers could also choose to give someone special validate or edit privileges for that project or not require global permissions. Does that make sense? Is that an ideal goal? Shooting for this could also solve some other issues that have been lingering, like as an example people having the ability to request access to a private project. One issue to iron out will be a better interface for altering and selecting user permissions. It will need the ability to perform bulk actions (like that started in #773, but also for assigning permissions). |
Hi Ethan, I have to digest that, but I am sure that things should work as they are now. New mappers arrive and can get started mapping just like now. They can map, they can validate, they can do it all. If a project manager wanted to change that for their own project, we make that possible. If a project manager wanted to indicate "Have to be Global Validator" to validate the project they could optionally, not by default. Project managers might also want to restrict mapping to "Experienced Mapper" level only, so any one without that would not have the "Start Mapping" button. Or a PM might have a set group of people she wants to validate a project so she adds them to just her list of "Validators" the only reason a mapper would not be able to map on some projects, most projects, is because a PM switched them to a "global no mapping" level. So far in 6 years we have needed that just once, so I do not expect it to be big deal, but the option should be there. |
79e8a83
to
f66df72
Compare
Well, we can refine that at a later stage. For now, this latest change alters the functionality to instead add a 'level' attribute for editing and validating, with everyone defaulting at zero. There's nothing added right now as to how the ranking is assigned or upgraded, so it's only a start on the infrastructure. |
@@ -16,7 +16,7 @@ def test_users__logged_in(self): | |||
|
|||
def test_users_json(self): | |||
res = self.testapp.get('/users.json', status=200) | |||
self.assertEqual(len(res.json), 5) | |||
self.assertEqual(len(res.json), 7) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think tests run alphabetically? This didn't fail before because the test function I originally added was test_verified_statuses
. Now that it's test_editor...
, it runs before test_users_json
, adding two new users and throwing off this count.
This code adds into the database and model structures a "verified" status for editors and validators, respectively. Additionally, an interface (e.g.
/user/userid/user_verified_editor
) for administrators is included to add or remove this status from users--though no urls directing to this are exposed in the templates, yet.ping @bgirardot for feedback if this is what you envisioned.