garysharp / Disco

Disco ICT Management
GNU Affero General Public License v3.0
26 stars 9 forks source link

Flag users for various reasons #26

Closed garysharp closed 10 years ago

garysharp commented 10 years ago

Marc Veenstra: https://discoict.com.au/forum/feature-requests/2013/11/flag-users-who-cannot-receive-a-device.aspx

We are starting to accumulate a list of jobs where a student has an outstanding charge. Some of these go back a long time. It would be nice to flag the student and then close the long running job along with unassigning the device from the user. My idea is that the charge remains on CASES but it written off as a bad debt in Disco. Since the student is flagged if they return and want a device Disco will say NO! This would prevent a Trainee or 'couldn't care' tech from assigning a device to them until the flag is removed (ie. they pay their debt).

garysharp commented 10 years ago

This feature request was duplicated by Vicki Allen: https://discoict.com.au/forum/feature-requests/2014/5/flagging-a-student.aspx

Any chance there could be a way to post a note on a student profile. Eg: specific requests from parent , school requirements - like no internet access etc Something that could be a simple red button to indicate a message to other users. userflagsvickiallen

garysharp commented 10 years ago

I agree that a feature like this is needed – and the multiple feature requests and discussion within the development team also indicate this.

There are a couple of concerns with integrating this feature with the existing project ethos:

Consistent Data

Wherever possible, Disco tries to capture data in a way that can be analysed, aggregated and reported. It would be impossible to collect this information consistently if it was entered into a freeform textbox. Typically this is solved by providing a list of options to users (such as the Job Types and Job Sub-Types). Storing information in this way allows organisations to make decisions based on real metrics – such as how many users aren’t allowed internet, how many users were banned this year, or how many times has this user been banned. Some of these questions require historical data – storing flag history in a similar way to device assignment history. Wherever possible, flag lists are defined by the development team (with input from the community) so that data is consistent for any future features or sharing between organisations. Considering Disco targets any organisation (not just schools) it will be difficult to create a pre-defined list. Possible Solution/Compromise: Individual organisations may need the ability to create a list of flags themselves. User Flags would be stored historically (with added/removed dates) and could be associated with a Job (such as a User Management job).

Data Protection/Privacy/Authorization

Within organisations, Disco is utilised by those with various job rolls. Therefore, whatever feature is implemented, it would need its own set of Authorisation Permissions. However, it is not uncommon for others to view Disco under supervision – for example, showing students, other users, teachers, or parents the job photos of damage. Alternatively, other users may view the data unintentionally (Disco is often used in shared office spaces where users enter). Exposing (very) sensitive data where others might be able to glean it is of concern. Possible Solution/Compromise: Add new Authorization Permissions: Show User Flags, Add User Flags, Remove User Flags, Configure User Flags. Associate an icon with a User Flag and display the icon rather than the flag description to provide an amount of obfuscation. Disco users would be able to hover over the icon to reveal its description in a tool-tip (given time, they would become familiar with their meaning). Clicking the flag would link to the optionally associated job.

Possible Solution Mockups

userflagsiconsmockup userflagsmockup

This feature request needs more discussion – what are everyone’s thoughts on this?

edwardsmichael commented 10 years ago

I would think having a User Flag (like the User Management Flag) would be the only way for Disco to possibly "act" on the flag (eg if there is a "no device allowed" flag, when assigning a device to a user, Disco could check for this specific flag and deny the assignment if the flag is active). If (no device allowed flag == null) { assign device } else { throw an error

There probably wouldn't be a really long list of flags either, so it should be fairly easy to maintain. I would imagine the main ones would be "no internet access" and "no device access" - possibly a few others like "no loan access" or "no equipment access". There could also be some positive flags like "well mannered" or "patient" these metrics could help reward users?

There could be some way of inputting information for the specific reason (eg. when you select the User Flag you could be prompted to select a flag and also input some freeform text for a "reason")

john veenstra

Although this could be unnecessary if the information is inserted into another job that the flag would link to, however it might still be useful if the linked job was deleted, to show why the flag was there.

Also would it be worth recording the flags in some way? Maybe a student has had a "no device allowed" flag more then a few times, which could mean someone might have to investigate a further issue.

I think the complexity of the feature should be weighed up against how useful it would be (separate but related thought, what about a "vote for a feature" page on the forums???) this could help determine how many users are interested in this and other features, and if it is worth spending the development time on.

garysharp commented 10 years ago

This feature was implemented in 4c3a68da309ef42bbc82f4299b6af7cb9c249d11

Technicians can create User Flags and associate users with them. Flag information is presented where appropriate. Flags can be hovered over to get full details.

discouserflags