Пример #1
0
        protected void get_confidentiality_levels(ref string responseText)
        {
            //Privacy Check: OK
            if (!paramsContainer.GBEdit)
            {
                return;
            }

            List <ConfidentialityLevel> levels = PrivacyController.get_confidentiality_levels(paramsContainer.Tenant.Id)
                                                 .OrderBy(u => u.LevelID).ToList();

            responseText = "{\"Levels\":[" + string.Join(",", levels.Select(u => u.toJson())) + "]}";
        }
Пример #2
0
        protected void get_audience(List <Guid> objectIds, PrivacyObjectType objectType, ref string responseText)
        {
            //Privacy Check: OK
            if (!paramsContainer.GBEdit)
            {
                return;
            }

            bool accessDenied = objectIds.Count == 0 || !check_object_type(objectIds, objectType);

            Dictionary <Guid, List <Audience> > audience = accessDenied ? new Dictionary <Guid, List <Audience> >() :
                                                           PrivacyController.get_audience(paramsContainer.Tenant.Id, objectIds);

            Dictionary <Guid, List <DefaultPermission> > defaultPermissions = accessDenied ? new Dictionary <Guid, List <DefaultPermission> >() :
                                                                              PrivacyController.get_default_permissions(paramsContainer.Tenant.Id, objectIds);

            List <Privacy> settings = accessDenied ? new List <Privacy>() :
                                      PrivacyController.get_settings(paramsContainer.Tenant.Id, objectIds);

            objectIds.ForEach(u => {
                if (!settings.Any(x => x.ObjectID == u))
                {
                    settings.Add(new Privacy()
                    {
                        ObjectID = u
                    });
                }
            });

            settings.ForEach(s => {
                if (audience.ContainsKey(s.ObjectID.Value))
                {
                    s.Audience = audience[s.ObjectID.Value];
                }
                if (defaultPermissions.ContainsKey(s.ObjectID.Value))
                {
                    s.DefaultPermissions = defaultPermissions[s.ObjectID.Value];
                }
            });

            List <ConfidentialityLevel> levels = PrivacyController.get_confidentiality_levels(paramsContainer.Tenant.Id);

            responseText = "{\"ConfidentialityLevels\":[" + string.Join(",", levels.Select(x => x.toJson())) + "]" +
                           ",\"Items\":{" + string.Join(",", settings.Where(x => x.ObjectID.HasValue)
                                                        .Select(u => "\"" + u.ObjectID.ToString() + "\":" + u.toJson())) + "}" +
                           (!accessDenied ? string.Empty : ",\"ErrorText\":\"" + Messages.AccessDenied + "\"") +
                           "}";
        }