public Result <DataProcessingRegistrationRight, OperationError> AssignRoleToUser(DataProcessingRegistrationRole role, User user)
        {
            if (role == null)
            {
                throw new ArgumentNullException(nameof(role));
            }
            if (user == null)
            {
                throw new ArgumentNullException(nameof(user));
            }

            if (HasRight(role, user))
            {
                return(new OperationError("Existing right for same role found for the same user", OperationFailure.Conflict));
            }

            var newRight = new DataProcessingRegistrationRight
            {
                Role   = role,
                User   = user,
                Object = this
            };

            Rights.Add(newRight);

            return(newRight);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Creates a UserInfo class from an meta=userinfo XML
        /// </summary>
        /// <param name="xml">XML document to process. Must be already checked for error status by
        /// ApiEdit.CheckForErrors()</param>
        internal UserInfo(XmlDocument xml)
        {
            var users = xml.GetElementsByTagName("userinfo");

            if (users.Count == 0)
            {
                throw new BrokenXmlException(null, "XML with <userinfo> element expected");
            }
            var user = users[0];

            Name = user.Attributes["name"].Value;
            Id   = int.Parse(user.Attributes["id"].Value);

            var groups = user["groups"];

            if (groups != null)
            {
                foreach (XmlNode g in groups.GetElementsByTagName("g"))
                {
                    Groups.Add(g.InnerText);
                }
            }

            var rights = user["rights"];

            if (rights != null)
            {
                foreach (XmlNode r in rights.GetElementsByTagName("r"))
                {
                    Rights.Add(r.InnerText);
                }
            }

            Update(xml);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Creates a UserInfo class from an meta=userinfo XML
        /// </summary>
        /// <param name="xml">XML to parse. Must be already checked for error status by
        /// ApiEdit.CheckForErrors()</param>
        internal UserInfo(string xml)
        {
            XmlReader xr = XmlReader.Create(new StringReader(xml));

            xr.ReadToFollowing("userinfo");
            Name        = xr.GetAttribute("name");
            Id          = int.Parse(xr.GetAttribute("id"));
            IsBlocked   = xr.GetAttribute("blockedby") != null;
            HasMessages = xr.GetAttribute("messages") != null;

            if (xr.ReadToFollowing("groups") && !xr.IsEmptyElement)
            {
                while (xr.Read() && xr.Name != "groups")
                {
                    if (xr.Name == "g")
                    {
                        Groups.Add(xr.ReadString());
                    }
                }
            }

            if (xr.ReadToFollowing("rights") && !xr.IsEmptyElement)
            {
                while (xr.Read() && xr.Name != "rights")
                {
                    if (xr.Name == "r")
                    {
                        Rights.Add(xr.ReadString());
                    }
                }
            }
        }
Ejemplo n.º 4
0
 public void AddRights(List <Right> rights)
 {
     foreach (Right r in rights)
     {
         Rights.Add(r);
     }
 }
Ejemplo n.º 5
0
        public SPGlymaRole(int securableContextId, int roleId, string displayName, params IRight[] rights)
        {
            SecurableContextId = securableContextId;
            RoleId             = roleId;
            DisplayName        = displayName;

            foreach (IRight right in rights)
            {
                Rights.Add(right);
            }
        }
Ejemplo n.º 6
0
                /// <summary>
                /// 加入队列
                /// </summary>
                /// <param name="skewPipe"></param>
                public void Push(SkewPipe skewPipe)
                {
                    //这里以X小的为左点,X大的为右点
                    SkewPipes.Add(skewPipe);
                    var curve = (skewPipe.pipe.Location as LocationCurve).Curve;

                    if (curve.GetEndPoint(0).X < curve.GetEndPoint(1).X)
                    {
                        Lefts.Add(ReferenceCurve.Project(curve.GetEndPoint(0)).XYZPoint);
                        Rights.Add(ReferenceCurve.Project(curve.GetEndPoint(1)).XYZPoint);
                    }
                    else
                    {
                        Lefts.Add(ReferenceCurve.Project(curve.GetEndPoint(1)).XYZPoint);
                        Rights.Add(ReferenceCurve.Project(curve.GetEndPoint(0)).XYZPoint);
                    }
                }
Ejemplo n.º 7
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="xml"></param>
        public UserInfo(string xml)
        {
            XmlTextReader xr = new XmlTextReader(new StringReader(xml));

            xr.MoveToContent();

            while (xr.Read())
            {
                if (xr.Name == "g")
                {
                    Groups.Add(xr.ReadString());
                }
                else if (xr.Name == "r")
                {
                    Rights.Add(xr.ReadString());
                }
            }
            Name = Regex.Match(xml, @"<userinfo name=""(.*?)"">").Groups[1].Value;
        }
 private void _addRight(object obj)
 {
     using (var selector = new SecurityObjectSelectorViewmodel(_authenticationService))
     {
         if (UiServices.ShowDialog <Views.SecurityObjectSelectorView>(selector) != true)
         {
             return;
         }
         var right = _engine.AddRightFor(selector.SelectedSecurityObject);
         if (right == null)
         {
             return;
         }
         var newRightVm = new EngineRightViewmodel(right);
         Rights.Add(newRightVm);
         SelectedRight           = newRightVm;
         SelectedRight.Modified += EventRightViewmodel_Modified;
         IsModified              = true;
     }
 }
Ejemplo n.º 9
0
        public void SetListLength(int length)
        {
            while (Lefts.Count > length)
            {
                Rights.RemoveAt(Lefts.Count - 1);
                Lefts.RemoveAt(Lefts.Count - 1);
                Relation.RemoveAt(Lefts.Count - 1);
            }

            while (Lefts.Count < length)
            {
                Lefts.Add(new QPart {
                    Text = ""
                });
                Rights.Add(new QPart {
                    Text = ""
                });
                Relation.Add(Relation.Count);
            }
        }
Ejemplo n.º 10
0
        private void LoadEpubMetaDataFromOpfFile(string opfFilePath)
        {
            ZipEntry zipEntry = _EpubFile.GetEntry(opfFilePath);

            if (zipEntry == null)
            {
                throw new Exception("Invalid epub file.");
            }

            XElement contentOpf;

            using (Stream zipStream = _EpubFile.GetInputStream(zipEntry))
            {
                using (MemoryStream memoryStream = new MemoryStream())
                {
                    byte[] buffer = new byte[4096]; // 4K is optimum
                    StreamUtils.Copy(zipStream, memoryStream, buffer);
                    memoryStream.Position = 0;
                    contentOpf            = XElement.Load(memoryStream);
                }
            }

            XNamespace xNamespace = contentOpf.Attribute("xmlns") != null
                ? contentOpf.Attribute("xmlns").Value
                : XNamespace.None;

            string uniqueIdentifier = contentOpf.Attribute("unique-identifier").Value;

            UUID = contentOpf.Elements(xNamespace + "metadata").Elements()
                   .FirstOrDefault(e =>
                                   e.Name.LocalName == "identifier" &&
                                   e.HasAttributes &&
                                   e.Attribute("id") != null &&
                                   e.Attribute("id").Value == uniqueIdentifier
                                   ).Value;
            foreach (
                var metadataElement in
                contentOpf.Element(xNamespace + "metadata").Elements().Where(e => e.Value.Trim() != string.Empty))
            {
                switch (metadataElement.Name.LocalName)
                {
                case "title":
                    Title.Add(metadataElement.Value);
                    break;

                case "creator":
                    Creator.Add(metadataElement.Value);
                    break;

                case "date":
                    var attribute = metadataElement.Attributes().FirstOrDefault(a => a.Name.LocalName == "event");
                    if (attribute != null)
                    {
                        Date.Add(new DateData(attribute.Value, metadataElement.Value));
                    }
                    break;

                case "publisher":
                    Publisher.Add(metadataElement.Value);
                    break;

                case "subject":
                    Subject.Add(metadataElement.Value);
                    break;

                case "source":
                    Source.Add(metadataElement.Value);
                    break;

                case "rights":
                    Rights.Add(metadataElement.Value);
                    break;

                case "description":
                    Description.Add(metadataElement.Value);
                    break;

                case "contributor":
                    Contributer.Add(metadataElement.Value);
                    break;

                case "type":
                    Type.Add(metadataElement.Value);
                    break;

                case "format":
                    Format.Add(metadataElement.Value);
                    break;

                case "identifier":
                    ID.Add(metadataElement.Value);
                    break;

                case "language":
                    Language.Add(metadataElement.Value);
                    break;

                case "relation":
                    Relation.Add(metadataElement.Value);
                    break;

                case "coverage":
                    Coverage.Add(metadataElement.Value);
                    break;
                }
            }

            LoadManifestSectionFromOpfFile(contentOpf, xNamespace);
        }
Ejemplo n.º 11
0
        private void LoadEpubMetaDataFromOpfFile(string opfFilePath)
        {
            ZipEntry zipEntry = _EpubFile.Entries.FirstOrDefault(e => e.FileName.Equals(opfFilePath, StringComparison.InvariantCultureIgnoreCase));

            if (zipEntry == null)
            {
                throw new Exception("Invalid epub file.");
            }

            XElement contentOpf;

            using (MemoryStream memoryStream = new MemoryStream())
            {
                zipEntry.Extract(memoryStream);
                // Fix buggy "<?xml verison="1.1"?>
                // See http://stackoverflow.com/questions/912440/xdocument-cant-load-xml-with-version-1-1-in-c-sharp-linq
                byte[] b = memoryStream.ToArray();
                for (int i = 0; i < 50; i++)
                {
                    // Check for version="1.1" and replace if found
                    if (b[i] == 0x76 && b[i + 1] == 0x65 && b[i + 2] == 0x72 && b[i + 3] == 0x73 && b[i + 4] == 0x69 && b[i + 5] == 0x6F && b[i + 6] == 0x6E &&
                        b[i + 7] == 0x3D && b[i + 8] == 0x22 && b[i + 9] == 0x31 && b[i + 10] == 0x2E && b[i + 11] == 0x31)
                    {
                        b[i + 11] = 0x30;
                    }
                }
                using (MemoryStream fixedStream = new MemoryStream(b))
                {
                    contentOpf = XElement.Load(fixedStream);
                }
                b = null;
            }

            XNamespace xNamespace = contentOpf.Attribute("xmlns") != null?contentOpf.Attribute("xmlns").Value : XNamespace.None;

            string uniqueIdentifier = contentOpf.Attribute("unique-identifier").Value;

            try { UUID = contentOpf.Elements(xNamespace + "metadata").Elements().FirstOrDefault(e => e.Name.LocalName == "identifier" && e.Attributes("id").FirstOrDefault() != null && e.Attribute("id").Value == uniqueIdentifier).Value; }
            catch { }
            foreach (var metadataElement in contentOpf.Elements(xNamespace + "metadata").Elements().Where(e => e.Value.Trim() != string.Empty))
            {
                switch (metadataElement.Name.LocalName)
                {
                case "title": Title.Add(metadataElement.Value); break;

                case "creator": Creator.Add(metadataElement.Value); break;

                case "date":
                    var attribute = metadataElement.Attributes().FirstOrDefault(a => a.Name.LocalName == "event");
                    if (attribute != null)
                    {
                        Date.Add(new DateData(attribute.Value, metadataElement.Value));
                    }
                    break;

                case "publisher": Publisher.Add(metadataElement.Value); break;

                case "subject": Subject.Add(metadataElement.Value); break;

                case "source": Source.Add(metadataElement.Value); break;

                case "rights": Rights.Add(metadataElement.Value); break;

                case "description": Description.Add(metadataElement.Value); break;

                case "contributor": Contributer.Add(metadataElement.Value); break;

                case "type": Type.Add(metadataElement.Value); break;

                case "format": Format.Add(metadataElement.Value); break;

                case "identifier": ID.Add(metadataElement.Value); break;

                case "language": Language.Add(metadataElement.Value); break;

                case "relation": Relation.Add(metadataElement.Value); break;

                case "coverage": Coverage.Add(metadataElement.Value); break;
                }
            }

            LoadManifestSectionFromOpfFile(contentOpf, xNamespace);
        }
Ejemplo n.º 12
0
        private void LoadEpubMetaDataFromOpfFile(string opfFilePath)
        {
            ZipEntry zipEntry = _EpubFile.Entries.FirstOrDefault(e => e.FileName.Equals(opfFilePath, StringComparison.InvariantCultureIgnoreCase));

            if (zipEntry == null)
            {
                throw new Exception("Invalid epub file.");
            }

            XElement contentOpf;

            using (MemoryStream memoryStream = new MemoryStream()) {
                zipEntry.Extract(memoryStream);
                memoryStream.Position = 0;
                contentOpf            = XElement.Load(memoryStream);
            }

            XNamespace xNamespace = contentOpf.Attribute("xmlns") != null?contentOpf.Attribute("xmlns").Value : XNamespace.None;

            string uniqueIdentifier = contentOpf.Attribute("unique-identifier").Value;

            try
            {
                UUID = contentOpf.Elements(xNamespace + "metadata").Elements().FirstOrDefault(e => e.Name.LocalName == "identifier" && e.Attribute("id").Value == uniqueIdentifier).Value;
            }
            catch { }
            foreach (var metadataElement in contentOpf.Elements(xNamespace + "metadata").Elements().Where(e => e.Value.Trim() != string.Empty))
            {
                switch (metadataElement.Name.LocalName)
                {
                case "title": Title.Add(metadataElement.Value); break;

                case "creator": Creator.Add(metadataElement.Value); break;

                case "date":
                    var attribute = metadataElement.Attributes().FirstOrDefault(a => a.Name.LocalName == "event");
                    if (attribute != null)
                    {
                        Date.Add(new DateData(attribute.Value, metadataElement.Value));
                    }
                    break;

                case "publisher": Publisher.Add(metadataElement.Value); break;

                case "subject": Subject.Add(metadataElement.Value); break;

                case "source": Source.Add(metadataElement.Value); break;

                case "rights": Rights.Add(metadataElement.Value); break;

                case "description": Description.Add(metadataElement.Value); break;

                case "contributor": Contributer.Add(metadataElement.Value); break;

                case "type": Type.Add(metadataElement.Value); break;

                case "format": Format.Add(metadataElement.Value); break;

                case "identifier": ID.Add(metadataElement.Value); break;

                case "language": Language.Add(metadataElement.Value); break;

                case "relation": Relation.Add(metadataElement.Value); break;

                case "coverage": Coverage.Add(metadataElement.Value); break;
                }
            }

            LoadManifestSectionFromOpfFile(contentOpf, xNamespace);
        }
Ejemplo n.º 13
0
 public void AddRight(Right r)
 {
     Rights.Add(r);
 }