Esempio n. 1
0
        private string LocalizeNewAccessLevel(string accessLevelName, AccessLevel currentAccessLevel, AccessLevel newAccessLevel)
        {
            var    str = string.Format("{0}: ", accessLevelName);
            string text1;

            if ((newAccessLevel == AccessLevel.NoAccess || newAccessLevel == AccessLevel.Undefined) && newAccessLevel == currentAccessLevel)
            {
                text1 = _localizationService.GetString("/gadget/changeapproval/accesslevels/" + newAccessLevel);
            }
            else
            {
                foreach (var knownAccessLevel in KnownAccessLevels)
                {
                    if (currentAccessLevel.HasFlag((System.Enum)knownAccessLevel) || newAccessLevel.HasFlag((System.Enum)knownAccessLevel))
                    {
                        var text2 = _localizationService.GetString("/gadget/changeapproval/accesslevels/" + knownAccessLevel);
                        if (currentAccessLevel.HasFlag((System.Enum)knownAccessLevel) && !newAccessLevel.HasFlag((System.Enum)knownAccessLevel))
                        {
                            text2 = text2.Strikethrough();
                        }
                        else if (!currentAccessLevel.HasFlag((System.Enum)knownAccessLevel) && newAccessLevel.HasFlag((System.Enum)knownAccessLevel))
                        {
                            text2 = text2.Bold();
                        }
                        str = str + text2 + ", ";
                    }
                }
                text1 = str.TrimEnd(", ");
            }
            if (currentAccessLevel == newAccessLevel)
            {
                text1 = text1.Fade();
            }
            return(text1);
        }
Esempio n. 2
0
        private string LocalizeCurrentAccessLevel(string accessLevelName, AccessLevel currentAccessLevel, AccessLevel newAccessLevel)
        {
            var    str = string.Format("{0}: ", accessLevelName);
            string text;

            if (currentAccessLevel == AccessLevel.NoAccess || currentAccessLevel == AccessLevel.Undefined)
            {
                text = _localizationService.GetString("/gadget/changeapproval/accesslevels/" + currentAccessLevel);
            }
            else
            {
                foreach (var knownAccessLevel in KnownAccessLevels)
                {
                    if (currentAccessLevel.HasFlag((System.Enum)knownAccessLevel))
                    {
                        str = str + _localizationService.GetString("/gadget/changeapproval/accesslevels/" + knownAccessLevel) + ", ";
                    }
                }
                text = str.TrimEnd(", ");
            }
            if (currentAccessLevel == newAccessLevel)
            {
                text = text.Fade();
            }
            return(text);
        }
Esempio n. 3
0
        private bool IsIncluded(FieldInfo field, AccessLevel access)
        {
            if (access == AccessLevel.Serializable)
            {
                return(TypeHelper.IsSerializable(field));
            }
            else
            {
                if (field.IsPublic)
                {
                    return(access.HasFlag(AccessLevel.Public));
                }
                if (field.IsFamily)
                {
                    return(access.HasFlag(AccessLevel.Protected));
                }
                if (field.IsPrivate)
                {
                    return(access.HasFlag(AccessLevel.Private));
                }
                if (field.IsFamilyOrAssembly)
                {
                    return(access.HasFlag(AccessLevel.Protected) || access.HasFlag(AccessLevel.Internal));
                }
                if (field.IsFamilyAndAssembly)
                {
                    return(access.HasFlag(AccessLevel.Protected) || (access.HasFlag(AccessLevel.Protected) && access.HasFlag(AccessLevel.Internal)));
                }
            }

            return(false);
        }
Esempio n. 4
0
        private bool IsIncluded(MethodBase method, AccessLevel access)
        {
            if (method == null)
            {
                return(false);
            }
            if (method.IsPublic)
            {
                return(access.HasFlag(AccessLevel.Public));
            }
            if (method.IsFamily)
            {
                return(access.HasFlag(AccessLevel.Protected));
            }
            if (method.IsPrivate)
            {
                return(access.HasFlag(AccessLevel.Private));
            }
            if (method.IsFamilyOrAssembly)
            {
                return(access.HasFlag(AccessLevel.Protected) || access.HasFlag(AccessLevel.Internal));
            }
            if (method.IsFamilyAndAssembly)
            {
                return(access.HasFlag(AccessLevel.Protected) || (access.HasFlag(AccessLevel.Protected) && access.HasFlag(AccessLevel.Internal)));
            }

            return(false);
        }
Esempio n. 5
0
        public IActionResult SetAccessLevel([FromBody] ODataActionParameters parameters)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            int         ID          = (int)parameters["ID"];
            AccessLevel accessLevel = (AccessLevel)parameters["accessLevel"];

            if (accessLevel.HasFlag(AccessLevel.Read) &&
                accessLevel.HasFlag(AccessLevel.Execute) &&
                ID == 7) // special
            {
                return(Ok(AccessLevel.Read | AccessLevel.Write));
            }

            Employee employee = Employees.FirstOrDefault(e => e.ID == ID);

            employee.AccessLevel = accessLevel;
            return(Ok(employee.AccessLevel));
        }