2015-04-15 18:32:56 +00:00
|
|
|
|
///
|
2019-05-02 07:36:33 +00:00
|
|
|
|
/// Copyright (c) 2013-2019 Sensus Slovensko a.s.
|
2015-04-15 18:32:56 +00:00
|
|
|
|
///
|
|
|
|
|
|
using System;
|
2014-07-28 07:54:35 +00:00
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
|
using System.Text;
|
|
|
|
|
|
using NHibernate;
|
|
|
|
|
|
using FluentNHibernate;
|
2018-01-25 12:30:48 +00:00
|
|
|
|
using Users.Entities;
|
|
|
|
|
|
using Users.Resources;
|
2014-07-28 07:54:35 +00:00
|
|
|
|
|
2017-03-16 20:53:12 +00:00
|
|
|
|
namespace Users
|
2014-07-28 07:54:35 +00:00
|
|
|
|
{
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Enum Grp.GID specifies GID-s of user groups.
|
|
|
|
|
|
/// An instance of this class represenst a group, which contains a list of its members (users).
|
|
|
|
|
|
/// Static private array 'groups' of this class, accesible through indexer, contains all groups.
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public class Grp
|
|
|
|
|
|
{
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// GID-s of user groups, each user is member of one or more groups.
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public enum GID
|
|
|
|
|
|
{
|
|
|
|
|
|
// The first NrOfGroups items are GroupID-s (0..NrOfGroups-1)
|
|
|
|
|
|
Testers = 0,
|
|
|
|
|
|
TestingSpecialists,
|
|
|
|
|
|
HeadOfLab,
|
|
|
|
|
|
MaintenanceSpecialists,
|
|
|
|
|
|
Metrologists,
|
|
|
|
|
|
CalibrationSpecialists,
|
|
|
|
|
|
Administrators, // application / network / database administrator
|
2019-07-24 13:38:49 +00:00
|
|
|
|
#if TURA_IPERL || TURA_IPERL_NEW || TURA_SPECIAL
|
2018-08-03 06:08:14 +00:00
|
|
|
|
TraceabilityManagement,
|
2019-09-04 14:43:29 +00:00
|
|
|
|
#endif
|
|
|
|
|
|
MetrologicalAuthority,
|
|
|
|
|
|
WaterMeterAuthority,
|
2014-07-28 07:54:35 +00:00
|
|
|
|
NrOfGroups, // Number of groups (this is not a GroupID)
|
|
|
|
|
|
None, // Not a GroupID, can be used to indicate no group membership is required
|
|
|
|
|
|
Invalid = -1, // Not a GroupID, indicates a variable has not been properly set so far
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2018-01-25 12:30:48 +00:00
|
|
|
|
public static string Gid2Str(int gid)
|
|
|
|
|
|
{
|
|
|
|
|
|
return Gid2Str((GID)gid);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public static string Gid2Str(GID gid)
|
|
|
|
|
|
{
|
|
|
|
|
|
switch (gid)
|
|
|
|
|
|
{
|
|
|
|
|
|
case GID.Testers: return Strings.tester;
|
|
|
|
|
|
case GID.TestingSpecialists: return Strings.specialist;
|
|
|
|
|
|
case GID.HeadOfLab: return Strings.head_of_lab;
|
|
|
|
|
|
case GID.MaintenanceSpecialists: return Strings.maintenance;
|
|
|
|
|
|
case GID.Metrologists: return Strings.metrologist;
|
|
|
|
|
|
case GID.CalibrationSpecialists: return Strings.calibration_specialist;
|
|
|
|
|
|
case GID.Administrators: return Strings.administrator;
|
2019-07-24 13:38:49 +00:00
|
|
|
|
#if TURA_IPERL || TURA_IPERL_NEW || TURA_SPECIAL
|
2019-05-22 12:35:58 +00:00
|
|
|
|
case GID.TraceabilityManagement: return Strings.production_tracing_administrator;
|
2019-09-04 14:43:29 +00:00
|
|
|
|
#endif
|
2019-11-22 08:17:16 +00:00
|
|
|
|
case GID.MetrologicalAuthority: return Strings.metrological_authority;
|
|
|
|
|
|
case GID.WaterMeterAuthority: return Strings.water_meter_authority;
|
2018-08-03 06:08:14 +00:00
|
|
|
|
default: return Strings.invalid;
|
2018-01-25 12:30:48 +00:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-07-28 07:54:35 +00:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Number of groups.
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public const int Count = (int)GID.NrOfGroups;
|
|
|
|
|
|
|
|
|
|
|
|
// Static array of all groups.
|
|
|
|
|
|
static Grp[] groups;
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Static constructor, creates all groups with no members.
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
static Grp()
|
|
|
|
|
|
{
|
|
|
|
|
|
groups = new Grp[Count];
|
|
|
|
|
|
for (int i = 0; i < Count; i++)
|
|
|
|
|
|
{
|
|
|
|
|
|
groups[i] = new Grp((GID)i);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Returns a Group from Id.
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="id">Group Gid</param>
|
|
|
|
|
|
/// <returns>Entities.Group object reference</returns>
|
|
|
|
|
|
public static Entities.Group FromId(GID gid)
|
|
|
|
|
|
{
|
|
|
|
|
|
int i = (int)gid;
|
|
|
|
|
|
|
|
|
|
|
|
if (i >= 0 && i < Count)
|
|
|
|
|
|
{
|
|
|
|
|
|
return groups[i].group;
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
return null;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
///////////////////// ^ static ^ ///////////////////// v instance v /////////////////////
|
|
|
|
|
|
|
|
|
|
|
|
/// Public properties
|
|
|
|
|
|
public GID Gid { get { return (GID)group.Gid; } }
|
|
|
|
|
|
public string Name { get { return group.Name; } set { group.Name = value; } }
|
|
|
|
|
|
|
|
|
|
|
|
/// Private fields
|
|
|
|
|
|
Entities.Group group;
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Instance constructor.
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="id"></param>
|
|
|
|
|
|
public Grp(GID gid)
|
|
|
|
|
|
{
|
|
|
|
|
|
group = new Entities.Group();
|
|
|
|
|
|
this.group.Gid = (int)gid;
|
|
|
|
|
|
this.group.Name = gid.ToString();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|