public override bool Validate(IFieldValues fieldValues)
        {
            var prevalueIdForAllOrAny = fieldValues.GetValue <int>("MatchType");
            var allOrAny   = Umbraco.GetPreValueAsString(prevalueIdForAllOrAny);
            var membership = new MembershipHelper(UmbracoContext.Current);

            var  groups = fieldValues.GetValue("Group").Split(',');
            bool success;

            if (allOrAny == "All")
            {
                success = groups.All(c => Roles.IsUserInRole(membership.CurrentUserName, c));
            }
            else
            {
                success = groups.Any(c => Roles.IsUserInRole(membership.CurrentUserName, c));
            }

            return(membership.IsLoggedIn() && success);
        }
Example #2
0
        public override bool Validate(IFieldValues fieldValues)
        {
            var membershipHelper = new MembershipHelper(UmbracoContext.Current);

            return(membershipHelper.IsLoggedIn());
        }
        internal static string BuildUpdateByPrimaryKeyQuery(string tableName, IFieldValues fieldValues)
        {
            StringBuilder query = new StringBuilder();

            if (fieldValues.PrimaryKeyFieldValues.Length == 0)
            {
                throw new ApplicationException("The Primary Key is missing on table '" + tableName + "'.");
            }

            // attach all the little pieces of the query
            query.Append(BuildUpdatePortion(tableName, fieldValues.FieldValues));
            query.AppendLine(BuildWhereClause(fieldValues.PrimaryKeyFieldValues));

            return query.ToString();
        }
        internal static string BuildSelectByPrimaryKeyQuery(string tableName, IFieldValues fieldValues)
        {
            string selectClause = BuildSelectAllQuery(tableName, fieldValues);
            string whereClause = BuildWhereClause(fieldValues.PrimaryKeyFieldValues);

            return selectClause + Environment.NewLine + whereClause;
        }
        internal static string BuildSelectAllQuery(string tableName, IFieldValues fieldValues)
        {
            StringBuilder query = new StringBuilder();

            query.Append("SELECT ");

            for (int index = 0; index < fieldValues.FieldValues.Length; index++)
            {

                query.Append(m_FieldPrefix
                    + fieldValues.FieldValues[index].FieldDefinition.SourceColumnName
                    + m_FieldSuffix + ", ");

            }

            query.Remove(query.Length - 2, 2);
            query.AppendLine();

            query.AppendLine("FROM "
                + tableName);

            return query.ToString();
        }
        internal static ParameterizedQuery BuildInsertQuery(string tableName
            , IFieldValues fieldValues)
        {
            string insertQuery;
            string fields = " ( ";
            string values = " VALUES ( ";
            ParameterizedQuery parameterizedQuery;
            List<FieldValue> insertFieldList = new List<FieldValue>();
            List<FieldDefinition> pkDefinitions = new List<FieldDefinition>();

            #region build the insert portion of the query

            for (int index = 0; index < fieldValues.FieldValues.Length; index++)
            {

                if (!fieldValues.FieldValues[index].FieldDefinition.IsReadOnly)
                {
                    // skip fields that are null and have a default value
                    if (!(fieldValues.FieldValues[index].Value == null && fieldValues.FieldValues[index].FieldDefinition.HasDefault))
                    {
                        fields += m_FieldPrefix + fieldValues.FieldValues[index].FieldDefinition.SourceColumnName + m_FieldSuffix + ", ";
                        values += "@" + fieldValues.FieldValues[index].FieldDefinition.Name + ", ";
                        insertFieldList.Add(fieldValues.FieldValues[index]);
                    }

                }

            }

            fields = fields.Substring(0, fields.Length - 2);
            values = values.Substring(0, values.Length - 2);

            fields += " )";
            values += " )";

            insertQuery = "INSERT INTO "
                + tableName + Environment.NewLine
                + fields + Environment.NewLine
                + values;

            #endregion

            parameterizedQuery.Query = insertQuery;
            parameterizedQuery.ParameterFieldValueList = insertFieldList;

            return parameterizedQuery;
        }
        internal static List<SqlParameter> GetSqlParameters(IFieldValues fieldValues)
        {
            List<SqlParameter> parameterList = new List<SqlParameter>();

            for (int index = 0; index < fieldValues.FieldValues.Length; index++) {
                if (!fieldValues.FieldValues[index].FieldDefinition.IsReadOnly) {
                    if (!(fieldValues.FieldValues[index].Value == null && fieldValues.FieldValues[index].FieldDefinition.HasDefault)) {
                        parameterList.Add(new SqlParameter("@" + fieldValues.FieldValues[index].FieldDefinition.Name, fieldValues.FieldValues[index].Value));
                    }
                }
            }

            return parameterList;
        }
        internal static ParameterizedQuery BuildInsertQuery(string tableName
            , IFieldValues fieldValues)
        {
            string insertQuery;
            string selectQuery;
            string fields = " ( ";
            string values = " VALUES ( ";
            ParameterizedQuery parameterizedQuery;
            List<FieldValue> insertFieldList = new List<FieldValue>();
            List<FieldDefinition> pkDefinitions = new List<FieldDefinition>();

            #region build the insert portion of the query

            for (int index = 0; index < fieldValues.FieldValues.Length; index++) {

                if (!fieldValues.FieldValues[index].FieldDefinition.IsReadOnly) {
                    // skip fields that are null and have a default value
                    if (!(fieldValues.FieldValues[index].Value == null && fieldValues.FieldValues[index].FieldDefinition.HasDefault)) {
                        fields += m_FieldPrefix + fieldValues.FieldValues[index].FieldDefinition.SourceColumnName + m_FieldSuffix + ", ";
                        values += "@" + fieldValues.FieldValues[index].FieldDefinition.Name + ", ";
                        insertFieldList.Add(fieldValues.FieldValues[index]);
                    }

                }

            }

            fields = fields.Substring(0, fields.Length - 2);
            values = values.Substring(0, values.Length - 2);

            fields += " )";
            values += " )";

            insertQuery = "INSERT INTO "
                + tableName + Environment.NewLine
                + fields + Environment.NewLine
                + values;

            #endregion

            #region build the select portion of the query

            selectQuery = Environment.NewLine + Environment.NewLine;
            selectQuery += BuildSelectAllQuery(tableName, fieldValues);

            // build the where clause
            string whereClause = "";

            if( fieldValues.PrimaryKeyFieldValues.Length > 0 ) {

                foreach (FieldValue fieldValue in fieldValues.PrimaryKeyFieldValues) {

                    if (fieldValue.FieldDefinition.IsIdentity) {
                        whereClause += fieldValue.FieldDefinition.SourceColumnName
                            + " = SCOPE_IDENTITY() And ";
                    } else {
                        whereClause += fieldValue.FieldDefinition.SourceColumnName
                            + " = @" + fieldValue.FieldDefinition.Name + " And ";
                    }

                }

            } else {

                for (int index = 0; index < fieldValues.FieldValues.Length; index++) {

                    if (!fieldValues.FieldValues[index].FieldDefinition.IsReadOnly) {
                        whereClause += fieldValues.FieldValues[index].FieldDefinition.SourceColumnName
                            + " = @" + fieldValues.FieldValues[index].FieldDefinition.Name + " And ";
                    }

                }

            }

            if (whereClause.Length > 0) {
                whereClause = whereClause.Substring(0, whereClause.Length - 5);
                selectQuery += Environment.NewLine + "WHERE ";
                selectQuery += whereClause;
            } else {
                selectQuery = "";
            }

            #endregion

            insertQuery += selectQuery;

            parameterizedQuery.Query = insertQuery;
            parameterizedQuery.ParameterFieldValueList = insertFieldList;

            return parameterizedQuery;
        }