Deveel.Data.Sql.Statements.AlterUserStatement.ExecuteStatement C# (CSharp) Метод

ExecuteStatement() защищенный Метод

protected ExecuteStatement ( ExecutionContext context ) : void
context ExecutionContext
Результат void
        protected override void ExecuteStatement(ExecutionContext context)
        {
            var userName = context.User.Name;

            //bool modifyOwnRecord = userName.Equals(UserName);
            //bool secureAccessPrivs = context.User.CanManageUsers();

            //if (!(modifyOwnRecord || secureAccessPrivs))
            //	throw new MissingPrivilegesException(userName, new ObjectName(UserName), Privileges.Alter);

            //if (String.Equals(UserName, "public", StringComparison.OrdinalIgnoreCase))
            //	throw new SecurityException("User 'public' is reserved.");

            if (AlterAction.ActionType == AlterUserActionType.SetPassword) {
                var password = ((SqlConstantExpression) ((SetPasswordAction) AlterAction).PasswordExpression).Value;
                var passwordText = password.Value.ToString();
                context.DirectAccess.AlterUserPassword(UserName, passwordText);
            } else if (AlterAction.ActionType == AlterUserActionType.SetRoles) {
                var roleNames = ((SetUserRolesAction)AlterAction).Roles
                    .Cast<SqlConstantExpression>()
                    .Select(x => x.Value.Value.ToString())
                    .ToArray();

                context.DirectAccess.SetUserRoles(UserName, roleNames);
            } else if (AlterAction.ActionType == AlterUserActionType.SetAccountStatus) {
                context.DirectAccess.SetUserStatus(UserName, ((SetAccountStatusAction)AlterAction).Status);
            }
        }