public Boolean LoadFromDatabaseWithCriteria(Mercury.Server.Data.SqlDatabase sqlDatabase, String criteria)
        {
            StringBuilder selectStatement = new StringBuilder();

            System.Data.DataTable tableEnvironment;

            selectStatement.Append("SELECT * FROM SecurityGroupPermission ");
            selectStatement.Append(criteria);

            tableEnvironment = sqlDatabase.SelectDataTable(selectStatement.ToString());

            if (tableEnvironment.Rows.Count == 1)
            {
                MapDataFields(tableEnvironment.Rows[0]);

                isModified = false;

                return(true);
            }

            else
            {
                return(false);
            }
        }
示例#2
0
 public Permission(Mercury.Server.Data.SqlDatabase sqlDatabase, String forPermissionName)
 {
     if (!LoadFromDatabase(sqlDatabase, forPermissionName))
     {
         throw new Exception("Unable to load Permission from the database for " + forPermissionName + ".");
     }
 }
 public SecurityGroupPermission(Mercury.Server.Data.SqlDatabase sqlDatabase, Int64 securityAuthorityId, String securityGroupId, Int64 permissionId)
 {
     if (!LoadFromDatabase(sqlDatabase, securityAuthorityId, securityGroupId, permissionId))
     {
         throw new Exception("Unable to load Security Group Permission.");
     }
 }
        } // MapDataFields (System.Data.DataRow currentRow)

        public Boolean Save(Mercury.Server.Data.SqlDatabase sqlDatabase)
        {
            Boolean success = false;

            StringBuilder sqlStatement = new StringBuilder();

            sqlStatement.Append("EXEC SecurityAuthority_InsertUpdate ");

            sqlStatement.Append(Id.ToString() + ", '" + NameSql + "', " + ((Int32)SecurityAuthorityType).ToString() + ", ");

            sqlStatement.Append("'" + Protocol + "', '" + ServerName + "', '" + Domain + "', ");

            sqlStatement.Append("'" + MemberContext + "', '" + ProviderContext + "', '" + AssociateContext + "', ");

            sqlStatement.Append("'" + AgentName + "', '" + agentPassword + "', ");

            sqlStatement.Append("'" + ProviderAssemblyPath + "', '" + ProviderAssemblyName + "', ");

            sqlStatement.Append("'" + ProviderNamespace + "', '" + ProviderClassName + "', '" + ConfigurationSection + "'");

            sqlStatement.Append(", '" + modifiedAccountInfo.SecurityAuthorityNameSql + "', '" + modifiedAccountInfo.UserAccountIdSql + "', '" + modifiedAccountInfo.UserAccountNameSql + "'");

            success = sqlDatabase.ExecuteSqlStatement(sqlStatement.ToString());

            return(success);
        }
示例#5
0
        public Boolean LoadFromDatabase(Mercury.Server.Data.SqlDatabase sqlDatabase, String permission)
        {
            String criteria;

            criteria = "WHERE PermissionName = '" + permission + "'";

            return(LoadFromDatabaseWithCriteria(sqlDatabase, criteria));
        }
        public Boolean LoadFromDatabase(Mercury.Server.Data.SqlDatabase sqlDatabase, Int64 securityAuthorityId, String securityGroupId, Int64 permissionId)
        {
            String criteria;

            criteria = "WHERE SecurityAuthorityId = '" + securityAuthorityId + "' AND SecurityGroupId = '" + securityGroupId + "' AND PermissionId = " + permissionId;

            return(LoadFromDatabaseWithCriteria(sqlDatabase, criteria));
        }
        public Boolean Delete(Mercury.Server.Data.SqlDatabase sqlDatabase)
        {
            Boolean success = false;

            StringBuilder sqlStatement = new StringBuilder();

            sqlStatement.Append("EXEC Environment_Delete " + Id);

            success = sqlDatabase.ExecuteSqlStatement(sqlStatement.ToString());

            return(success);
        }
        } // MapDataFields (System.Data.DataRow currentRow)

        public Boolean Save(Mercury.Server.Data.SqlDatabase sqlDatabase)
        {
            Boolean success = false;

            StringBuilder sqlStatement = new StringBuilder();

            sqlStatement.Append("EXEC SecurityGroupPermission_InsertUpdate " + securityAuthorityId + ", '" + securityGroupId + "', " + permissionId + ", ");
            sqlStatement.Append(Convert.ToByte(isGranted) + ", " + Convert.ToByte(isDenied));
            sqlStatement.Append(", '" + modifiedAccountInfo.SecurityAuthorityName + "', '" + modifiedAccountInfo.UserAccountId + "', '" + modifiedAccountInfo.UserAccountName + "'");

            success = sqlDatabase.ExecuteSqlStatement(sqlStatement.ToString());

            return(success);
        }
