Esempio n. 1
0
        public Models.Permissions setPermissions(int DatabaseID, String DatabaseName, int ArchiveID, String ArchiveName, String GroupName = "", String User = "")
        {
            Models.Permissions permission = new Models.Permissions();

            permission.DatabaseID   = DatabaseID;
            permission.DatabaseName = DatabaseName;
            permission.Group        = GroupName;
            permission.User         = User;
            permission.ArchiveID    = ArchiveID;
            permission.ArchiveName  = ArchiveName;
            var logic          = new UsersLogic();
            var securityNumber = 0;

            if (!String.IsNullOrEmpty(GroupName))
            {
                securityNumber = logic.GetUserArchiveSecurity(Domain, permission.DatabaseID, permission.ArchiveID, GroupName, UserName, Password);
            }
            else
            {
                securityNumber = logic.GetUserArchiveSecurity(Domain, permission.DatabaseID, permission.ArchiveID, User, UserName, Password);
            }


            if (securityNumber == 0)
            {
                return(null);
            }

            var userPermission = (Models.Enumerations.Property)securityNumber;

            #region Folder Level Security
            if (userPermission.HasFlag(Models.Enumerations.Property.ViewDocuments))
            {
                permission.FolderLevel.View = true;
            }

            if (userPermission.HasFlag(Models.Enumerations.Property.AddNewDocuments))
            {
                permission.FolderLevel.Add = true;
            }

            if (userPermission.HasFlag(Models.Enumerations.Property.DeleteDocuments))
            {
                permission.FolderLevel.Delete = true;
            }

            if (userPermission.HasFlag(Models.Enumerations.Property.MoveDocuments))
            {
                permission.FolderLevel.Move = true;
            }

            if (userPermission.HasFlag(Models.Enumerations.Property.ViewDocumentRevisions))
            {
                permission.FolderLevel.ViewRevisions = true;
            }

            if (userPermission.HasFlag(Models.Enumerations.Property.ViewDocumentHistory))
            {
                permission.FolderLevel.ViewHistory = true;
            }

            if (userPermission.HasFlag(Models.Enumerations.Property.DeleteBatches))
            {
                permission.FolderLevel.DeleteErroredBatches = true;
            }

            if (userPermission.HasFlag(Models.Enumerations.Property.APIFullAccess))
            {
                permission.FolderLevel.APIFullAccess = true;
            }
            #endregion
            #region Document Level Security
            if (userPermission.HasFlag(Models.Enumerations.Property.ModifyDocuments))
            {
                permission.DocumentLevel.ModifyDocument = true;
            }

            if (userPermission.HasFlag(Models.Enumerations.Property.ModifyDocumentPages))
            {
                permission.DocumentLevel.ModifyPages = true;
            }

            if (userPermission.HasFlag(Models.Enumerations.Property.ModifyData))
            {
                permission.DocumentLevel.ModifyData = true;
            }

            if (userPermission.HasFlag(Models.Enumerations.Property.ModifyAnnotations))
            {
                permission.DocumentLevel.ModifyAnnotations = true;
            }

            if (userPermission.HasFlag(Models.Enumerations.Property.PublishDocumentRevisions))
            {
                permission.DocumentLevel.PublishRevisions = true;
            }
            #endregion
            #region Export Level Security
            if (userPermission.HasFlag(Models.Enumerations.Property.PrintDocuments))
            {
                permission.ExportLevelSecurity.Print = true;
            }

            if (userPermission.HasFlag(Models.Enumerations.Property.EmailDocuments))
            {
                permission.ExportLevelSecurity.Email = true;
            }

            if (userPermission.HasFlag(Models.Enumerations.Property.ExportDocuments))
            {
                permission.ExportLevelSecurity.ExportDocument = true;
            }

            if (userPermission.HasFlag(Models.Enumerations.Property.ExportData))
            {
                permission.ExportLevelSecurity.ExportData = true;
            }

            if (userPermission.HasFlag(Models.Enumerations.Property.ViewInAcrobat))
            {
                permission.ExportLevelSecurity.ViewInAcrobat = true;
            }

            if (userPermission.HasFlag(Models.Enumerations.Property.LaunchDocument))
            {
                permission.ExportLevelSecurity.Launch = true;
            }

            if (userPermission.HasFlag(Models.Enumerations.Property.LaunchNewVersion))
            {
                permission.ExportLevelSecurity.LaunchCopy = true;
            }
            #endregion

            return(permission);
        }
Esempio n. 2
0
        public List <Models.Permissions> GetAllDatabasePermissions(String DomainOrServerName, String UserName, String Password, int DatabaseID, bool domain)
        {
            try
            {
                List <Models.Permissions> permissions = new List <Models.Permissions>();

                var logic = new UsersLogic();
                logic.Domain   = DomainOrServerName;
                logic.UserName = UserName;
                logic.Password = Password;

                List <Models.SecuredGroup> SecuredUsers = logic.GetSecuredUsers(Domain, UserName, Password);

                foreach (var entry in SecuredUsers)
                {
                    var db = entry.SecuredDBs.FirstOrDefault(d => d.Id == DatabaseID);

                    if (db != null)
                    {
                        List <Models.SecurityNode> tree = logic.GetSecuredUsersTree(Domain, UserName, Password);
                        var databaseNode = tree.Where(t => t.DbId == DatabaseID);

                        foreach (var DBNode in databaseNode)
                        {
                            var archivesNode = DBNode.Children.Where(x => x.Type == "archive");
                            foreach (var archive in archivesNode)
                            {
                                //Is a Group
                                if (entry.Type == 0)
                                {
                                    //var groupUsers = logic.GetUsersOfGroup(DomainOrServerName, entry.Name, domain);
                                    var groupUsers = logic.GetGroupUsers(DomainOrServerName, entry.Name, domain);

                                    var permission = logic.setPermissions(DBNode.DbId, DBNode.Label, archive.Id, archive.Label, entry.Name);
                                    if (permission != null)
                                    {
                                        permissions.Add(permission);
                                    }


                                    foreach (var user in groupUsers)
                                    {
                                        if (permission != null)
                                        {
                                            permission.User = user;
                                            permissions.Add(permission);
                                        }
                                    }
                                }
                                //Is a User
                                else
                                {
                                    var permission = logic.setPermissions(DBNode.DbId, DBNode.Label, archive.Id, archive.Label, "", entry.Name);
                                    if (permission != null)
                                    {
                                        permissions.Add(permission);
                                    }
                                }
                            }
                        }
                    }
                }
                return(permissions);
            }
            catch (Exception ex)
            {
                throw new Exception("Unable to get permissions: " + ex.Message);
            }
        }