示例#9
0
        public Boolean Save(Mercury.Server.Data.SqlDatabase environmentDatabase)
        {
            Boolean success = false;

            StringBuilder sqlStatement = new StringBuilder();

            sqlStatement.Append("EXEC RolePermission_InsertUpdate ");

            sqlStatement.Append(roleId.ToString() + ", ");

            sqlStatement.Append(permissionId.ToString() + ", ");

            sqlStatement.Append(Convert.ToByte(isGranted) + ", ");

            sqlStatement.Append(Convert.ToByte(isDenied) + ", ");

            sqlStatement.Append("'" + modifiedAccountInfo.SecurityAuthorityNameSql + "', '" + modifiedAccountInfo.UserAccountIdSql + "', '" + modifiedAccountInfo.UserAccountNameSql + "'");

            success = environmentDatabase.ExecuteSqlStatement(sqlStatement.ToString());

            return(success);
        }
示例#10
0
        protected Mercury.Server.Session CreateSession(Mercury.Server.Security.SecurityAuthority securityAuthority,

                                                       Mercury.Server.Security.AuthenticationResponse authenticationResponse,

                                                       Mercury.Server.Public.Interfaces.Security.Credentials credentials, String environmentName)
        {
            Mercury.Server.Session session = null;

            Mercury.Server.Environment.Environment environment = null;

            Boolean connectionSuccess = false;

            if (!authenticationResponse.IsAuthenticated)
            {
                return(null);
            }

            if (environmentName != String.Empty)
            {
                environment = application.EnvironmentGet(environmentName);

                Mercury.Server.Data.SqlDatabase environmentDatabase = null;

                if (environment != null)
                {
                    environmentDatabase = new Mercury.Server.Data.SqlDatabase(environment.SqlConfiguration);

                    connectionSuccess = environmentDatabase.Connect();
                }

                if (!connectionSuccess)
                {
                    if (environmentDatabase != null)
                    {
                        application.SetLastException(environmentDatabase.LastException);
                    }

                    authenticationResponse.IsAuthenticated = false;

                    authenticationResponse.Environments = EnvironmentsAvailable(credentials);

                    credentials.AuthenticationError = Mercury.Server.Public.Interfaces.Security.Enumerations.AuthenticationError.MustSelectEnvironment;

                    credentials.AuthenticationException = new Exception("Unable to connect to requested environment.");

                    return(null);
                }
            }

            // empty environment or environment selection not allowed for user
            if ((environmentName == String.Empty) || (!((";" + EnvironmentsAvailable(credentials) + ";").Contains(";" + environmentName + ";"))) || (environment == null))
            {
                authenticationResponse.IsAuthenticated = false;

                authenticationResponse.Environments = EnvironmentsAvailable(credentials);

                credentials.AuthenticationError = Mercury.Server.Public.Interfaces.Security.Enumerations.AuthenticationError.MustSelectEnvironment;
            }

            else
            {
                credentials.Environment = environmentName;

                authenticationResponse.IsAuthenticated = true;

                authenticationResponse.AuthenticationError = Mercury.Server.Public.Interfaces.Security.Enumerations.AuthenticationError.NoError;

                session = application.CreateSession(credentials);

                authenticationResponse.Token = session.Token;

                authenticationResponse.SecurityAuthorityId = session.SecurityAuthorityId;

                authenticationResponse.SecurityAuthorityName = session.SecurityAuthorityName;

                authenticationResponse.SecurityAuthorityType = session.SecurityAuthorityType;

                authenticationResponse.EnvironmentId = environment.Id;

                authenticationResponse.EnvironmentName = environment.Name;

                authenticationResponse.ConfidentialityStatement = environment.ConfidentialityStatement;

                authenticationResponse.UserAccountId = session.UserAccountId;

                authenticationResponse.UserAccountName = session.UserAccountName;

                authenticationResponse.UserDisplayName = session.UserDisplayName;

                authenticationResponse.GroupMembership = session.GroupMembership;

                authenticationResponse.RoleMembership = session.RoleMembership;

                authenticationResponse.EnterprisePermissionSet = session.EnterprisePermissionSet;

                authenticationResponse.EnvironmentPermissionSet = session.EnvironmentPermissionSet;

                authenticationResponse.WorkQueuePermissions = session.WorkQueuePermissions;

                authenticationResponse.WorkTeamMembership = session.WorkTeamMembership;
            }

            return(session);
        }